Apa yang dilakukan opsi --hint di perintah pencarian grub2?


10

Saya sedang melihat dokumen resmi GRUB2 untuk searchperintah tersebut, seperti yang ditemukan di 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.

Di bagian 5.3 ada banyak contoh

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

Tampaknya --hintopsi tidak berdokumen selain sebagai contoh. Apa fungsinya sebenarnya? Apa format argumen yang tepat?

Jawaban:


6

--hintdigunakan untuk memilih partisi mana yang akan dipilih ketika ada beberapa partisi yang cocok. Secara default yang pertama cocok adalah yang dipilih.

Misalkan ada 2 perangkat penyimpanan dengan label boot sebagai berikut

hd0,msdos1
hd1,msdos7

lalu perintahnya:

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

akan memilih hd1, msdos7 bukan hd0, msdos1


6
Adakah ide mengapa ada opsi terpisah --hint-efi, --hint-baremetal, dll.?
Michael Scheper

Dan jika search --fs-uuiddigunakan, apa gunanya --hint?
Saad Malik

@SaadMalik, UUID tidak harus unik. UUID Filesystem bekerja dengan cara yang sama seperti label tetapi UUID biasanya dihasilkan pada pembuatan FS.
jiwopene

1

Ini tidak dijelaskan dalam Manual GRUB tetapi ada dokumentasi yang dapat ditemukan di GRUB itu sendiri ( search --helppada shell 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

Sekarang apa gunanya "Perangkat percobaan pertama"?

Anda harus memahami bahwa itu searchadalah operasi yang berpotensi lambat.

Mungkin Anda memiliki 50 drive, masing-masing dengan 100 partisi, dan sekarang searchharus melalui semua ini ... sampai akhirnya menemukan UUID yang Anda cari dalam upaya 2356.

Atau mungkin Anda memiliki perangkat yang sangat lambat dan memeriksa UUID yang menyebabkannya searchmacet untuk sementara waktu. Ada --no-floppyuntuk menghindari kasus yang paling umum, saya kira - tetapi perangkat lain juga bisa lambat.

Dengan --hint, Anda mengatur perangkat untuk memeriksa terlebih dahulu. Asalkan petunjuk itu benar, Anda melewatkan operasi pencarian yang berpotensi panjang secara keseluruhan. Jadi ini adalah optimasi kecepatan. (Mungkin tidak akan terlihat hanya dengan satu drive, tiga partisi)

Efek yang dijelaskan dalam jawaban @ totti tentang memberikan preferensi ke perangkat tertentu ketika ada dua dengan LABEL atau UUID yang sama, yang seharusnya hanya menjadi efek samping.

Tentu, jika Anda memeriksa satu perangkat terlebih dahulu, duplikat pada perangkat lain tidak boleh ditemukan. Meski begitu, akan lebih masuk akal untuk tidak memiliki duplikat seperti itu di tempat pertama. Karena duplikat UUID (atau LABEL) dapat dianggap sebagai kesalahan konfigurasi, dan jika --hintternyata ternyata salah, itu mungkin masih mengembalikan perangkat yang salah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.