Patrzę na oficjalne dokumenty GRUB2 dla search
polecenia, które można znaleźć na stronie http://www.gnu.org/software/grub/manual/grub.html#index-search
Command: search [--file|--label|--fs-uuid] [--set [var]] [--no-floppy] name
Search devices by file (-f, --file), filesystem label (-l, --label),
or filesystem UUID (-u, --fs-uuid).
If the --set option is used, the first device found is set as the
value of environment variable var. The default variable is ‘root’.
The --no-floppy option prevents searching floppy devices, which can be slow.
The ‘search.file’, ‘search.fs_label’, and ‘search.fs_uuid’ commands are aliases
for ‘search --file’, ‘search --label’, and ‘search --fs-uuid’ respectively.
W sekcji 5.3 podano wiele przykładów
menuentry "FreeBSD" {
insmod zfs
search --set=root --label freepool --hint hd0,msdos7
...
}
Wygląda na --hint
to, że opcja jest nieudokumentowana inaczej niż jako przykład. Co to dokładnie robi? Jaki jest dokładny format argumentu?
search --fs-uuid
jest używany, jaki jest pożytek--hint
?Nie jest to opisane w Podręczniku GRUB, ale w samej GRUB-ie (
search --help
w powłoce GRUB-a) znajduje się dokumentacja :Jaki jest sens „urządzenia z pierwszą próbą”?
Musisz zrozumieć, że
search
jest to potencjalnie powolna operacja.Może masz 50 dysków, każdy ze 100 partycjami, a teraz musisz
search
przejść przez wszystkie te ... aż w końcu znajdzie UUID, którego szukałeś w 2356 próbie.A może masz bardzo wolne urządzenie, a sprawdzanie jego UUID powoduje,
search
że utkniesz na chwilę. Jest--no-floppy
uniknąć najczęściej sprawy, myślę - ale inne urządzenia mogą być również powolne.Za pomocą
--hint
ustaw urządzenie, aby sprawdzało najpierw. Pod warunkiem, że podpowiedź była poprawna, całkowicie pomijasz potencjalnie długotrwałą operację wyszukiwania. To jest optymalizacja prędkości. (Prawdopodobnie nie będzie zauważalny z jednym dyskiem, trzema partycjami)Efekt opisany w odpowiedzi @ totti polegający na preferowaniu określonego urządzenia, gdy są dwa z tym samym ETYKIETĄ lub UUID, powinien to być jedynie efekt uboczny.
Oczywiście, jeśli najpierw sprawdzisz jedno urządzenie, nie powinieneś znaleźć duplikatu na innym urządzeniu. Mimo to rozsądniej byłoby nie mieć takich duplikatów. Ponieważ zduplikowane identyfikatory UUID (lub ETYKIETY) można uznać za błąd konfiguracji, a jeśli
--hint
okaże się, że są nieprawidłowe, nadal może zwrócić niewłaściwe urządzenie.źródło