मैं अपने GRUB मेनू को कैसे छिपा सकता हूं, और शिफ्ट या esc कुंजियों को बूट समय पर छिपे हुए GRUB मेनू को दिखा सकता हूं


10

मैं Ubuntu 16.10 चला रहा हूं, और मैं अपने GRUB मेनू को शक्ति / बूट समय पर छिपाने की कोशिश कर रहा हूं, और मेनू को केवल तभी प्रदर्शित करना चाहता हूं जब मैंने Shiftया Escकुंजी को मारा था ।

मैं उपयुक्त विकल्पों में बदलाव करता हूं /etc/default/grubऔर यह अभी भी मेनू को छिपाएगा नहीं।

इस पर शोध करने पर, मैंने इस पोस्ट को 2013 के GRUB के छिपे हुए मेनू में काम नहीं किया, जो बताता है कि समस्या कुछ समय के लिए आस-पास रही है, और एक बदलाव का सुझाव देता है /etc/grub.d/30_os-proberजो मैं नहीं करना चाहता था। यह कोड बताता है कि चूंकि इसके कई ओएस पाए गए हैं, यह GRUB_TIMEOUT=10वैसे भी सेट होने जा रहा है ।

यहाँ मैं क्या अब में एक टुकड़ा है /etc/default/grub... एक 10 सेकंड उलटी गिनती के साथ एक मेनू ...

