Это не описано в Руководстве по GRUB , но есть документация, которую можно найти в самом GRUB(search --help
по оболочке GRUB):
--hint
First try the device HINT.
If HINT ends in comma, also try subpartitions
--hint-ieee1275
First try the device HINT if currently running on IEEE1275.
If HINT ends in comma, also try subpartitions
--hint-bios
First try the device HINT if currently running on BIOS.
If HINT ends in comma, also try subpartitions
--hint-baremetal
First try the device HINT if direct hardware access is supported.
If HINT ends in comma, also try subpartitions
--hint-efi
First try the device HINT if currently running on EFI.
If HINT ends in comma, also try subpartitions
--hint-arc
First try the device HINT if currently running on ARC.
If HINT ends in comma, also try subpartitions
В чем смысл «Устройства с первой попытки»?
Вы должны понимать, что search
— потенциально медленная операция.
Может быть, у вас 50 дисков, по 100 разделов на каждом, и теперь search
нужно пройти через все эти...пока он, наконец, не найдет UUID, который вы искали, с 2356-й попытки.
Или, возможно, у вас очень медленное устройство, и проверка его UUID приводит к зависанию search
на некоторое время. Есть --no-floppy
, чтобы избежать наиболее распространенного случая, я думаю -, но другие устройства также могут быть медленными.
С помощью --hint
вы устанавливаете устройство для проверки в первую очередь. Если подсказка была правильной, вы вообще пропускаете потенциально длительную операцию поиска. Так что это оптимизация скорости. (Вероятно, не будет заметно только с одним диском и тремя разделами)
Эффект, описанный в ответе @totti , отдающий предпочтение определенному устройству, когда есть два с одинаковым LABEL или UUID, должен быть просто побочным эффектом.
Конечно, если вы сначала проверите одно устройство, дубликат на другом устройстве не должен быть найден. Тем не менее, было бы разумнее вообще не иметь таких дубликатов. Поскольку повторяющиеся UUID (или LABEL )можно считать ошибкой конфигурации, и в случае, если --hint
окажется неверным, он все равно может вернуть неправильное устройство.
Вот как:
# cd /tmp
# mkdir foo bar
# mount -B /usr/bin foo
# mount -B /var/log bar
# mount | egrep 'foo|bar'
/dev/sda1 on /tmp/foo type ext4 (rw,relatime,errors=remount-ro)
/dev/sda1 on /tmp/bar type ext4 (rw,relatime,errors=remount-ro)
тл;др; вывод команды mount
ненадежен в современных версиях Linux. Используйте cat /proc/self/mountinfo
вместо (формат задокументирован в man 5 mountinfo
), который также показывает «корень» монтирования, а не только его «устройство»:
# egrep 'foo|bar' /proc/self/mountinfo
380 26 8:1 /usr/bin /tmp/foo rw,relatime shared:1 - ext4 /dev/sda1 rw,errors=remount-ro
457 26 8:1 /var/log /tmp/bar rw,relatime shared:1 - ext4 /dev/sda1 rw,errors=remount-ro