¿Cómo evito la renumeración de disco al reiniciar en OS X?


12

Tengo 3 unidades físicas en mi Mac Pro con Mac OS X 10.6.4. Ocasionalmente, después de reiniciar la máquina, la numeración del disco cambia de tal manera que / dev / disk # no hace referencia a la misma unidad que antes del reinicio.

Ejemplo

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

Después de reiniciar el mapeo podría ser

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

Aún más confuso es que la reasignación no es consistente. Para la mayoría de las cosas esto es irrelevante. Sin embargo, también tengo instalado Parallels para permitir el acceso a la partición BootCamp desde OS X. Parallels usa la ruta / dev / disk # en su archivo de configuración, así que, después de reiniciar OS XI, inicie Parallels y me dice que el disco ya no está presente. .

¿Hay alguna manera de decirle a OS X que siempre asigne una unidad determinada a / dev / disk0?


3
Esto no está dentro del ámbito de mi experiencia, pero ¿se puede hacer algo con UUID de volumen?
fideli

@fideli: No sé ... para eso necesito la ayuda :) Esperaba que OSX hiciera exactamente eso: recordaba dónde estaba montada una unidad con un UUID determinado y la dejé allí, pero eso no parece ser el caso.
Paul Alexander

En Linux, los discos tienen enlaces simbólicos como / dev / disk / by-uuid / [disk-uuid] que no cambia incluso si la numeración sí lo hace. ¿Quizás OSX es similar?
solarc

Respuestas:


2

Según tengo entendido, MacOS no tiene esa capacidad, aunque para ejecutar paralelos puede que no sea estrictamente necesario.

usando macports e instalando e2fsprogs con un pequeño parche:

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

puede usar blkid -s UUID / dev / rdisk * para enumerar particiones, discos y obtener sus respectivos uuids (para cualquier sistema de archivos compatible, que son bastantes).

Después de eso, debería funcionar agregar un enlace suave con 'ln -s' o crear un nodo de dispositivo alternativo con mknod (y luego hacer referencia a ese dispositivo psudo- / clon de Parallels). He hecho trucos similares con Fusion, pero no tengo Paralells instalado en este momento (así que no puedo probar)

stat -f "% Sr% Z" / dev / rdisk s le proporciona un mapa sobre el dispositivo a mayor, menor para usar si los paralelos no aceptan un enlace suave al dispositivo.

que se puede usar como en el siguiente ejemplo:

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

Ahora lo único que queda es escribir un script y usar las instrucciones en http://support.apple.com/kb/HT2420?viewlocale=en_US para que se ejecute en el arranque.

Pero eso será para que alguien más termine ...


Hola, gracias por la respuesta detallada. Intentando mknodcon Fusion pero dando un error ¿ ./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).Alguna pista? Saludos
Alexandre G

Esta respuesta funcionó muy bien para mí por el mismo problema, pero con VMware Fusion. Desafortunadamente después de esto, a VMware no parece gustarle las rutas de dispositivos de disco no estándar (en un archivo vmdk, haciendo referencia al disco / partición). Parecía que los estaba pasando a bibliotecas de estilo diskutil debajo del capó, que no sabían qué hacer con ellos. Tan cerca ... La alternativa en mi caso es probablemente regenerar mediante programación el archivo vmdk después del descubrimiento.
Tom

1

He escuchado que los Mac más inteligentes que yo implican que la numeración del disco es algo arbitraria y no se puede depender de que el mismo dispositivo obtenga el mismo número después de un reinicio. Se mencionó en referencia a la creación de segmentos RAID a través de diskutil en la Terminal.

Ninguna de las utilidades de bajo nivel que he encontrado, como diskutil, pdisk o gpt, parece afectar la numeración del disco. Me temo que puede no ser controlable.


1
Huh, no pensé que la respuesta fuera -1 mala. En algún momento la respuesta es "no puedes hacer eso".
Theo Belk

1

Para ver las rutas de los archivos de dispositivo de caracteres para los volúmenes en su disco duro interno, abra la aplicación Terminal, ubicada en / Aplicaciones / Utilidades. Escriba lo siguiente, seguido de la tecla Retorno:

df

Puede ver los nombres de ruta completos para los archivos de dispositivo de caracteres para los volúmenes actuales abriendo Terminal y luego escribiendo (presione Intro después de cada línea):

cd /dev
ls -lias

Cada partición (se muestre en el Finder o no) en cada volumen montado tendrá dos archivos en la lista para el directorio / dev. Los nombres de los archivos identifican tanto el dispositivo por número como la partición del dispositivo por su número. Puede que tenga que desplazarse un poco en la ventana de Terminal para encontrar los archivos.


0

Intenta agregar entradas en ti /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

El identificador se usa para identificar el volumen; LABEL es el nombre del volumen, el UUID es la unidad de identificación única universal. Puede usar ambos, pero el UUID es la mejor opción porque cambiar el nombre del volumen no cambiará este identificador.

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


Esto solo cambia cuando la unidad está montada en el directorio / Volumes. ¿No tiene ningún efecto en su / dev / disk? asignación.
Paul Alexander

0

El número de unidad se basa en cuándo se enumera el dispositivo físico durante el arranque. Esto me ha pasado a mí también en Windows. He buscado larga y duramente una resolución para esto, y no he encontrado una. Pude obtener los discos en el orden "correcto" cuando cambié los cables SATA, pero esto fue solo una solución temporal. En su caso, dado que Parallels depende de la numeración del disco para una ruta, puede ser mejor crear un script para actualizar ese archivo de configuración al inicio.


0

He tenido este problema antes, generalmente cambian después de haber realizado actualizaciones o instalado algo, pero vuelven a su numeración original después de un segundo reinicio. Obviamente, esto no es ideal, pero parecía funcionar para mí ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.