टाइमआउट (या दूर जाना) के लिए ग्रब मेनू नहीं मिल सकता


18

मैं Ubuntu 12.04 चला रहा हूं।

मैं अपने जीवन के लिए ग्रब मेनू (विकल्पों के साथ) नहीं छोड़ सकता।

मैं इसे पहले विकल्प में ऑटो-बूट करना चाहूंगा। मैंने / etc / default / grub को संपादित किया है ताकि यह निम्नलिखित जैसा लगे:

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

इसके बाद, मैंने sudo अपडेट-ग्रब चलाया । तब मुझे एहसास हुआ कि मेरे पास ग्रब 2 था, इसलिए मैंने sudo update-grub2 चलाया (दोनों इसे ऐसे बनाते हैं जैसे वे grub.cfg फ़ाइल को सफलतापूर्वक बनाते हैं ।

मैं अपने कंप्यूटर को पुनरारंभ करता हूं और यह ग्रब मेनू पर वापस चला जाता है और बस तब तक बैठता है जब तक कि मैं एक विकल्प नहीं बनाता। यह वांछनीय नहीं है अगर बिजली निकल जाती है ... :-)

मैंने sudo grub-install / dev / sda का उपयोग करके ग्रब को पुन : स्थापित करने का भी प्रयास किया - असफल भी


क्या आप किसी भी संयोग से एक और विभाजन है जो आपने वर्तमान विभाजन को स्थापित करने के बाद उबंटू को स्थापित किया था जिसे अब आप स्वचालित रूप से बूट करना चाहते हैं?
फैब्रिकेटर 4

मुझे यकीन नहीं है कि आपका क्या मतलब है, मैं लिनक्स के लिए नया हूं। मैंने पिछले Ubuntu इंस्टालेशन पर इंस्टॉल किया था, लेकिन मैंने अपग्रेड नहीं किया। साफ स्थापित करें। मैं विभाजन-वार कुछ गड़बड़ कर सकता हूँ ... यह संभव है, इसे ठीक करने पर कोई विचार?
एरिक

sudo update-grubऔर sudo update-grub2उसी कमांड को चलाता है। तो, उस भाग के बारे में चिंता न करें।
साजी 8989

कृपया आप cat /boot/grub/grub.cfg पास्टबिन के माध्यम से आउटपुट पोस्ट करते हैं और यहां लिंक साझा करते हैं। यह वास्तविक grub.cfgउत्पन्न देखना है ।
साजी ji sa

यहाँ pastebin है: pastebin.com/xxe2rLhg का grub.cfg। आपकी सभी मदद का धन्यवाद!
एरिक

जवाबों:


23

जैसा कि अन्य उत्तर बताते हैं, आप रिकॉर्डफेल की स्थिति के शिकार हो सकते हैं । /boot/grub/grub.cfgस्वचालित रूप से उत्पन्न होने के रूप में संपादन मैन्युअल रूप से प्रश्न से बाहर होना चाहिए। आसपास देखा गया एक अन्य सुझाव है, /etc/grub.d/00_headerलेकिन फिर यह अपडेट पर उपयोगकर्ता के हस्तक्षेप के लिए संकेत दे सकता है।

सबसे आसान उपाय यह है कि इसमें अविभाजित GRUB_RECORDFAIL_TIMEOUT चर को परिभाषित किया जाए /etc/default/grub। उदाहरण के लिए:

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

संपादित करें

देखें इस उत्तर अधिक जानकारी के लिए।


1
बहुत बहुत धन्यवाद, यह वही है जो मैं देख रहा था!
एवियो

1
परिवर्तन करने के बाद, update-grubअपडेट की गई /boot/grub/grub.cfgफ़ाइल को उत्पन्न करने के लिए भी चलाएं
Colt

की कार्यक्षमता को मत मारो recordfail! यदि आप एक असफल बूटिंग था, तो आप एक लंबा समय चाहते हैं। मैन्युअल रूप से स्पष्ट करने के लिए, आपको केवल @ sniffski का उत्तर देना होगा grub-editenv create:। हालाँकि, कुछ और कारण हो सकता recordfailहै ...
कैमरन टैकलिंड

