grub2の検索コマンドの--hintオプションは何をしますか?


10

http://www.gnu.org/software/grub/manual/grub.html#index-searchにあるsearchコマンドの公式GRUB2ドキュメントを探しています

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オプションは例として以外に文書化されていません。それは正確に何をしますか?引数の正確な形式は何ですか?

回答:


6

--hint複数の一致するパーティションがある場合に選択するパーティションを選択するために使用されます。デフォルトでは、最初に一致したものが選択されています。

次のようにラベルブートの 2つのストレージデバイスがあるとします。

hd0,msdos1
hd1,msdos7

次にコマンド:

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

hd0、msdos1の代わりにhd1、msdos7を選択します


6
--hint-efi、-hint-baremetalなどのオプションが個別に存在する理由は何ですか?
Michael Scheper 2014

そして、search --fs-uuidが使用されている場合、どのような使用--hintですか?
Saad Malik

@ SaadMalik、UUIDは一意である必要はありません。ファイルシステムのUUIDはラベルと同じように機能しますが、UUIDは通常、FSの作成時に生成されます。
ジウォペン

1

これはGRUBマニュアルでは説明されていませんが、GRUB自体(search --helpGRUBシェル上)にあるドキュメントがあります。

--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が潜在的に遅い操作であることを理解する必要があります。

たぶん、それぞれに100のパーティションがある50のドライブがあり、searchこれらすべてを通過する必要があります... 2356回目の試行で探していたUUIDが最終的に見つかるまで。

または、非常に遅いデバイスを使用していて、そのUUIDを確認するsearchと、しばらくの間スタックしている可能性があります。あります--no-floppy最も一般的なケースを避けるために、私は推測する-が、他のデバイスも遅くなることがあります。

では--hint、最初にチェックするデバイスを設定します。ヒントが正しければ、長くなる可能性のある検索操作をすべてスキップします。これは速度の最適化です。(おそらく1つのドライブ、3つのパーティションだけでは目立ちません)

@tottiの回答に記載されている、同じLABELまたはUUIDを持つデバイスが2つある場合に特定のデバイスを優先するという効果。これは単なる副作用です。

確かに、あるデバイスを最初にチェックした場合、別のデバイスの重複は検出されません。それでも、そもそもそのような重複がない方が理にかなっています。重複するUUID(またはLABEL)は構成エラーと見なすことができる--hintため、間違っていることが判明した場合でも、間違ったデバイスが返される可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.