Як запобігти переносу диска при перезавантаженні в OS X?


12

У мене в Mac Pro з Mac OS X 10.6.4 є 3 фізичні диски. Іноді після перезавантаження машини номер нумерації дисків змінюється таким чином, що / dev / disk # не посилається на той же диск, що був перед перезавантаженням.

Приклад

/dev/disk0 -> 64GB SSD drive
/dev/disk1 -> 640GB Hitachi
/dev/disk2 -> 160GB WD (BootCamp)

Після перезавантаження відображення може бути

/dev/disk0 -> 160GB WD (BootCamp)
/dev/disk1 -> 640GB Hitachi
/dev/disk2 -> 64GB SSD drive

Ще більш заплутаним є те, що перекомпонування не є послідовним. Для більшості речей це не має значення. Однак у мене також встановлені Parallels, щоб дозволити доступ до розділу BootCamp з ОС X. Parallels використовує шлях / dev / disk # у своєму файлі конфігурації, після перезавантаження ОС XI запустіть Parallels, і це скаже мені, що диск більше не присутній .

Чи є спосіб сказати OS X завжди призначати заданий привід / dev / disk0?


3
Це не входить в сферу моєї експертизи, але чи можна щось зробити з об'ємними UUID?
фіделі

@fideli: Не знаю ... саме для цього мені потрібна допомога :) Я очікував, що OSX зробить саме це - згадав, де встановлений накопичувач із заданим UUID і залишив його там, але, схоже, це не буде справа.
Пол Олександр

У Linux диски мають посилання на зразок / dev / disk / by-uuid / [disk-uuid], які не змінюються, навіть якщо нумерація. Можливо, OSX схожий?
solarc

Відповіді:


2

Наскільки я розумію, MacOS не має такої можливості, хоча для ведення паралелей це може не бути суворо необхідним.

використання макпортів та встановлення e2fsprogs з невеликим патчем:

diff -r e2fsprogs-1.41.12/misc/Makefile e2fsprogs-1.41.12.patched/misc/Makefile
399c399
>       $(LIBEXT2FS) $(LIBCOM_ERR)
---
<       $(LIBEXT2FS)
401,402c401

ви можете використовувати blkid -s UUID / dev / rdisk * для перерахування розділів, дисків та отримання відповідних удай (для будь-якої підтримуваної файлової системи, якої досить багато).

Після цього додавання програмного зв’язку з 'ln -s' або створення альтернативного вузла пристрою з mknod повинно працювати (а потім посилатись на цей psudo- / клон-пристрій з Parallels). Я робив подібні трюки з Fusion, але зараз не встановлено паралелів (тому я не можу перевірити)

stat -f "% Sr% Z" / dev / rdisk s дає вам карту над пристроєм на основний, мінорний, який слід використовувати, якщо паралелі не приймають програмне посилання на пристрій.

які можна використовувати як у наступному прикладі:

some@host:/e2fsprogs-1.41.12$ blkid -s UUID /dev/rdisk*s* 
/dev/rdisk0s1: UUID="76D6-1701" 
/dev/rdisk0s2: UUID="654F73AE51849687" 
/dev/rdisk1s1: UUID="51FC4E72-BFA9-4DBD-9A5C-0E5H731DB0ED" 
some@host:/e2fsprogs-1.41.12$ stat -f "%Sr %Z" /dev/rdisk*
rdisk0 14,0
rdisk0s1 14,1
rdisk0s2 14,2
rdisk1 14,3
rdisk1s1 14,4

# okay, UUID 51FC4E72-BFA9-4DBD-9A5C-0E5H731DB0ED is a partition
# on the disk we want to use. so we make a 'private' device node
# pointing to the device containing that partition.

some@host:/e2fsprogs-1.41.12$ sudo mknod /dev/pdisk1 b 14 3

# just a quick verify that the mknod worked as expected ...
some@host:/~$ sudo dd if=/dev/rdisk1  count=10 2>/dev/null | md5 
19d55b28485771bc80acdddbd1b45faf
some@host:/~$ sudo dd if=/dev/pdisk1  count=10 2>/dev/null | md5 
19d55b28485771bc80acdddbd1b45faf

