Как я могу предотвратить перенумерацию дисков при перезагрузке в OS X?


12

У меня в Mac Pro 3 физических диска с Mac OS X 10.6.4. Иногда после перезагрузки машины нумерация дисков изменяется таким образом, что / 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 из OS X. Parallels использует путь / dev / disk # в своем файле конфигурации, поэтому после перезагрузки OS XI запустите Parallels и он сообщит мне, что диск больше не присутствует. ,

Есть ли способ сказать OS X всегда назначать данный диск / dev / disk0?


3
Это не входит в мои компетенции, но можно ли что-то сделать с помощью объемных UUID?
Фидели

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

В Linux на дисках есть символические ссылки, такие как / dev / disk / by-uuid / [disk-uuid], которые не меняются даже при нумерации. Может быть, OSX похож?
Solarc

Ответы:


2

Насколько я понимаю, MacOS не имеет такой возможности, хотя для запуска параллелей это может быть не обязательно.

используя macports и устанавливая 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 * для перечисления разделов, дисков и получения их соответствующих uuids (для любой поддерживаемой файловой системы, которой довольно много).

После этого должно сработать добавление программной ссылки с помощью 'ln -s' или создание альтернативного узла устройства с помощью mknod (а затем ссылка на это псевдо / clone-устройство из Parallels). Я делал подобные трюки с Fusion, но сейчас у меня не установлены Paralells (поэтому я не могу проверить)

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

который можно использовать как в следующем примере:

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).Есть какие-нибудь подсказки? Приветствия
Александр G

Этот ответ отлично подошел для меня по той же проблеме, но с VMware Fusion. К сожалению, после этого VMware, похоже, не нравятся нестандартные пути к дисковым устройствам (в файле vmdk, ссылаясь на диск / раздел). Похоже, он передавал их в библиотеки стилей diskutil под капотом, которые не знали, что с ними делать. Так близко ... Альтернативой в моем случае, вероятно, является программная регенерация файла vmdk после обнаружения.
Том

1

Я слышал, что более умные парни из Mac, чем я, подразумевают, что нумерация дисков несколько произвольна и нельзя полагаться на то, что одно и то же устройство получит тот же номер после перезагрузки. Это было упомянуто в связи с созданием фрагментов RAID через diskutil в Терминале.

Похоже, что ни одна из низкоуровневых утилит, таких как diskutil, pdisk или gpt, не может повлиять на нумерацию дисков. Боюсь, что это не может быть управляемым.


1
Да, я не думаю, что ответ был -1 плохой. Иногда ответ звучит так: «Вы не можете этого сделать».
Тео Белк

1

Чтобы просмотреть пути к файлам символьных устройств для томов на внутреннем жестком диске, откройте приложение «Терминал», расположенное в / Applications / Utilities. Введите следующее, а затем клавишу возврата:

df

Вы можете просмотреть полные пути к файлам символьных устройств для текущих томов, открыв Терминал, а затем напечатав (нажимайте 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.