Come posso impedire la rinumerazione del disco al riavvio in OS X?


12

Ho 3 unità fisiche nel mio Mac Pro con Mac OS X 10.6.4. Occasionalmente dopo il riavvio della macchina, la numerazione del disco cambia in modo tale che / dev / disk # non faccia riferimento alla stessa unità che aveva prima del riavvio.

Esempio

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

Dopo il riavvio potrebbe essere la mappatura

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

Ancora più confuso è che la rimappatura non è coerente. Per la maggior parte delle cose questo è irrilevante. Tuttavia ho anche installato Parallels per consentire l'accesso alla partizione BootCamp da OS X. Parallels usa il percorso / dev / disk # nel suo file di configurazione, quindi, dopo il riavvio di OS XI avvia Parallels e mi dice che il disco non è più presente .

C'è un modo per dire a OS X di assegnare sempre una determinata unità a / dev / disk0?


3
Questo non rientra nell'ambito della mia esperienza, ma si può fare qualcosa con gli UUID di volume?
fideli,

@fideli: Non lo so ... questo è ciò di cui ho bisogno dell'aiuto :) Mi aspettavo che OSX avesse fatto proprio questo - ricordato dove era montata un'unità con un UUID specifico e l'avevo lasciato lì, ma non sembra essere il caso.
Paul Alexander,

In Linux i dischi hanno collegamenti simbolici come / dev / disk / by-uuid / [disk-uuid] che non cambia anche se la numerazione lo fa. Forse OSX è simile?
solarc,

Risposte:


2

Per quanto ho capito, MacOS non ha questa capacità, anche se per eseguire i paralleli potrebbe non essere strettamente necessario.

usando macports e installando e2fsprogs con una piccola patch:

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

puoi usare blkid -s UUID / dev / rdisk * per enumerare partizioni, dischi e ottenere i loro rispettivi uuidi (per qualsiasi file system supportato che è piuttosto pochi).

Dopodiché dovrebbe funzionare l'aggiunta di un softlink con 'ln -s' o la creazione di un nodo dispositivo alternativo con mknod (e quindi fare riferimento a quel dispositivo psudo- / clone da Parallels). Ho fatto trucchi simili con Fusion, ma non ho installato Paralells in questo momento (quindi non posso testare)

stat -f "% Sr% Z" / dev / rdisk s fornisce una mappa sul dispositivo con major, minor da usare se i parallelismi non accettano un collegamento soft al dispositivo.

che può essere utilizzato come nell'esempio seguente:

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

Ora l'unica cosa rimasta è scrivere uno script e usare le istruzioni in http://support.apple.com/kb/HT2420?viewlocale=en_US per farlo funzionare all'avvio.

Ma sarà per qualcun altro a finire ...


Ehi, grazie per la risposta dettagliata. Provare mknodcon Fusion ma dare un errore ./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).Qualche indizio? Saluti
Alexandre G,

Questa risposta ha funzionato perfettamente per me per lo stesso problema, ma con VMware Fusion. Sfortunatamente dopo questo, VMware non sembra gradire i percorsi dei dispositivi su disco non standard (in un file vmdk, facendo riferimento al disco / alla partizione). Sembrava che li passasse alle librerie di stile diskutil sotto il cofano, che non sapevano cosa farne. Così vicino ... L'alternativa nel mio caso è probabilmente quella di rigenerare a livello di codice il file vmdk dopo il rilevamento.
Tom,

1

Ho sentito che i ragazzi Mac più intelligenti di me implicano che la numerazione del disco è in qualche modo arbitraria e non si può dipendere dallo stesso dispositivo che ottiene lo stesso numero dopo un riavvio. È stato menzionato in riferimento alla creazione di slice RAID tramite diskutil nel Terminale.

Nessuna delle utility di basso livello che ho trovato, come diskutil, pdisk o gpt, sembra essere in grado di influenzare la numerazione del disco. Temo che potrebbe non essere controllabile.


1
Eh, non pensavo che la risposta fosse -1 cattiva. A volte la risposta è "non puoi farlo".
Theo Belk,

1

Per visualizzare i percorsi dei file dei dispositivi dei caratteri per i volumi sul disco rigido interno, aprire l'applicazione Terminale, situata in / Applicazioni / Utility. Digitare quanto segue, seguito dal tasto Invio:

df

Puoi vedere i percorsi completi per i file del dispositivo a caratteri per i volumi correnti aprendo Terminale, quindi digitando (premi Invio dopo ogni riga):

cd /dev
ls -lias

Ogni partizione (visualizzata o meno nel Finder) su ciascun volume montato avrà due file nell'elenco per la directory / dev. I nomi dei file identificano sia il dispositivo in base al numero sia la partizione sul dispositivo in base al suo numero. Potrebbe essere necessario scorrere un po 'nella finestra Terminale per trovare i file.


0

Prova ad aggiungere voci in te /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

L'identificatore viene utilizzato per identificare il volume; l'ETICHETTA è il nome del volume, l'UUID è l'unità di identificazione univoca universale. Puoi usare entrambi, ma l'UUID è la scelta migliore perché rinominare il volume non cambierà questo identificatore.

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


Questo cambia solo dove l'unità è montata nella directory / Volumes. Non ha alcun effetto sul suo / dev / disk ??? Incarico.
Paul Alexander,

0

Il numero dell'unità si basa su quando il dispositivo fisico è elencato durante l'avvio. Questo è successo anche a me su Windows. Ho cercato a lungo e duramente una soluzione a questo, e non ne ho trovata una. Sono stato in grado di ottenere i dischi nell'ordine "corretto" quando ho cambiato i cavi SATA, ma questa era solo una soluzione temporanea. Nel tuo caso, poiché Parallels si basa sulla numerazione del disco per un percorso, potrebbe essere meglio creare uno script per aggiornare quel file di configurazione all'avvio.


0

Ho avuto questo problema prima, di solito cambiano dopo aver fatto aggiornamenti o installato qualcosa, ma tornano alla loro numerazione originale dopo un secondo riavvio. Questo ovviamente non è l'ideale, ma sembrava funzionare per me ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.