¿Qué hace la opción --hint en el comando de búsqueda de grub2?


10

Estoy mirando los documentos oficiales de GRUB2 para el searchcomando, como se encuentra en 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.

En la sección 5.3 hay muchos ejemplos a lo largo

menuentry "FreeBSD" {
      insmod zfs
      search --set=root --label freepool --hint hd0,msdos7
      ...
}

Parece que la --hintopción no está documentada excepto como ejemplo. ¿Qué hace exactamente? ¿Cuál es el formato exacto del argumento?

Respuestas:


6

--hintse utiliza para seleccionar qué partición seleccionar cuando hay varias particiones coincidentes. De manera predeterminada, se selecciona el 1er emparejado.

Supongamos que hay 2 dispositivos de almacenamiento con etiqueta de arranque de la siguiente manera

hd0,msdos1
hd1,msdos7

entonces el comando:

search --set=root --label freepool --hint hd1,msdos7

seleccionará hd1, msdos7 en lugar de hd0, msdos1


66
¿Alguna idea de por qué existen opciones separadas --hint-efi, --hint-baremetal, etc.?
Michael Scheper

Y si search --fs-uuidse usa, ¿de qué sirve el --hint?
Saad Malik

@SaadMalik, UUID no tiene que ser único. Los UUID del sistema de archivos funcionan de la misma manera que las etiquetas, pero el UUID generalmente se genera en la creación de FS.
jiwopene

1

Esto no se describe en el Manual de GRUB, pero hay documentación que se puede encontrar en GRUB ( search --helpen el shell de 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

¿Cuál es el punto del "primer dispositivo de prueba"?

Tienes que entender que searches una operación potencialmente lenta.

Tal vez tenga 50 unidades, cada una con 100 particiones, y ahora searchtiene que pasar por todo esto ... hasta que finalmente encuentre el UUID que estaba buscando en el intento número 2356.

O tal vez tiene un dispositivo muy lento y la comprobación de su UUID hace searchque se bloquee por un tiempo. --no-floppySupongo que hay que evitar el caso más común, pero otros dispositivos también pueden ser lentos.

Con --hint, configura un dispositivo para verificar primero. Siempre que la pista sea correcta, omite la operación de búsqueda, que de otro modo sería potencialmente larga. Entonces esta es una optimización de velocidad. (Probablemente no será notable con solo una unidad, tres particiones)

El efecto descrito en la respuesta de @ totti de dar preferencia a un dispositivo específico cuando hay dos con la misma ETIQUETA o UUID, eso debería ser simplemente un efecto secundario.

Claro, si primero verifica un dispositivo, no se debe encontrar un duplicado en otro dispositivo. Aun así, tendría más sentido no tener tales duplicados en primer lugar. Como los UUID duplicados (o LABEL) pueden considerarse un error de configuración, y en caso de --hintque resulte ser incorrecto, aún podría devolver el dispositivo incorrecto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.