6

उपयोग:

grub-editenv create

यह ग्रब वातावरण फ़ाइल को साफ़ करेगा और अगली बार स्पष्ट रूप से बूट करना चाहिए।


साझा करने के लिए बहुत - बहुत धन्यवाद। इसने SSH के माध्यम से काम किया जिसने ग्रब हेडलेस सर्वर पर अटकने के लिए मेरा दिन बना दिया।
गप्पेटेव्स डी'कोन्स्टोनजो

1
grub-editenv - unset recordfailके रूप में अच्छी तरह से काम करता है और सेट किया जा सकता है कि अन्य envs को प्रभावित नहीं करता है
कैमरून Tacklind

2

GRUB_TIMEOUT=10शून्य में बदलें

यह मेरी कॉन्फ़िगरेशन फ़ाइल है:

GRUB_DEFAULT="Ubuntu, with Linux 3.2.0-30-generic-pae"
#GRUB_HIDDEN_TIMEOUT=10
#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=""

सबसे पहले, उस ओएस का नाम लिखें जिसे आप सीधे बूट करना चाहते हैं। मेरा उबटन है। तो आप इसे इस रूप में लिखेंगेGRUB_DEFAULT="Ubuntu, with Linux x.x.x-xx-generic-pae"

फिर मैंने GRUB_TIMEOUT=डिफ़ॉल्ट ओएस का चयन करने से पहले मुझे 1 सेकंड देने के लिए 1 सेकंड का उपयोग किया (यदि मुझे Xub 日 के लिए किसी अन्य ओएस को बूट करने की आवश्यकता है)

जैसे कि GRUB_CMDLINE_LINUX_DEFAULT=""यदि आप quite splashइसे हटाते हैं तो यह बूटिंग प्रक्रिया के दौरान आपको उबंटू लोगो के बजाय पाठ दिखाएगा (मुझे यह इस तरह पसंद है: P)


एक और उपाय है:

एक प्रोग्राम है जिसे बूट-रिपेयर कहा जाता है जो GUI के साथ कॉन्फ़िगर करने में मदद करता है।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

जैसा कि आप इमेज से देख सकते हैं। वहाँ एक बॉक्स कहा जाता है Unhide boot menu। बस बॉक्स को अनचेक करें और appy दबाएँ। आप इसे उन्नत विकल्प तीर पर क्लिक करके एक्सेस कर सकते हैं।

बूट मरम्मत स्थापित करने के लिए

sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get update

sudo apt-get install -y boot-repair

और फिर boot-reapirटर्मिनल से या डैश से चलाएं ।


तीसरा समाधान:

आप अपने जीवन को थोड़ा आसान बनाने के लिए जीयूआई ऐप नामक ग्रब-कस्टमाइज़र का उपयोग करने के लिए एक आसान का उपयोग कर सकते हैं। जैसा कि नाम से पता चलता है, आप इसके साथ ग्रब मेनू प्रविष्टियों को पुन: व्यवस्थित करने की तुलना में बहुत अधिक कर सकते हैं।

आप इसे इसके द्वारा स्थापित कर सकते हैं:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

यहाँ छवि विवरण दर्ज करें

जैसा कि आप मेनू से देख सकते हैं show menuविकल्प है। अनस्केक करें और देखें कि क्या यह काम करता है


कोई परिवर्तन नहीं होता है। : - / मुझे लगा कि मेनू में सूची के अनुसार GRUB_DEFAULT को एक संख्यात्मक # होना चाहिए था? GRUB_TIMEOUT को 0 में बदलने से मदद नहीं मिली।
एरिक

@ यदि आप 2 तरीकों का उपयोग कर सकते हैं: यदि आप अपने ओएस की जगह को ग्रब सूची में जानते हैं तो आप एक नंबर का उपयोग कर सकते हैं। लेकिन मेरे लिए मेरे पास 4 लिनक्स डिस्ट्रोस और 1 विंडोज प्लस मेमटेस्ट और रिकवरी है। तो इसके लिए मुझे अपनी जगहों को याद रखना मुश्किल है :) सिर्फ यह सुनिश्चित करने के लिए (मुझे पता है कि आपने इसे किया होगा, लेकिन सिर्फ यह सुनिश्चित करने के लिए: पी)। क्या आपने grub-updateमूल्यों को बदलने के बाद भाग लिया ?
सुहैब

