Wie verhindere ich, dass die Festplatte unter OS X beim Neustart neu nummeriert wird?


12

Ich habe 3 physische Laufwerke in meinem Mac Pro mit Mac OS X 10.6.4. Gelegentlich ändert sich nach dem Neustart des Computers die Laufwerksnummerierung so, dass / dev / disk # nicht auf dasselbe Laufwerk verweist wie vor dem Neustart.

Beispiel

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

Nach dem Neustart könnte das Mapping sein

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

Noch verwirrender ist, dass das Remapping nicht konsistent ist. Für die meisten Sachen ist das irrelevant. Ich habe jedoch auch Parallels installiert, um den Zugriff auf die BootCamp-Partition in OS X zu ermöglichen. Parallels verwendet den Pfad / dev / disk # in der Konfigurationsdatei. Nach dem Neustart von OS XI wird Parallels gestartet und es wird angezeigt, dass die Festplatte nicht mehr vorhanden ist .

Gibt es eine Möglichkeit, OS X anzuweisen, / dev / disk0 immer ein bestimmtes Laufwerk zuzuweisen?


3
Dies liegt nicht im Bereich meines Fachwissens, aber kann mit Volumen-UUIDs etwas unternommen werden?
Fideli

@fideli: Weiß nicht ... das ist, wofür ich Hilfe brauche :) Ich hatte erwartet, dass OSX genau das tut - erinnerte mich, wo ein Laufwerk mit einer bestimmten UUID gemountet und dort belassen wurde, aber das scheint nicht so zu sein der Fall.
Paul Alexander

Unter Linux haben die Festplatten Symlinks wie / dev / disk / by-uuid / [disk-uuid], die sich auch bei entsprechender Nummerierung nicht ändern. Vielleicht ist OSX ähnlich?
Solarc

Antworten:


2

Soweit ich weiß, verfügt MacOS nicht über diese Funktion, obwohl dies für das Ausführen von Parallelen möglicherweise nicht unbedingt erforderlich ist.

Verwenden von Macports und Installieren von e2fsprogs mit einem kleinen Patch:

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

Sie können blkid -s UUID / dev / rdisk * verwenden, um Partitionen und Festplatten aufzulisten und ihre jeweiligen UUIDs abzurufen (für jedes unterstützte Dateisystem, das nicht wenige unterstützt).

Danach sollte es funktionieren, einen Softlink mit 'ln -s' hinzuzufügen oder einen alternativen Geräteknoten mit mknod zu erstellen (und dann auf das psudo- / clone-Gerät von Parallels zu verweisen). Ich habe ähnliche Tricks mit Fusion gemacht, aber ich habe gerade keine Paralells installiert (daher kann ich nicht testen)

Mit stat -f "% Sr% Z" / dev / rdisk s können Sie eine Karte über das Gerät auf major und minor legen , die verwendet werden soll, wenn Parallels keinen Softlink zum Gerät akzeptiert.

Das kann wie im folgenden Beispiel verwendet werden:

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

Jetzt müssen Sie nur noch ein Skript schreiben und die Anweisungen unter http://support.apple.com/kb/HT2420?viewlocale=de_DE verwenden , damit es beim Systemstart ausgeführt wird.

Aber das wird jemand anderes zu Ende bringen ...


Hey danke für die ausführliche Antwort. Versuchen Sie es mknodmit Fusion, aber geben Sie einen Fehler. ./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).Irgendwelche Hinweise? Cheers
Alexandre G

Diese Antwort hat sich für mich für das gleiche Problem bewährt, aber für VMware Fusion. Leider scheint VMware danach keine nicht standardmäßigen Plattengerätepfade zu mögen (in einer vmdk-Datei, die auf die Platte / Partition verweist). Es sah so aus, als würden sie unter der Haube an Bibliotheken im Diskursstil weitergegeben, die nicht wussten, was sie damit anfangen sollten. So nah ... Die Alternative in meinem Fall ist wahrscheinlich, die vmdk-Datei nach der Erkennung programmgesteuert neu zu generieren.
Tom

1

Ich habe gehört, dass schlauere Mac-Leute als ich implizieren, dass die Festplattennummerierung etwas willkürlich ist und man sich nicht darauf verlassen kann, dass dasselbe Gerät nach einem Neustart die gleiche Nummer erhält. Es wurde in Bezug auf das Erstellen von RAID-Slices über diskutil im Terminal erwähnt.

Keines der von mir gefundenen Hilfsprogramme auf niedriger Ebene, wie beispielsweise diskutil, pdisk oder gpt, scheint in der Lage zu sein, die Festplattennummerierung zu beeinflussen. Ich fürchte, es ist möglicherweise nicht kontrollierbar.


1
Huh, ich dachte nicht, dass die Antwort -1 schlecht war. Manchmal lautet die Antwort: "Das können Sie nicht."
Theo Belk

1

Um die Pfadnamen der Zeichengerätedateien für die Volumes auf Ihrer internen Festplatte anzuzeigen, öffnen Sie die Terminalanwendung unter / Programme / Dienstprogramme. Geben Sie Folgendes ein, gefolgt von der Eingabetaste:

df

Sie können die vollständigen Pfadnamen für die Zeichengerätedateien für aktuelle Volumes anzeigen, indem Sie Terminal öffnen und dann Folgendes eingeben (nach jeder Zeile die Eingabetaste drücken):

cd /dev
ls -lias

Jede Partition (unabhängig davon, ob sie im Finder angezeigt wird oder nicht) auf jedem bereitgestellten Volume enthält zwei Dateien in der Liste für das Verzeichnis / dev. Die Namen der Dateien identifizieren das Gerät anhand seiner Nummer und die Partition auf dem Gerät anhand seiner Nummer. Möglicherweise müssen Sie im Terminalfenster einen Bildlauf durchführen, um die Dateien zu finden.


0

Versuchen Sie, Einträge in Sie hinzuzufügen /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

Der Identifier dient zur Identifizierung des Volumes. Das LABEL ist der Volume-Name, die UUID ist das Universal Unique Identifier Drive. Sie können beide verwenden, aber die UUID ist die beste Wahl, da durch das Umbenennen des Volumes diese ID nicht geändert wird.

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


Dies ändert sich nur dort, wo das Laufwerk im Verzeichnis / Volumes bereitgestellt ist. Es hat keinen Einfluss auf / dev / disk ??? Zuordnung.
Paul Alexander

0

Die Laufwerksnummer basiert auf dem Zeitpunkt, zu dem das physische Gerät beim Start aufgelistet wird. Dies ist mir auch unter Windows passiert. Ich habe lange und intensiv nach einer Lösung dafür gesucht und keine gefunden. Als ich die SATA-Kabel vertauschte, konnte ich die Datenträger in der "richtigen" Reihenfolge abrufen, aber dies war nur eine vorübergehende Korrektur. In Ihrem Fall ist es möglicherweise am besten, ein Skript zu erstellen, um diese Konfigurationsdatei beim Start zu aktualisieren, da Parallels die Plattennummerierung als Pfad verwendet.


0

Ich hatte dieses Problem schon einmal, normalerweise ändern sie sich, nachdem ich Updates durchgeführt oder etwas installiert habe, aber kehren nach einem zweiten Neustart zu ihrer ursprünglichen Nummerierung zurück. Dies ist offensichtlich nicht ideal, schien aber für mich zu funktionieren ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.