Тепер залишається лише написати сценарій та скористатись інструкціями на сторінці http://support.apple.com/kb/HT2420?viewlocale=en_US, щоб запустити його під час завантаження.

Але це буде для когось іншого, щоб закінчити ...


Ей, дякую за детальну відповідь. Спробуєте mknodз Fusion, але даєте помилку ./vmware-rawdiskCreator create /dev/pdisk1 fullDevice ~/5tc ide Unable to create the source raw disk: The specified device is not a valid physical disk device (20).Будь-які підказки? Ура
Олександр Г

Ця відповідь чудово працювала для мене з тієї ж проблеми, але з VMware Fusion. На жаль після цього, VMware, схоже, не любить нестандартні шляхи до дискових пристроїв (у файлі vmdk, посилаючись на диск / розділ). Це виглядало так, ніби вони передавали їх до бібліотек стилів diskutil під кришкою, які не знали, що з ними робити. Так близько ... Альтернатива в моєму випадку, ймовірно, програмне відновлення файлу vmdk після відкриття.
Том

1

Я чув, що розумніші хлопці Mac, ніж я, означають, що нумерація дисків дещо довільна, і не можна залежати від того самого пристрою, який отримує той самий номер після перезавантаження. Про це згадувалося у створенні RAID-фрагментів за допомогою дискутилу в Терміналі.

Жодна з утиліт низького рівня, які я знайшов, таких як diskutil, pdisk або gpt, не може вплинути на нумерацію диска. Я боюся, що це може бути не керованим.


1
Ага, я не думав, що відповідь -1 погана. Колись відповідь - "ти цього не можеш зробити".
Тео Белк

1

Щоб побачити назви файлів символьних пристроїв для томів на внутрішньому жорсткому диску, відкрийте програму Terminal, розташовану в / Applications / Utilities. Введіть наступне, після чого клавішу повернення:

df

Ви можете побачити повні назви файлів символьних пристроїв для поточних томів, відкривши Terminal, а потім ввівши (натисніть Return після кожного рядка):

cd /dev
ls -lias

Кожен розділ (незалежно від того, відображається він у Finder чи ні) на кожному встановленому томі матиме два файли у списку для каталогу / dev. Імена файлів ідентифікують як пристрій за номером, так і розділ на пристрої за його номером. Можливо, вам доведеться трохи прокрутити вікно терміналу, щоб знайти файли.


0

Спробуйте додати записи до вас /etc/fstab.

An /etc/fstab example:

# Identifier, mount point, fs type, options1
UUID=DF000C7E-AE0C-3B15-B730-DFD2EF15CB91 /export ufs ro
UUID=FAB060E9-79F7-33FF-BE85-E1D3ABD3EDEA none hfs rw,noauto
LABEL=This40Is40The40Volume40Name none msdos ro

Ідентифікатор використовується для ідентифікації гучності; LABEL - назва гучності, UUID - універсальний унікальний привід ідентифікатора. Можна використовувати і те, і інше, але UUID - найкращий вибір, оскільки перейменування гучності цього ідентифікатора не змінить.

З http://macosx.com/forums/mac-os-x-system-mac-software/314314-stop-disk-unmounting-automounting.html


Це змінюється лише там, де накопичувач встановлений в каталозі / Volumes. Це не впливає на його / dev / disk ??? доручення.
Пол Олександр

0

Номер диска заснований на тому, коли фізичний пристрій перераховується під час завантаження. Це сталося і зі мною в Windows. Я довго і важко дивився на вирішення цього питання, і не знайшов його. Мені вдалося дістати диски в "правильному" порядку, коли я перемикав кабелі SATA навколо, але це було лише тимчасовим виправленням. У вашому випадку, оскільки Parallels покладається на нумерацію диска для шляху, можливо, найкраще створити сценарій для оновлення цього конфігураційного файла при запуску.


0

У мене була ця проблема раніше, вони зазвичай змінюються після того, як я зробив оновлення або встановив щось, але повертаються до їх початкової нумерації після другого перезавантаження. Це, очевидно, не ідеально, але, здається, працює для мене ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.