Jak zapobiec ponumerowaniu dysku przy ponownym uruchomieniu w OS X?

12

Mam 3 dyski fizyczne w komputerze Mac Pro z systemem Mac OS X 10.6.4. Czasami po ponownym uruchomieniu komputera numeracja dysku zmienia się w taki sposób, że / dev / disk # nie odwołuje się do tego samego napędu, co przed ponownym uruchomieniem.

Przykład

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

Po ponownym uruchomieniu mapowanie może być

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

Jeszcze bardziej mylące jest to, że ponowne mapowanie nie jest spójne. W przypadku większości rzeczy nie ma to znaczenia. Mam jednak zainstalowane Parallels, aby umożliwić dostęp do partycji BootCamp z poziomu OS X. Parallels używa ścieżki / dev / disk # w pliku konfiguracyjnym, więc po ponownym uruchomieniu OS XI uruchom Parallels i powie mi, że dysk nie jest już obecny .

Czy istnieje sposób, aby powiedzieć OS X, aby zawsze przypisywał dany dysk do / dev / disk0?

Paul Alexander
źródło
3
Nie leży to w zakresie mojej wiedzy, ale czy można coś zrobić z wielkimi identyfikatorami UUID?
fideli
@fideli: Nie wiem ... z tym potrzebuję pomocy :) Spodziewałem się, że OSX właśnie to zrobił - przypomniałem sobie, gdzie został zamontowany dysk o danym UUID i zostawił go tam, ale to chyba nie jest walizka.
Paul Alexander
W systemie Linux dyski mają dowiązania symboliczne, takie jak / dev / disk / by-uuid / [disk-uuid], które nie zmieniają się, nawet jeśli numeracja się zmieni. Może OSX jest podobny?
solarc

Odpowiedzi:

2

O ile rozumiem, MacOS nie ma takiej możliwości, chociaż do uruchamiania równoległych może nie być to absolutnie konieczne.

używając Macports i instalując e2fsprogs z małą łatką:

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

możesz użyć blkid -s UUID / dev / rdisk *, aby wyliczyć partycje, dyski i uzyskać ich odpowiednie identyfikatory (dla każdego obsługiwanego systemu plików, którego jest sporo).

Następnie powinno działać dodanie softlink z 'ln -s' lub utworzenie alternatywnego węzła urządzenia z mknod (a następnie odniesienie do tego psudo- / clone-device z Parallels). Robiłem podobne sztuczki z Fusion, ale nie mam teraz zainstalowanych Paralell (więc nie mogę przetestować)

stat -f "% Sr% Z" / dev / rdisk s daje mapę nad urządzeniem do głównej, drugorzędnej do użycia, jeśli równoległe nie akceptuje miękkiego linku do urządzenia.

które można wykorzystać jak w poniższym przykładzie:

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

Teraz pozostaje tylko napisanie skryptu i użycie instrukcji z http://support.apple.com/kb/HT2420?viewlocale=pl_US, aby uruchomić go przy starcie systemu.

Ale to będzie koniec dla kogoś innego ...

Pan Andersson
źródło
Hej dzięki za szczegółową odpowiedź. Próbujesz mknodz Fusion, ale daje błąd. ./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).Masz jakieś wskazówki? Pozdrawiam
Alexandre G
Ta odpowiedź działała dla mnie świetnie w przypadku tego samego problemu, ale w przypadku VMware Fusion. Niestety po tym VMware nie lubi niestandardowych ścieżek urządzeń dyskowych (w pliku vmdk, odnoszącym się do dysku / partycji). Wyglądało na to, że przekazuje je do bibliotek typu diskutil pod maską, które nie wiedziały, co z nimi zrobić. Tak blisko ... Alternatywą w moim przypadku jest prawdopodobnie programowe odtworzenie pliku vmdk po wykryciu.
Tom
1

Słyszałem, że mądrzejsi faceci Mac niż ja sugerują, że numeracja dysku jest nieco dowolna i nie można polegać na tym, że to samo urządzenie otrzyma ten sam numer po ponownym uruchomieniu. Zostało to wspomniane w odniesieniu do tworzenia plasterków RAID za pomocą diskutil w terminalu.

Żadne z narzędzi niskiego poziomu, które znalazłem, takich jak diskutil, pdisk lub gpt, nie wydaje się mieć wpływu na numerację dysku. Obawiam się, że nie można tego kontrolować.

Theo Belk
źródło
1
Nie sądziłem, że odpowiedź brzmi -1 źle. Czasami odpowiedź brzmi „nie możesz tego zrobić”.
Theo Belk
1

Aby zobaczyć ścieżki plików urządzeń znakowych dla woluminów na wewnętrznym dysku twardym, otwórz aplikację Terminal, znajdującą się w / Applications / Utilities. Wpisz następujące polecenie, a następnie klawisz Return:

df

Możesz zobaczyć pełne ścieżki do plików urządzeń znakowych dla bieżących woluminów, otwierając Terminal, a następnie wpisując (naciśnij klawisz Return po każdej linii):

cd /dev
ls -lias

Każda partycja (niezależnie od tego, czy jest wyświetlana w Finderze, czy nie) na każdym zamontowanym woluminie będzie miała dwa pliki na liście dla katalogu / dev. Nazwy plików identyfikują zarówno urządzenie według numeru, jak i partycję na urządzeniu według jego numeru. Konieczne może być przewinięcie w oknie Terminalu, aby znaleźć pliki.

mralexgray
źródło
0

Spróbuj dodać do siebie wpisy /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

Identyfikator służy do identyfikacji woluminu; ETYKIETA to nazwa woluminu, UUID to Universal Unique Identifier Drive. Możesz użyć obu, ale UUID jest najlepszym wyborem, ponieważ zmiana nazwy woluminu nie zmieni tego identyfikatora.

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

miku
źródło
Zmienia się to tylko wtedy, gdy dysk jest zamontowany w katalogu / Volumes. Nie ma to żadnego wpływu na jego / dev / disk ??? zadanie.
Paul Alexander
0

Numer napędu zależy od tego, kiedy urządzenie fizyczne jest wyliczane podczas rozruchu. Zdarzyło mi się to również w systemie Windows. Długo i ciężko szukałem rozwiązania tego problemu i nie znalazłem żadnego. Po przełączeniu kabli SATA udało mi się ustawić dyski w „prawidłowej” kolejności, ale było to tylko tymczasowe rozwiązanie. W twoim przypadku, ponieważ Parallels polega na numeracji dysku dla ścieżki, najlepiej jest utworzyć skrypt aktualizujący ten plik konfiguracyjny podczas uruchamiania.

Nacięcie
źródło
0

Miałem już ten problem, zwykle zmieniają się po dokonaniu aktualizacji lub zainstalowaniu czegoś, ale po drugim ponownym uruchomieniu wracają do pierwotnej numeracji. To oczywiście nie jest idealne, ale wydawało się, że działa dla mnie ...

Oliver
źródło