मैंने मान बदलने के बाद ग्रब-अपडेट चलाया। : - /
एरिक

मैंने आपके द्वारा प्रदान किए गए बूट-रिपेयर ऐप को इंस्टॉल और इस्तेमाल किया, यह पहले रीबूट पर काम करता है । उसके बाद, GRUB मेनू वापस आ गया है और यह तब तक बैठता है जब तक मैं एक कुंजी दबाता हूं। आपकी सभी मदद के लिए धन्यवाद, मैं वास्तव में इसकी सराहना करता हूं। यकीन नहीं है कि यहाँ से कहाँ जाना है ...
एरिक

@ ऐरिक ओके मुझे इसका तीसरा समाधान मिला
सुहैब

2

GRUB_HIDDEN_TIMEOUTऔर GRUB_HIDDEN_TIMEOUT_QUIETविकल्प हटाए गए हैं। तो उन पर टिप्पणी करें।

मेनू को छोड़ कर केवल पकड़े जाने पर दिखाएँ ESC:

GRUB_TIMEOUT_STYLE='countdown'
GRUB_TIMEOUT=1

नमूना /etc/default/grub

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

'GRUB_TIMEOUT_STYLE' : यदि यह विकल्प 'उलटी गिनती' या 'छिपी' पर सेट है, तो, मेनू प्रदर्शित करने से पहले , GRUB 'GRUB_TIMEOUT' द्वारा निर्धारित समय समाप्त होने की प्रतीक्षा करेगा। तो ESC उस समय के दौरान दबाया जाता है, यह मेनू प्रदर्शित करने और निवेश के लिए इंतजार करेंगे।


यह करना चाहिए , लेकिन यह सब करता है 1 सेकंड के लिए मानक मेनू दिखाता है। कम से कम एक नए ब्रांड पर 16.04
frnhr

1

मैं निम्नलिखित पंक्ति को जोड़कर उस समस्या को हल कर सकता हूं /etc/default/grub

GRUB_DISABLE_OS_PROBER=true

... और फिर चल रहा है sudo update-grub

स्पष्टीकरण: फ़ाइल /boot/grub/grub.cfgचल रहा द्वारा उत्पन्न होता है update-grubमें फ़ाइलों का उपयोग /etc/grub.dऔर /etc/default/grub। इसलिए आपको संपादित नहीं करना चाहिए grub.cfg, लेकिन यह पता लगाने में मददगार हो सकता है कि टाइमआउट क्यों सेट किया गया है। से शुरू होने वाली लाइनों के लिए खोजें set timeout=और फिर से शुरू होने वाली अगली लाइन के लिए खोजें ### END /etc/grub.d/ ...। यह आपको संकेत दे सकता है कि कौन सी स्क्रिप्ट टाइमआउट सेट करती है। मेरे मामले में ऑस-प्रोबर स्क्रिप्ट टाइमआउट के लिए जिम्मेदार थी। यह पता चला है कि एक 10s हार्डकोडेड टाइमआउट है, /etc/grup.d/30_os-proberजिसके द्वारा सेट नहीं किया गया है GRUB_TIMEOUT। आप अपने हार्डडिस्क विभाजनों को छोड़ने के लिए GRUB_DISABLE_OS_PROBER=trueया तो संपादित /etc/grup.d/30_os-proberकर सकते हैं या संपादित कर सकते हैं या उपयोग GRUB_OS_PROBER_SKIP_LISTकर सकते हैं (30_os-prober का उपयोग तब किया जाता है जब कोई अन्य ओएस कहीं मिलता है)। देखें इस क्यू एंड ए जानकारी के लिए। जैसा कि अन्य ने बताया है कि इस मामले में एक और कारण रिकॉर्डफेल हो सकता है GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT


0

