ตัวเลือก - คำแนะนำในคำสั่งการค้นหาของ grub2 ทำอะไร


10

ฉันกำลังดูเอกสารsearchคำสั่งGRUB2 อย่างเป็นทางการตามที่พบใน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.

ในส่วนที่ 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

จะเลือกhd1, msdos7แทน hd0, msdos1


6
มีความคิดใดบ้างว่าทำไมมีตัวเลือก --hint-efi, --hint-baremetal, ฯลฯ ?
Michael Scheper

และถ้าsearch --fs-uuidมีการใช้สิ่งที่ใช้คือ--hintอะไร?
ซาดมาลิก

@SaadMalik, UUID ไม่จำเป็นต้องซ้ำกัน UUID ของระบบไฟล์ทำงานในลักษณะเดียวกับป้ายกำกับ แต่โดยทั่วไปแล้ว UUID จะถูกสร้างขึ้นในการสร้าง FS
jiwopene

1

สิ่งนี้ไม่ได้อธิบายไว้ในคู่มือ GRUBแต่มีเอกสารที่สามารถพบได้ใน GRUB เอง ( search --helpบนเชลล์ 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

ทีนี้ประเด็นของ "อุปกรณ์ลองใช้ครั้งแรก" คืออะไร?

คุณต้องเข้าใจว่าsearchเป็นการดำเนินการที่อาจช้า

บางทีคุณอาจมีไดรฟ์ 50 ตัวแต่ละพาร์ติชันมี 100 พาร์ติชันและตอนนี้searchต้องผ่านสิ่งเหล่านี้ ... จนในที่สุดก็พบ UUID ที่คุณกำลังมองหาในความพยายามครั้งที่ 2356

หรือบางทีคุณอาจมีอุปกรณ์ที่ช้ามากและตรวจสอบสาเหตุของ UUID searchที่ติดค้างอยู่ครู่หนึ่ง ฉัน--no-floppyควรหลีกเลี่ยงกรณีที่พบบ่อยที่สุด แต่อุปกรณ์อื่น ๆ อาจช้าเช่นกัน

ด้วย--hintคุณตั้งค่าอุปกรณ์ให้ตรวจสอบก่อน หากให้คำใบ้ว่าถูกต้องคุณจะข้ามการดำเนินการค้นหาที่มีความยาวอย่างอื่นทั้งหมด นี่คือการเพิ่มประสิทธิภาพความเร็ว (อาจจะไม่เป็นที่สังเกตเห็นเพียงหนึ่งไดรฟ์สามพาร์ติชัน)

ผลที่ได้อธิบายไว้ในคำตอบ @ tottiของการตั้งค่าให้กับอุปกรณ์เฉพาะเมื่อมีสองด้วย LABEL หรือ UUID เดียวกันนั่นควรจะเป็นผลข้างเคียง

แน่นอนว่าถ้าคุณตรวจสอบอุปกรณ์หนึ่งก่อนจะไม่พบสิ่งที่ซ้ำกันในอุปกรณ์อื่น ถึงกระนั้นมันก็สมเหตุสมผลดีกว่าที่จะไม่มีสิ่งที่ซ้ำกันในตอนแรก เนื่องจาก UUID ที่ซ้ำกัน (หรือ LABELs) อาจถือเป็นข้อผิดพลาดในการกำหนดค่าและในกรณีที่การ--hintเปิดใช้งานผิดพลาดอาจยังคงส่งคืนอุปกรณ์ที่ไม่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.