Ściśle mówiąc, UUID w ogóle się nie adresuje .
Adresowanie jest bardzo, bardzo proste: odczytaj dysk X sektor Y - albo inaczej. Odczytaj adres pamięci Z - lub inaczej. Adresowanie jest proste, szybkie, nie pozostawia wiele miejsca na interpretację i jest wszędzie.
UUID nie adresuje. Zamiast tego szuka, znajduje, czasem czeka na pojawienie się urządzeń, a także rozumie systemy plików (★). W zależności od liczby urządzeń może to zająć bardzo dużo czasu. I kiedy już go znajdziesz, wróć do zwykłego adresowania.
W GRUB-ie jest to nazywane search
(★★) i jest dostępne tylko wtedy, gdy GRUB ma już rozwinięte skrzydła (wyszukiwanie jest modułem, podobnie jak każdy obsługiwany przez niego system plików, a więc dostępny tylko po załadowaniu rdzenia). W Linuksie, to (na przykład) o nazwie findfs
, findfs wyszuka urządzeń blokowych w systemie szuka plików lub partycji .
Przechodzi przez wszystkie urządzenia blokowe, budzi je z trybu gotowości, odczytuje dane, a wynik może nawet być losowy, jeśli UUID nie jest unikalny tak, jak powinien (po dd
wypadku itp.), Lub nie otrzymasz żadnego wyniku, jeśli UUID zmienił się - Identyfikatory UUID są również podatne na błędy konfiguracji.
Ogólnie, UUID są świetne i oczywiście powinieneś ich używać wszędzie, jeśli są dostępne, szczególnie gdy tradycyjne adresowanie nie powiedzie się, ponieważ kolejność dysków jest losowa w Linuksie; ale zrozum, że złożoność wykracza poza to, co powinno zrobić proste adresowanie. A szczególnie na bardzo wczesnych etapach programów ładujących, po prostu może nie być jeszcze opcją. Adresowanie jest na pierwszym miejscu, później rosnące skrzydła.
W przypadku programu ładującego może nie być konieczne podjęcie wysiłku (nie każdy program ładujący obsługuje szeroki zakres systemów plików, takich jak GRUB). Gdybyhd0
ze względu na okoliczność jest gwarantowany „dysk, z którego dokonaliśmy rozruchu” (BIOS zapewnia), a więc jeśli możesz wykluczyć problemy z losową kolejnością dysków, może nie być potrzeby przeglądania potencjalnie ogromnej listy innych partycji w wyszukaj UUID.
Jeśli jesteś wystarczająco pewny swojej konfiguracji, aby powiedzieć, że tego hd0,gpt2
właśnie chcesz, i tak musi być, i nie może być inaczej, to nie ma nic złego w używaniu go w ten sposób. Czasami proste i proste adresowanie działa dobrze.
(★) Wcześniej wyjaśniłem to dla ETYKIET tutaj ...
Nie ma ogólnego standardu dla etykiet, wszystko jest ręcznie robione, patrz na przykład ta implementacja formatów superbloków w util-linux . Jeśli jutro wymyślisz nowy system plików, nawet jeśli ma etykietę, nie pojawi się, dopóki nie zostanie dodana obsługa.
... i podobnie jest z UUID.
(★★) W rzeczywistości GRUB search
ma --hint
opcję i ... teraz nie sprawdziłem kodu źródłowego i nie jest nawet udokumentowany w ich instrukcji, ale taka opcja miałaby sens, aby dać ci to, co najlepsze z obu światów: wskazówka powinna powiedzieć search
aby sprawdzić, czy partycja pierwszy , a jeśli UUID mecze zgodnie z oczekiwaniami, to zidentyfikować urządzenie z minimalnym wysiłku , a jeśli to nie pasuje, to będzie nadal spadać z powrotem do pełnego wyszukiwania dmuchanego zachować rzeczy jakoś robocze .
Ponadto wcześniej znalezione identyfikatory UUID mają tendencję do buforowania, więc nie muszą przechodzić przez wszystkie urządzenia od nowa i od nowa - i to też działa świetnie, pod warunkiem, że szukany UUID faktycznie istnieje gdzieś w pierwszej kolejności dostań się do pamięci podręcznej.