मुझे समस्या थी कि ग्रब मेनू रूट फाइल सिस्टम को आसानी से डालने के लिए एयूएफएस (यूनियनफास) का उपयोग करने के बाद हमेशा दिखाई देता था। मैंने हर बूट के बाद सर्वर पर एंटर की को हिट करने के लिए फिजिकली कहा था। मैंने यहां निर्देशों का पालन किया है: ग्रब 2 मेनू को अक्षम करें । चूंकि, मुझे कोई समस्या नहीं थी।

/Boot/grub/grub.cfg संपादित करें और बदलें:

if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi

सेवा

if [ ${recordfail} = 1 ]; then
  set timeout=1
else
  set timeout=10
fi

आपके समाधान में पहले और बाद बिल्कुल समान हैं।
रॉरवाबग

set timeout=-1के रूप में ही नहीं है set timeout=1। पूर्व "हमेशा के लिए प्रतीक्षा करें" है, और बाद वाला "एक सेकंड के लिए प्रतीक्षा करें" है।
जेफ मैकजंकिन

0

मेरे उबंटू में हमेशा 30 सेकंड का समयबाह्य होता था या तो मैं एक मूल्य निर्धारित करता था या नहीं। यहाँ के बाद मैं कैसे पता चला है कि recordfail लापता मूल्य था

1. वास्तविक ग्रब स्क्रिप्ट सत्यापित करें /boot/grub/grub.cfg

IMHO, ग्रब क्या करेगा, यह सत्यापित करने का सबसे अच्छा तरीका है /boot/grub/grub.cfg। यह स्क्रिप्ट grub-mkconfigसे /etc/grub.dऔर सेटिंग्स से टेम्पलेट्स का उपयोग करके स्वचालित रूप से उत्पन्न स्क्रिप्ट है /etc/default/grub

लाइन 109 के आसपास, आपको कुछ इस तरह दिखाई देगा:

108 if [ "${recordfail}" = 1 ] ; then
109   set timeout=30 # Note here this value
110 else
111   if [ x$feature_timeout_style = xy ] ; then
112     set timeout_style=hidden
113     set timeout=3
114   # Fallback hidden-timeout code in case the timeout_style feature is
115   # unavailable.
116   elif sleep --interruptible 3 ; then
117     set timeout=0
118   fi
119 fi

उस उत्पन्न स्क्रिप्ट की मदद से मेरे मामले में, मुझे पता चला कि recordfailचर अप्रभावित था।

2. यदि recordfailचर अप्रभावित है, तो इसे सेट करें

/etc/default/grubअपने पसंदीदा टेक्स्ट एडिटर (जैसे vim) में खोलें और फिर GRUB_RECORDFAIL_TIMEOUTकिसी दिए गए मान पर चर सेट करें , उदाहरण के लिए 5 सेकंड।

आपकी कॉन्फ़िग फ़ाइल इस तरह दिखनी चाहिए:

GRUB_DEFAULT=0
GRUB_TIMEOUT=3
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_RECORDFAIL_TIMEOUT=5

3. कॉन्फ़िगरेशन को चलाने के लिए अपडेट करें update-grub

अंतिम चरण, कॉन्फ़िगरेशन को चलाने के लिए अद्यतन करें update-grub। अभी के लिए, GRUB2 सेट टाइमआउट का उपयोग करेगा। यह कमांड /boot/grub.cfgफाइल को दोबारा बनाएगी ।

4. उत्पन्न स्क्रिप्ट परिणाम की पुष्टि करें

फिर से, /boot/grub.cfgलाइन 109 के आसपास परिणाम खोलें और जांचें:

108 if [ "${recordfail}" = 1 ] ; then
109   set timeout=5 # Note here this value
110 else
111   if [ x$feature_timeout_style = xy ] ; then
112     set timeout_style=hidden
113     set timeout=3
114   # Fallback hidden-timeout code in case the timeout_style feature is
115   # unavailable.
116   elif sleep --interruptible 3 ; then
117     set timeout=0
118   fi
119 fi

ध्यान दें कि लाइन 109 का मान पहले की तरह 30 के बजाय अब 5 है।

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