Eu estou olhando os documentos oficiais do GRUB2 para o search
comando, conforme encontrado em 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.
Na seção 5.3, existem muitos exemplos ao longo
menuentry "FreeBSD" {
insmod zfs
search --set=root --label freepool --hint hd0,msdos7
...
}
Parece que a --hint
opção não está documentada, exceto como exemplo. O que isso faz exatamente? Qual é o formato exato do argumento?
search --fs-uuid
for usado, para que serve--hint
?Isso não está descrito no Manual do GRUB, mas há documentação a ser encontrada no próprio GRUB (
search --help
no shell do GRUB):Agora, qual é o objetivo do "dispositivo de primeira tentativa"?
Você precisa entender que
search
é uma operação potencialmente lenta.Talvez você tenha 50 unidades, cada uma com 100 partições, e agora precise
search
passar por todas essas ... até finalmente encontrar o UUID que você estava procurando na 2356ª tentativa.Ou talvez você tenha um dispositivo muito lento e a verificação de suas causas de UUID fica
search
presa por um tempo. Há--no-floppy
para evitar o caso mais comum, eu acho - mas outros dispositivos também podem ser lentos.Com
--hint
, você define um dispositivo para verificar primeiro. Desde que a dica esteja correta, você ignora completamente a operação de pesquisa potencialmente demorada. Portanto, esta é uma otimização de velocidade. (Provavelmente não será perceptível com apenas uma unidade, três partições)O efeito descrito na resposta de @ totti de dar preferência a um dispositivo específico quando houver dois com o mesmo LABEL ou UUID, que deve ser apenas um efeito colateral.
Claro, se você verificar um dispositivo primeiro, uma duplicata em outro dispositivo não deverá ser encontrada. Mesmo assim, faria mais sentido não ter essas duplicatas em primeiro lugar. Como UUIDs duplicados (ou LABELs) podem ser considerados um erro de configuração e, no caso
--hint
de estar errado, ele ainda pode retornar o dispositivo errado.fonte