Comment empêcher la renumérotation des disques au redémarrage sous OS X?

12

J'ai 3 disques physiques dans mon Mac Pro avec Mac OS X 10.6.4. Parfois, après le redémarrage de la machine, la numérotation des disques change de telle sorte que / dev / disk # ne fait pas référence au même lecteur qu'avant le redémarrage.

Exemple

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

Après le redémarrage, le mappage peut être

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

Encore plus déroutant est que le remappage n'est pas cohérent. Pour la plupart des choses, cela n'est pas pertinent. Cependant, j'ai également installé Parallels pour autoriser l'accès à la partition BootCamp depuis OS X. Parallels utilise le chemin / dev / disk # dans son fichier de configuration donc, après le redémarrage d'OS XI, lancez Parallels et il me dit que le disque n'est plus présent .

Existe-t-il un moyen de dire à OS X de toujours affecter un lecteur donné à / dev / disk0?

Paul Alexander
la source
3
Ce n'est pas du ressort de mon expertise, mais peut-on faire quelque chose avec des UUID de volume?
fideli
@fideli: Je ne sais pas ... c'est pour cela que j'ai besoin d'aide :) Je m'attendais à ce qu'OSX fasse exactement cela - je me souviens où un lecteur avec un UUID donné a été monté et laissé là mais cela ne semble pas être le cas l'affaire.
Paul Alexander
Sous Linux, les disques ont des liens symboliques comme / dev / disk / by-uuid / [disk-uuid] qui ne changent pas même si la numérotation le fait. Peut-être que OSX est similaire?
solarc

Réponses:

2

Autant que je sache, MacOS n'a pas cette capacité, bien que pour exécuter des parallèles, il ne soit pas strictement nécessaire.

en utilisant macports et en installant e2fsprogs avec un petit patch:

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

vous pouvez utiliser blkid -s UUID / dev / rdisk * pour énumérer les partitions, les disques et obtenir leurs uuids respectifs (pour tout système de fichiers pris en charge qui est un peu).

Après cela, l'ajout d'un lien logiciel avec 'ln -s' ou la création d'un nœud de périphérique alternatif avec mknod devrait fonctionner (puis référencer ce périphérique psudo- / clone de Parallels). J'ai fait des tours similaires avec Fusion, mais je n'ai pas installé Paralells pour le moment (donc je ne peux pas tester)

stat -f "% Sr% Z" / dev / rdisk s vous donne une carte du périphérique vers le majeur, mineur à utiliser si les parallèles n'acceptent pas de lien logiciel vers le périphérique.

qui peut être utilisé comme dans l'exemple suivant:

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

Il ne reste plus qu'à écrire un script et à utiliser les instructions de http://support.apple.com/kb/HT2420?viewlocale=en_US pour le faire fonctionner au démarrage.

Mais ce sera à quelqu'un d'autre de finir ...

Monsieur Andersson
la source
Hey merci pour la réponse détaillée. Essayer mknodavec Fusion mais donner une erreur ./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).Des indices? Santé
Alexandre G
Cette réponse a très bien fonctionné pour moi pour le même problème, mais avec VMware Fusion. Malheureusement après cela, VMware ne semble pas aimer les chemins de périphériques de disque non standard (dans un fichier vmdk, référençant le disque / la partition). Il semblait qu'il les transmettait aux bibliothèques de style diskutil sous le capot, qui ne savaient pas quoi en faire. Si proche ... L'alternative dans mon cas est probablement de régénérer par programme le fichier vmdk après la découverte.
Tom
1

J'ai entendu des gars Mac plus intelligents que moi impliquer que la numérotation des disques est quelque peu arbitraire et on ne peut pas dépendre du même appareil obtenant le même numéro après un redémarrage. Il a été mentionné en référence à la création de tranches RAID via diskutil dans le terminal.

Aucun des utilitaires de bas niveau que j'ai trouvés, tels que diskutil, pdisk ou gpt, ne semble pouvoir affecter la numérotation des disques. J'ai peur que ce ne soit pas contrôlable.

Theo Belk
la source
1
Huh, je ne pensais pas que la réponse était -1 mauvaise. Parfois, la réponse est «vous ne pouvez pas faire ça».
Theo Belk
1

Pour voir les chemins d'accès des fichiers de périphérique de caractères pour les volumes sur votre disque dur interne, ouvrez l'application Terminal, située dans / Applications / Utilitaires. Tapez ce qui suit, suivi de la touche Retour:

df

Vous pouvez voir les chemins d'accès complets des fichiers de périphérique de caractères pour les volumes actuels en ouvrant Terminal, puis en tapant (appuyez sur Retour après chaque ligne):

cd /dev
ls -lias

Chaque partition (qu'elle s'affiche ou non dans le Finder) sur chaque volume monté aura deux fichiers dans la liste du répertoire / dev. Les noms des fichiers identifient à la fois l'appareil par son numéro et la partition de l'appareil par son numéro. Vous devrez peut-être faire défiler un peu dans la fenêtre Terminal pour trouver les fichiers.

mralexgray
la source
0

Essayez d'ajouter des entrées en vous /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'identifiant est utilisé pour identifier le volume; le LABEL est le nom du volume, l'UUID est le Universal Unique Identifier Drive. Vous pouvez utiliser les deux, mais l'UUID est le meilleur choix car renommer le volume ne changera pas cet identifiant.

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

miku
la source
Cela ne change que l'endroit où le lecteur est monté dans le répertoire / Volumes. Cela n'a aucun effet sur son / dev / disque ??? affectation.
Paul Alexander
0

Le numéro de lecteur est basé sur le moment où le périphérique physique est énuméré lors du démarrage. Cela m'est également arrivé sous Windows. J'ai cherché longuement et durement une solution à ce problème et je n'en ai pas trouvé. J'ai pu obtenir les disques dans le "bon" ordre lorsque j'ai changé les câbles SATA, mais ce n'était qu'une solution temporaire. Dans votre cas, étant donné que Parallels s'appuie sur la numérotation des disques pour un chemin, il peut être préférable de créer un script pour mettre à jour ce fichier de configuration au démarrage.

pseudo
la source
0

J'ai déjà rencontré ce problème, ils changent généralement après avoir effectué des mises à jour ou installé quelque chose, mais reviennent à leur numérotation d'origine après un deuxième redémarrage. Ce n'est évidemment pas idéal, mais semblait fonctionner pour moi ...

Oliver
la source