GRUB_DEFAULT = बचाया
GRUB_SAVEDEFAULT सच =
GRUB_HIDDEN_TIMEOUT_QUIET सच =
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || इको डेबियन `
GRUB_CMDLINE_LINUX_DEFAULT = "शांत छप"

अगर मैं uncomment #GRUB_HIDDEN_TIMEOUT=0, तो sudo update-grubइस बात पर जोर मैं भी सेट है कि GRUB_TIMEOUT=10करने के लिए GRUB_TIMEOUT=0। मैं ऐसा करता हूं, और मैं अभी भी GRUB मेनू देखता हूं।

terminalटाइपिंग में , info -f grub -n 'Simple configuration'विभिन्न विकल्पों का वर्णन किया गया है, और जानकारी के बहुत अंत में, यह दर्शाता है कि कुछ वर्तमान कमांड को हटा दिया गया है, और यह बताता है कि नए प्रतिस्थापन बेहतर हैं।

क्या किसी को पता है कि मैं अपने GRUB मेनू को 16.10 में छिपाने के लिए कैसे प्राप्त कर सकता हूं और क्या इसे बूट समय पर पहचाना जा सकता है Shiftया Escकुंजी है?


मुझे खुशी है कि आपने यह पूछा। मुझे मेरा काम करने के लिए नहीं मिला, और यह इस बात की पुष्टि करता है कि यह बॉक्स के दोहरे बूटर होने के कारण है।
आर्गेनिक मार्बल

1
@OrganicMarble समस्या का कई OS के साथ क्या करना है। परीक्षण करने के लिए, मैंने /etc/grub.d/30_os-prober में कोड के उस हिस्से को संशोधित किया, और हालांकि मुझे कोई मेनू नहीं मिला, मैं बूट समय पर शिफ्ट या एस्क के साथ मेनू को बाध्य करने में सक्षम नहीं था। अभी तक उस पर कार्य कर रहा हूं।
heynnema

मैंने अपने उत्तर में आपसे संबंधित कीड़े के बारे में कुछ और जानकारी जोड़ी, वे समस्या की प्रकृति को अधिक अच्छी तरह से समझने में आपकी मदद कर सकते हैं। मैं Grub2 कोड को भी देख रहा हूं - मदद करने की कोशिश कर रहा
हूं

यदि आपने नहीं किया है तो ग्रब कस्टमाइज़र का उपयोग करने का प्रयास करें, इस क्रम में सामान्य सेटिंग टैब - 1 बॉक्स को "अन्य ऑपरेटिंग सिस्टम के लिए देखो" और 2 अनचेक "शो मेनू" को अनचेक करें फिर सहेजें। परीक्षण करें और देखें कि क्या "Shift" मेनू को ऊपर लाएगा और फिर कुछ भी दबाए जाने पर क्या होगा।
xtrchessreal

मैं समझ सकता हूं कि आप संशोधित नहीं करेंगे, /etc/grub.d/30_os-proberलेकिन मैं वास्तव में नुकसान नहीं देख रहा हूं। आप अपने परिवर्तनों की प्रतिलिपि बनाकर रख सकते हैं या # बदल सकते हैं ताकि आवश्यकता पड़ने पर आप उन्हें उलट सकें। आपको जो वर्कअराउंड मिला, वह इस समय सबसे उचित समाधान है।
एल्डर गीक

जवाबों:


7

ठीक है दोस्तों, यहाँ जवाब है ... दोहरे बूट विन्यास में एक छिपा GRUB मेनू प्राप्त करने के लिए ... दो संपादन ... और एक sudo update-grub...

# 1 संपादित करें

बहु-बूट कॉन्फ़िगरेशन में छिपे हुए GRUB मेनू को प्राप्त करने के लिए, हमें सबसे पहले संपादित करने की आवश्यकता है /etc/default/grub। नीचे कमांड का उपयोग करके इस फ़ाइल को खोलें:

sudo editor /etc/default/grub

फ़ाइल के खुलने के बाद, इन लाइनों को बदलें

GRUB_HIDDEN_TIMEOUT_QUIET=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

इनके साथ:

GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT_STYLE=countdown
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=3

इससे GRUB स्क्रीन पर 3 सेकंड की उलटी गिनती घड़ी प्रदर्शित करेगा। ऐसा करने से, एक उपयोगकर्ता Escडिफ़ॉल्ट मेनू को लाने के लिए कुंजी को हिट कर सकता है । अन्यथा, डिफ़ॉल्ट ओएस बूट हो जाएगा।

यदि आप चाहते हैं कि डिफ़ॉल्ट ओएस अंतिम-बूट ओएस पर सेट किया जाना चाहिए, तो ऊपर दिखाए गए "GRUB_TIMEOUT = 3" के नीचे दो लाइनें जोड़ें:

GRUB_DEFAULT=saved    # change an existing line to this
GRUB_SAVEDEFAULT=true # add this line

# 2 संपादित करें

इसके बाद, OS prober को quick_boot सुविधा को अक्षम करने के लिए अद्यतन करने की आवश्यकता है। ऐसा करने के लिए खोलने के /etc/grub.d/30_os-proberअपने पसंदीदा संपादक में और (17.04 में लाइन 23) की रेखा से नीचे बदल बदल कर 1एक साथ 0:

quick_boot="1"

जब आप कर लें, तो पंक्ति को इस तरह पढ़ना चाहिए:

quick_boot="0"

फ़ाइलों को सहेजें और फिर बूटलोडर को फिर से कॉन्फ़िगर करने और अपने परिवर्तनों को लागू करने के लिए नीचे दिए गए आदेश को चलाएं:

sudo update-grub

यह किया! +1।
ऑर्गेनिक मार्बल

एक अच्छा समाधान की तरह लग रहा है :) अब मेरे पास इसके बारे में एक सरल प्रश्न है। यदि आप GRUB_TIMEOUT को "3" से "1" में बदलते हैं, तो क्या आप तेजी से बूट करेंगे। और क्या आप लिंक प्रदान कर सकते हैं, यदि कोई हो, जहां कोई भी पढ़ सकता है कि यह कोड कैसे काम करता है। मैं यह समझना चाहता हूं कि यह कोड क्या कर रहा है और इसके फंक्शन कॉल आदि का क्रम काफी सराहा गया है। यह अच्छा है जब आप अपने सवालों को हल कर सकते हैं - उस पर अच्छा काम।
xtrchessreal

@ कामचोर हाँ, 3 को 1 में बदलना 2 सेकंड कम कर देता है। मुझे लगा कि 3 सेकंड मेरे लिए Esc कुंजी पर हाथ रखने के लिए पर्याप्त समय था, अगर मैं चाहता था। आप info -f grub -n 'Simple configuration'अधिक जानकारी के लिए देख सकते हैं ।
19

ए के लिए +1 और ए के लिए +1 पिछली दो रातों में मैं 30_os- उचित, 31_blah_blah बनाने और कोई लाभ नहीं करने के लिए 40_custom बनाने के लिए सभी प्रकार के बाल दिमाग संशोधनों के साथ इस googling गया है। यह AU, ArchLinux, Fedora और कई अन्य स्थानों पर है। यदि आप अधिक वोट चाहते हैं, तो मैं यहाँ AU (वहाँ बहुत सारे) में सभी गलत उत्तरों पर नज़र रखने का सुझाव दूंगा और उन्हें इस एक के डुप्लिकेट के रूप में बंद करने के लिए मतदान कर रहा हूँ, (P एयू सामान्य चैट रूम में @ me) डुप्लिकेट के लिंक के साथ और मैं इसे वोट भी करूंगा। इस महान अनुसंधान और काम कर रहे समाधान के लिए धन्यवाद! :)
विनयुनुच्स

@ WinEunuuchs2Unix अच्छी टिप्पणी के लिए धन्यवाद, और वोट! मैंने खुद बहुत खोजबीन की, इससे पहले कि मैंने पाया कि किसी के पास एक सुरुचिपूर्ण समाधान नहीं था, या कोई भी समाधान बिल्कुल नहीं था ... लेकिन मैं निर्धारित किया गया था :-)
heynnema

3

मेरा मानना ​​है कि यह समस्या ग्रब 2 विकी के इस अंश के अनुसार कई ओएस के कारण हो सकती है :

यदि किसी अन्य ऑपरेटिंग सिस्टम का पता नहीं लगा है, तो GRUB 2 डिफ़ॉल्ट ऑपरेटिंग सिस्टम में सीधे बूट होगा और कोई मेनू प्रदर्शित नहीं होगा। यदि किसी अन्य ऑपरेटिंग सिस्टम का पता चला है, तो GRUB 2 मेनू प्रदर्शित करेगा

तथा

यदि GRUB_DEFAULT = सहेजा गया / etc / default / grub में सेट किया गया है, तो OS को सहेजना sudo grub-set-default चलाकर प्राप्त किया जा सकता है। यदि GRUB_SAVEDEFAULT = true को / etc / default / grub में भी सेट किया गया है तो इसे बचाया जा सकता है। इस स्थिति में, डिफ़ॉल्ट OS तब तक बना रहता है जब तक कि GRUB 2 मेनू से नए OS को मैन्युअल रूप से नहीं चुना जाता है या ग्रब-सेट-डिफ़ॉल्ट कमांड निष्पादित नहीं किया जाता है।

Grub2 Wiki में यह भी लिखा गया है: नोट: GRUB 1.97 से GRUB 1.99 में छिपे मेनू फीचर पर एक लंबे समय से पुष्टि की गई बग है। हो सकता है कि मेनू इस पृष्ठ पर विवरण के अनुसार छिपा न हो। 30_os-prober स्क्रिप्ट को संपादित करते समय इस समस्या को ठीक कर सकते हैं, यह इस पृष्ठ के दायरे से परे है।

आपके आस-पास के काम के रूप में आप इसे सेट कर सकते हैं GRUB_TIMEOUT="1"और आप केवल 1 सेकंड के लिए मेनू देखेंगे। अगर मुझे दूसरे ओएस पर स्विच करने की आवश्यकता है तो मैं बस उस सेकंड के भीतर तीर को नीचे दबाता हूं और मेनू तब तक दिखाई देगा जब तक कि मैं एक विकल्प नहीं बनाता।

बग से संबंधित संभावित सिंटैक्स समस्या हो सकती है। मैं एक ग्रब 2 विशेषज्ञ नहीं हूं, लेकिन मेरी ग्रब फ़ाइल में हर कमांड लाइन = "कुछ उद्धृत सेटिंग" के साथ समाप्त होती है, मुझे अपने कोडिंग दिनों से याद है कि "उद्धरण" एक स्ट्रिंग पास करने के लिए थे जहां गैर-उद्धरण चर के लिए सरल संख्यात्मक मान गुजर रहे थे। मैं नए कोड तकनीकों में यूपी नहीं हूं । उदाहरण यहाँ मेरे कुछ ग्रब आउटपुट है:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="Ubuntu"
#GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="1"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

मैं इस Grubbug में देख रहा हूँ :) अधिक जानकारी के लिए और साथ ही इस बग ये दोनों Grub2 संबंधित 2yrs पुराने हैं। यह कुछ ग्रब 2 को हैंडऑफ करने से पहले एमबीआर कोड से संबंधित हो सकता है


आपके प्रतिक्रिया के लिए धन्येवाद। मैं पहले से ही SAVEDEFAULT पद्धति का उपयोग कर रहा हूं। TIMEOUT = 1 निश्चित रूप से मेनू उपस्थिति समय को छोटा करता है। समस्या कई ओएस के साथ क्या करना है। परीक्षण करने के लिए, मैंने कोड के उस हिस्से को संशोधित किया /etc/grub.d/30_os-prober, और हालांकि मुझे कोई मेनू नहीं मिला, मैं बूट समय पर शिफ्ट या एस्क के साथ मेनू को बाध्य करने में सक्षम नहीं था।
हेयनेमा

आपके द्वारा जोड़े गए बग प्रासंगिक नहीं लगते हैं या मैं कुछ याद नहीं कर रहा हूं?
एल्डर गीक

@ElderGeek बग के संबंध में # 1401318 जिस व्यक्ति को बग को TJ को सौंपा गया है, वह MBR से ग्रब तक के व्यवहार के बारे में बताता है क्योंकि वह कहता है कि "स्लीप - इन्टरनेटेबल $ टाइमआउट" आदि। यदि आप बग में उसके सभी बयान पढ़ते हैं तो मुझे लगता है। आप देखेंगे कि समस्या का कम से कम हिस्सा क्या है। उसे बग # 425979 को भी सौंपा गया है जो मुद्दों में समान है। ग्रब मेनू लाने के लिए शिफ्ट कुंजी के साथ काम करने वाले दोनों कीड़े छिपे हुए होने पर काम नहीं कर रहे हैं। यह वही है जो ओपी के रूप में अच्छी तरह से पता लगाने की कोशिश कर रहा है। मुझे आशा है कि यह स्पष्ट करता है कि लिंक मेरे पोस्ट किए गए उत्तर में क्यों हैं।
xtrchessreal

मेरी उलझन को क्षमा करें। मैंने प्रश्न को यह कहते हुए पढ़ा "मैं अपने GRUB मेनू को छिपाने के लिए कैसे प्राप्त कर सकता हूं" स्पष्ट करने के लिए धन्यवाद। मुझे वह टिप्पणी याद आ गई होगी।
एल्डर गीक

@EldGeek वास्तव में, सवाल यह है कि "मैं अपने GRUB मेनू को कैसे छिपाया जा सकता है, और शिफ्ट या esc कुंजियों को बूट समय पर छिपे हुए GRUB मेनू को दिखाता है"। मैं इसे छिपाने के लिए मिल गया हूं। मैं काम करने के लिए पारी या एस्क कुंजी नहीं मिला है। जाहिरा तौर पर यह समस्या 2013 या उससे पहले वापस चली जाती है, और केवल बहु-बूट कॉन्फ़िगरेशन को प्रभावित करती है।
हेयनेमा

3
  1. मुझे लगता है कि आप के माध्यम से उपलब्ध 'सब कुछ' की कोशिश करना चाहते हैं /etc/default/grub। क्या आपने इस लिंक को पढ़ा,

    help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

  2. मेरा सुझाव है कि आप निम्न पंक्तियों को हटाने का प्रयास करें /boot/grub/grub.cfg,

    ...
    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/30_os-prober ###
    

    हां, मुझे पता है, आपको इसे हर बार update-grubचलाने के लिए करना होगा , लेकिन आप इसके लिए एक स्क्रिप्ट बना सकते हैं।


आपके प्रतिक्रिया के लिए धन्येवाद। मैं उस लिंक पर एक नज़र डालूंगा। मुझे /etc/grub.d/30_os-prober को संशोधित करने का एक तरीका भी मिला, ताकि मुझे हर बार grub.cfg को संपादित न करना पड़े।
हेयनेमा

यह मेरे लिए समझ में आता है, जैसे कि एक मल्टीबूट सिस्टम में ऐसा लगता है कि यह कोड टाइमआउट को 0 से 10 तक बदल देता है जो HIDDEN_TIMEOUT को हराने के लिए लगता है ....
एल्डर गीक

@heynnema क्या आप अपने परिवर्तनों को os-prober में पोस्ट कर सकते हैं? जब मैंने आपके प्रश्न के लिंक को देखा और अपने ओएस-प्रोबेर में कोड की तुलना की, तो लाइन संख्या का कोई मतलब नहीं था, इसलिए मुझे लगता है कि ओएस-प्रोबेर तब से बदल गया है, और मुझे इसके साथ गड़बड़ करने का डर था।
ऑर्गेनिक मार्बल

1
@OrganicMarble मेरे प्रश्न का अद्यतन देखें। हो सकता है कि आप मेरे सभी मॉड्स को आज़माएँ और देखें कि आप क्या कर रहे हैं।
हायनेमा

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