Я просматриваю официальные документы GRUB2 для этой search
команды, которые можно найти по адресу 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.
В разделе 5.3 есть много примеров
menuentry "FreeBSD" {
insmod zfs
search --set=root --label freepool --hint hd0,msdos7
...
}
Похоже, эта --hint
опция недокументирована, кроме как в качестве примера. Что именно это делает? Каков точный формат аргумента?
search --fs-uuid
используется, то что это за использование--hint
?Это не описано в Руководстве по GRUB, но в самом GRUB есть документация (
search --help
на оболочке GRUB):Теперь, что является смыслом «устройства первой попытки»?
Вы должны понимать, что
search
это потенциально медленная операция.Возможно, у вас есть 50 дисков, каждый из которых имеет 100 разделов, и теперь вам
search
нужно пройти через все это ... пока он наконец не найдет UUID, который вы искали в 2356-й попытке.Или, может быть, у вас очень медленное устройство, и проверка его UUID вызывает
search
некоторое зависание.--no-floppy
Я предполагаю, что нужно избегать наиболее распространенных случаев, но другие устройства также могут работать медленно.С помощью
--hint
вы устанавливаете устройство для проверки в первую очередь. При условии, что подсказка была правильной, вы вообще пропускаете потенциально длительную операцию поиска. Так что это оптимизация скорости. (Вероятно, не будет заметен только с одним диском, тремя разделами)Эффект, описанный в ответе @ totti о предоставлении предпочтения конкретному устройству, когда есть два устройства с одинаковым LABEL или UUID, должен быть просто побочным эффектом.
Конечно, если вы сначала проверите одно устройство, дубликат на другом устройстве не должен быть найден. Тем не менее, было бы более разумно, во-первых, не иметь таких дубликатов. Поскольку дубликаты UUID (или LABEL) могут рассматриваться как ошибка конфигурации, и в случае, если
--hint
оказалось, что это неправильно, он все равно может вернуть неправильное устройство.источник