Was macht die Option --hint im Suchbefehl von grub2?


10

Ich schaue mir die offiziellen GRUB2-Dokumente für den searchBefehl an, die unter http://www.gnu.org/software/grub/manual/grub.html#index-search zu finden sind

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.

In Abschnitt 5.3 finden Sie viele Beispiele

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

Es scheint, dass die --hintOption nicht als Beispiel undokumentiert ist. Was macht es genau? Was ist das genaue Format des Arguments?

Antworten:


6

--hintwird verwendet, um auszuwählen, welche Partition ausgewählt werden soll, wenn mehrere übereinstimmende Partitionen vorhanden sind. Standardmäßig ist die erste übereinstimmende ausgewählt.

Angenommen, es gibt 2 Speichergeräte mit Label- Boot wie folgt

hd0,msdos1
hd1,msdos7

dann der Befehl:

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

wählt hd1, msdos7 anstelle von hd0, msdos1


6
Gibt es eine Idee, warum es separate Optionen --hint-efi, --hint-baremetal usw. gibt?
Michael Scheper

Und wenn search --fs-uuidverwendet, welchen Nutzen hat das --hint?
Saad Malik

@SaadMalik, UUID muss nicht eindeutig sein. Dateisystem-UUIDs funktionieren genauso wie Beschriftungen, aber die UUID wird normalerweise bei der FS-Erstellung generiert.
Jiwopene

1

Dies wird im GRUB-Handbuch nicht beschrieben, aber es gibt Dokumentation in GRUB selbst ( search --helpauf der GRUB-Shell):

--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

Was ist nun der Sinn von "First try device"?

Sie müssen verstehen, dass dies searcheine möglicherweise langsame Operation ist.

Vielleicht haben Sie 50 Laufwerke mit jeweils 100 Partitionen und müssen nun searchalle diese durchlaufen ... bis schließlich die UUID gefunden wird, nach der Sie beim 2356. Versuch gesucht haben.

Oder vielleicht haben Sie ein sehr langsames Gerät und die Überprüfung der UUID führt searchdazu, dass es eine Weile hängen bleibt. --no-floppyIch denke, es gibt den häufigsten Fall zu vermeiden - aber andere Geräte können auch langsam sein.

Mit stellen --hintSie ein Gerät ein, das zuerst überprüft werden soll. Vorausgesetzt, der Hinweis war korrekt, überspringen Sie den ansonsten möglicherweise langwierigen Suchvorgang insgesamt. Das ist also eine Geschwindigkeitsoptimierung. (Wird wahrscheinlich nicht mit nur einem Laufwerk, drei Partitionen auffallen)

Der in der Antwort von @ totti beschriebene Effekt , einem bestimmten Gerät den Vorzug zu geben, wenn es zwei mit demselben LABEL oder derselben UUID gibt, sollte lediglich ein Nebeneffekt sein.

Sicher, wenn Sie zuerst ein Gerät überprüfen, sollte kein Duplikat auf einem anderen Gerät gefunden werden. Trotzdem wäre es sinnvoller, solche Duplikate überhaupt nicht zu haben. Da doppelte UUIDs (oder LABELs) als Konfigurationsfehler angesehen werden können und --hintsich herausstellt, dass sie falsch sind, wird möglicherweise immer noch das falsche Gerät zurückgegeben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.