Grub2 के सर्च कमांड में --hint विकल्प क्या करता है?


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यह चुनने के लिए प्रयोग किया जाता है कि कौन से विभाजन का चयन करना है जब कई मिलान वाले विभाजन हैं। डिफ़ॉल्ट रूप से 1 मिलान किया हुआ चयन किया जाता है।

मान लीजिए कि लेबल बूट के साथ 2 स्टोरेज डिवाइस निम्नानुसार हैं

hd0,msdos1
hd1,msdos7

तब कमांड:

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

HD1, msdos1 के बजाय hd1, msdos7 का चयन करेंगे


6
किसी भी विचार क्यों वहाँ मौजूद हैं अलग --hint-efi, --hint-baremetal, आदि विकल्प?
माइकल शेपर

और अगर search --fs-uuidउपयोग किया जाता है, तो क्या उपयोग है --hint?
साद मलिक

@ सादालिक, यूयूआईडी को अद्वितीय नहीं होना चाहिए। Filesystem UUIDs लेबल की तरह ही काम करते हैं लेकिन 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एक संभावित धीमा ऑपरेशन है।

हो सकता है कि आपके पास 50 ड्राइव हों, जिनमें से प्रत्येक 100 विभाजन के साथ हो, और अब searchइन सभी के माध्यम से जाना है ... जब तक कि यह अंत में यूयूआईडी नहीं मिल जाता है आप 2356 वें प्रयास में देख रहे थे।

या हो सकता है कि आपके पास एक बहुत ही धीमा उपकरण हो और उसके UUID कारणों की जाँच searchकुछ समय के लिए अटक जाए। नहीं है --no-floppy, सबसे आम मामले से बचने के लिए मुझे लगता है कि - लेकिन अन्य उपकरणों को भी धीमी गति से हो सकता है।

इसके साथ --hint, आप पहले जांचने के लिए एक उपकरण सेट करते हैं। बशर्ते संकेत सही था, आप अन्यथा संभावित रूप से लंबे खोज अभियान को छोड़ दें। तो यह एक गति अनुकूलन है। (शायद सिर्फ एक ड्राइव, तीन विभाजन के साथ ध्यान देने योग्य नहीं होगा)

किसी विशेष उपकरण को वरीयता देने के @ टोटी के उत्तर में वर्णित प्रभाव जब एक ही LABEL या UUID के साथ दो होते हैं, तो यह केवल एक साइड इफेक्ट होना चाहिए।

ज़रूर, अगर आप एक डिवाइस को पहले चेक करते हैं, तो दूसरे डिवाइस पर डुप्लिकेट नहीं मिलना चाहिए। फिर भी, यह पहली बार में इस तरह के डुप्लिकेट नहीं होने के लिए अधिक समझ में आता है। जैसा कि डुप्लिकेट UUIDs (या LABEL) को कॉन्फ़िगरेशन त्रुटि माना जा सकता है, और यदि --hintगलत निकला, तो यह अभी भी गलत डिवाइस लौटा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.