Skąd Linux wie, który dysk twardy USB jest?


24

Obecnie mam Linux Mint zainstalowany na moim komputerze z partycją dysku twardego USB zamontowaną jako /home. To działa dobrze.

Jeśli zainstaluję drugi dysk twardy USB, czy jest jakaś szansa, że ​​Linux się pomyli między nimi i spróbuje zamontować partycję drugiego dysku twardego jak /homepodczas rozruchu? To by było złe.

W systemie Windows często zdarza się, że litery dysków nie są „zapamiętywane” poprawnie, powodując różnego rodzaju problemy.

Chyba główne pytanie brzmi: skąd Linux faktycznie wie, który dysk twardy USB jest, /dev/sdba który jest /media/misha/my_2nd_drive?


z zamontowaną partycją dysku twardego USB jako/home Czy możesz wyjaśnić, jak to zrobiłeś?
AL

Zrobiłem to podczas instalacji Linux Mint. W tym momencie jest to dość łatwe. Mój SSD pojawił się jako sda, a dysk twardy USB pojawił się jako sdb . Włożyłem /i swapna sda , a /homena sdb . Ale nie wiedziałbym, jak zmienić montaż istniejącej instalacji /home, na to zbyt nowy!
misha256,

Odpowiedzi mówią, co powinieneś zrobić, ale nie sądzę, że bezpośrednio mówią, że sd[a-z]są po prostu nazwane w kolejności wykrywania. Nie podejmuje się żadnej próby utrzymania tych samych nazw. Zazwyczaj jest deterministyczny (to samo jądro na tym samym HW da to samo nazewnictwo), ale nowe jądro z aktualizacją sterownika kontrolera SATA może sprawić, że skanuje dyski SATA w odwrotnej kolejności. Zamiast nawet próbować zmieniać nazwy urządzeń blokowych (jak to się dzieje z nameiflub w / e dla nazw urządzeń ethernetowych, zwykle z regułami udev), istnieją nazwy UUID, label i id (według numeru seryjnego napędu).
Peter Cordes,

Widziałem serwery z dyskami SAS, w których ponowne uruchomienie zwykle prowadziłoby do innej kolejności sd[a-z]: sondowanie dysków odbywa się jednocześnie (równolegle), a sda
każdy

Odpowiedzi:


26

Zwykle lokalizacja portu USB (magistrala / urządzenie) określa kolejność wykrycia. Jednak nie polegaj na tym.

Każdy system plików ma identyfikator UUID, który oznacza uniwersalny unikalny identyfikator ( FAT i NTFS używają nieco innego schematu, ale mają również identyfikator, który może być używany jako UUID). UUID (Linux) możesz polegać na unikalności. Więcej informacji o identyfikatorach UUID można znaleźć w tym artykule w Wikipedii .

Użyj identyfikatora UUID dysku jako argumentu montowania. Aby dowiedzieć się, czym jest UUID, uruchom to:

$ sudo blkid /dev/sdb1

( blkidmusi odczytać urządzenie, dlatego potrzebuje uprawnień roota, stąd sudo. Jeśli już zostałeś rootem, sudonie jest to potrzebne).

Możesz następnie użyć tego UUID w /etc/fstabnastępujący sposób:

UUID=7e839ad8-78c5-471f-9bba-802eb0edfea5 /home ext4 defaults 0 2

Nie będzie wtedy żadnych wątpliwości co do tego, który dysk ma zostać zamontowany w / home.

Do ręcznego montażu można użyć /dev/disk/by-uuid/.....


1
Wspaniale, fstabdo tej pory nawet o tym nie wiedziałem (taki jestem nowy w Linuksie). Przejrzałem mój fstabplik i wszystko jest już identyfikowane przez UUID. Instalator Linux Mint działał dobrze.
misha256

Możesz poprawić tę odpowiedź, wyjaśniając krótko, czym jest UUID i dlaczego jest unikalny, co czyni go wiarygodnym identyfikatorem.
AL

11

Jeśli twoje fstabodniesienia dzielą się na partycje jako /dev/sdx, to dodanie nowego dysku z pewnością może dezorientować system. Jednak ostatnią praktyką jest używanie identyfikatorów UUID partycji do identyfikowania partycji.

Jeśli Twój system został udevzainstalowany (musi tak być w przypadku jądra Linuksa 2.6+), możesz użyć trwałego nazewnictwa fstab. Domyślnie partycje są identyfikowane za pomocą UUID:

/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591

Możesz jednak utworzyć znaczącą etykietę partycji, taką jak „home” i odwołać się do partycji w następujący sposób:

/dev/disk/by-label/home

Te identyfikatory mogą być używane jako zamiennik dla /dev/sdxw fstab.


Chciałbym również zaznaczyć twoją odpowiedź jako poprawną. Wurtel był wcześniej w kontakcie. Ale i tak dziękuję, dostajesz moje +1.
misha256

@ misha256 Ironią jest to, że nie trzeba nawet używać UUID na moich systemów (bo wyjście z dfi mountstaje się nieczytelny). Wewnętrzne dyski twarde mają dość duże szanse na wykrycie w pierwszej kolejności i za każdym razem w tej samej kolejności.
Dmitrij Grigoryev

1
Jeśli używasz etykiet, możesz użyć LABEL=homew swoim fstab. Lubię używać etykiet takich jak t-homekatalog domowy na moim komputerze o nazwie tesla. Więc jeśli włożę dysk do innego systemu, nie będzie dwóch systemów plików z tą samą etykietą. To dlatego instalatorzy Linuksa generują losowe UUID i używają ich w fstab, zamiast domyślnych etykiet, które nadałyby większości systemów takie same etykiety dla swoich FS. @ misha256, możesz pomyśleć o tym, jeśli oznaczysz swoje FSes.
Peter Cordes,

1
@PeterCordes Rzeczywiście używam labes i mam schemat nazewnictwa mający na celu uczynienie tych etykiet unikalnymi.
Dmitrij Grigoriew

1
Identyfikatory UUID są świetne i działają, jak podano w odpowiedziach. Ale nie są przyjaźni dla ludzi. Ilekroć tworzę partycje (gdziekolwiek), nadaję im unikalne, czytelne dla człowieka etykiety, które mają dla mnie sens. Jest to szczególnie przydatne podczas pisania skryptów kopii zapasowych dotyczących kilku dysków. Nie chcesz przypadkowo cofnąć źródła i celu! Ponadto za każdym razem, gdy formatujesz partycję, otrzymuje ona nowy identyfikator UUID i musisz edytować wszystko, co korzystało z tego identyfikatora UUID, podczas gdy nadal możesz używać tej samej etykiety jak poprzednio i nie musisz niczego zmieniać.
Joe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.