Grub2'nin arama komutundaki --hint seçeneği ne işe yarar?


10

Http://www.gnu.org/software/grub/manual/grub.html#index-search adresindesearch bulunan komut için resmi GRUB2 belgelerine bakıyorum

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.

Bölüm 5.3'te birçok örnek vardır.

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

Görünüşe göre bu --hintseçenek bir örnek olmaktan başka belgesizdir. Tam olarak ne yapar? Argümanın kesin formatı nedir?

Yanıtlar:


6

--hint, birden çok eşleşen bölüm olduğunda hangi bölümün seçileceğini seçmek için kullanılır. Varsayılan olarak ilk eşleşen 1 seçilidir.

Aşağıdaki gibi etiket önyüklemeli 2 depolama cihazı olduğunu varsayalım.

hd0,msdos1
hd1,msdos7

sonra komut:

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

seçecektir hd1, msdos7 yerine hd0, msdos1


6
Neden ayrı --hint-efi, --hint-baremetal, vs. seçenekleri olduğu hakkında bir fikriniz var mı?
Michael Scheper

Ve eğer search --fs-uuidkullanılırsa, ne işe yarar --hint?
Saad Malik

@SaadMalik, UUID'nin benzersiz olması gerekmez. Dosya sistemi UUID'leri etiketlerle aynı şekilde çalışır, ancak UUID genellikle FS oluşturmada oluşturulur.
jiwopene

1

Bu GRUB Kılavuzunda tarif edilmemiştir, ancak GRUB'un kendisinde ( search --helpGRUB kabuğunda) bulunacak belgeler vardır :

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

Şimdi "İlk deneme cihazı" nın anlamı nedir?

Bunun searchpotansiyel olarak yavaş bir işlem olduğunu anlamalısınız .

Belki de her biri 100 bölümlü 50 sürücünüz var ve şimdi searchbunların hepsinden geçmek zorundasınız ... sonunda 2356. denemede aradığınız UUID'yi bulana kadar.

Ya da belki çok yavaş bir cihazınız var ve UUID'sini kontrol etmek searchbir süre takılıp kalıyor . Orada --no-floppy, en yaygın durum önlemek için sanırım - ama diğer cihazlar da yavaş olabilir.

İle --hintönce kontrol etmek için bir cihaz ayarlarsınız. İpucunun doğru olması koşuluyla, potansiyel olarak uzun arama işlemini tamamen atlarsınız. Yani bu bir hız optimizasyonu. (Muhtemelen tek bir sürücü, üç bölüm ile fark edilmeyecektir)

@ Totti'nin aynı ETİKET veya UUID'ye sahip iki tane olduğunda belirli bir cihaza tercih verme cevabında açıklanan etki , sadece bir yan etki olmalıdır.

Elbette, önce bir cihazı kontrol ederseniz, başka bir cihazda kopya bulunmamalıdır. Yine de, bu tür kopyaların ilk etapta olmaması daha mantıklı olacaktır. Yinelenen UUID'ler (veya LABEL'ler) bir yapılandırma hatası olarak kabul edilebildiğinden ve --hintbunun yanlış olması durumunda, yanlış cihazı yine de döndürebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.