डिफ़ॉल्ट ग्रब प्रविष्टि के रूप में "पुराने" कर्नेल सेट करें


93

मैंने परीक्षण प्रयोजनों के लिए एक मेनलाइन कर्नेल स्थापित किया। मैं डिफ़ॉल्ट रूप से पुराने कर्नेल से बूट करने के लिए ग्रब सेट करना चाहूंगा।

मुझे पता है कि मैं GRUB_DEFAULT=0ग्रब के पहले पृष्ठ के लिए सेटिंग सेट कर सकता हूं लेकिन मैं इसे दूसरे पेज (उन्नत पेज) में एक कर्नेल से डिफ़ॉल्ट रूप से बूट करने के लिए कैसे सेट कर सकता हूं?

मैं अन्य सॉफ़्टवेयर (उदा। ग्रब-कस्टमाइज़र) स्थापित किए बिना ऐसा करना पसंद करूंगा।

संबंधित प्रश्न:
मैं बूट लोडर में डिफ़ॉल्ट रूप में बूट करने के लिए विंडोज कैसे सेट करूं?
मैं ग्रब बूट ऑर्डर कैसे बदल सकता हूं?


3
@ इबलाक्वा: यह कोई डुप्लिकेट नहीं है। यह प्रश्न पुराने कर्नेल को सेट करने के बारे में है जो ग्रब के विकल्पों के पहले पृष्ठ में डिफ़ॉल्ट रूप में मौजूद नहीं है।
करने के लिए

ऐसा लगता है कि इस मामले को पहले के सवालों में शामिल किया जाना चाहिए, भले ही विधि को 12.10, पुराने गुठली, आदि के लिए अद्यतन करने की आवश्यकता हो
belacqua

3
प्रश्न का उपयोग मामला अलग है, और इसका उत्तर इस तरह से बहुत विशिष्ट है जो अन्य दावा किए गए डुप्लिकेट पर लागू नहीं होता है। मैं इस विशेष समस्या को हल करने के लिए यहां आया था; बूट क्रम को बदलने के लिए नहीं; विंडोज बूट करने के लिए नहीं। +1 के लिए "डुप्लिकेट नहीं"।
रॉबी बसाक

जवाबों:


128

सबसे पहले, की एक बैकअप प्रतिलिपि बनाएँ /etc/default/grub। यदि कुछ गलत हो जाता है, तो आप आसानी से ज्ञात-अच्छी प्रतिलिपि पर वापस लौट सकते हैं।

sudo cp /etc/default/grub /etc/default/grub.bak

फिर अपनी पसंद के टेक्स्ट एडिटर (जैसे gedit, आदि) का उपयोग करके फ़ाइल को संपादित करें।

sudo -H gedit /etc/default/grub

उस पंक्ति को खोजें जिसमें सम्‍मिलित है GRUB_DEFAULT- यह वह है जिसे आप डिफ़ॉल्ट सेट करने के लिए संपादित करना चाहते हैं। आपको उस कर्नेल का पूरा नाम पता होना चाहिए जिसे आप चाहते हैं - जैसे Ubuntu, with Linux 3.13.0-53-generic- "उन्नत मेनू" के पूर्ण नाम के साथ - जैसे Advanced options for Ubuntu

फिर आप उन दो तारों को जोड़ते हैं >और GRUB_DEFAULTउन्हें निम्न रूप में सेट करते हैं: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic"(उद्धरण सहित)।

इसे सहेजें, फिर अपडेट किए गए ग्रब मेनू का निर्माण करें।

sudo update-grub

इसे भी देखें: डिफ़ॉल्ट सेट करने पर GNU GRUB मैनुअल 2.02 या अधिक विशेष रूप से खंड 15.1.0


नोट: गुठली और मेनू तक पहुंचने के लिए संख्याओं का उपयोग करने की एक विधि है लेकिन यह अनुशंसित नहीं है क्योंकि कर्नेल अपडेट होने पर यह अविश्वसनीय है।


24
अद्यतन होने पर एक संख्यात्मक मान का उपयोग समस्याग्रस्त हो सकता है। पाठ डिफ़ॉल्ट का उपयोग करना बेहतर है, अर्थात: GRUB_DEFAULT = "पिछला लिनक्स संस्करण> उबंटू, लिनक्स 3.2.0-18-जेनेरिक के साथ"
बीलर

27
sudo grub-mkconfig | lessसभी संभव विकल्पों में से एक को देखने के लिए उपयोग कर सकते हैं
एनआईटी

9
यह एक अच्छा समाधान है, लेकिन इससे भी बेहतर एक खोलने के लिए है /boot/grub/grub.cfgऔर वहां आपको सभी manuentryऔर सभी अच्छे दिखाई देंगे submenus। यदि आप उन्हें संपादित करते हैं, तो आप डिफ़ॉल्ट को आसानी से सेट कर सकते हैं, यहां तक ​​कि कंप्यूटर को पुनरारंभ करते समय ग्रब सूची में विकल्पों के शीर्षक भी बदल सकते हैं।
एलेक्सा

7
/boot/grub/grub.cfgउपयोग करने के लिए सटीक नाम निर्धारित करने के लिए जांच करना निश्चित रूप से उपयोगी है । लेकिन इस फ़ाइल को परिवर्तित न करें क्योंकि यह update-grubअपडेट किए गए पैकेजों सहित अपने आप पुनर्जीवित हो जाएगा ।
रॉबी बसक

18
GRUB_DEFAULT के लिए प्रारूपण थोड़ा पुराना है (कम से कम Ubuntu 14.04.2 के बाद से)। रनिंग update-grubमैं एक चेतावनी का सामना करना पड़ा: कृपया Previous Linux versions>Ubuntu, with Linux 3.13.0-53-genericGRUB_DEFAULT के लिए पुराने शीर्षक का उपयोग न करें , Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic(2.00 से पहले के संस्करणों के लिए) या gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f(2.00 या बाद के संस्करण के लिए)
Wumms

22

मेरे लिए सबसे अच्छा समाधान सेट (में /etc/default/grub) था:

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

इस सेटिंग्स के साथ अंतिम चयनित मूल्य अगले बूट के लिए रखा गया है। यदि आपके पास एक नया कर्नेल है तो आपको अपना कॉन्फिगर एडिट करना नहीं पड़ेगा।

फिर से चलाने के लिए मत भूलना sudo update-grub

समाधान पढ़ने से है: info grub-mkconfig


4
यह भयानक है
मेफिस्तो

क्या आप ;लाइनों के अंत में अर्धविराम ( ) के बारे में सुनिश्चित हैं ?
डीजेक्रैडमी

मैं अपने कंप्यूटर में नहीं देख सकता हूं जहां मैंने इस क्षण में इसका इस्तेमाल किया था, लेकिन आप सही हैं ";" गलत या अनावश्यक लगता है!
मार्टिन टी।

21

अब जब एक Advancedमेनू उबंटू में डिफ़ॉल्ट है, तो आपको >वर्ण का उपयोग करने के लिए आवश्यक कर्नेल से पहले इसे चुनना होगा ।

उदाहरण के लिए सेट करें:

GRUB_DEFAULT="1>7"

में /etc/default/grubऔर फिर से चलाना sudo update-grub

यह ध्यान रखना महत्वपूर्ण है कि GRUB मेनू प्रविष्टियों के लिए नंबरिंग शुरू होती है 0। इसलिए मेनू के 1लिए ऊपर अंक Advanced। एहतियात के तौर पर, आप शुरू में सेट करना चाह सकते हैं GRUB_TIMEOUT=5। कुछ बूट समय पर कुंजी दबाकर GRUB तक पहुंचने में असमर्थ हो सकते हैं। यह एक सुरक्षा जाल है यदि आप गलती से Memory testइसके बजाय कुछ की ओर इशारा करते हैं। उपरोक्त संख्याओं को उद्धरणों में शामिल करना भी आवश्यक है। यह अन्यथा काम नहीं करेगा।

मैंने 16.04 एलटीएस पर परीक्षण किया।


डेबियन में भी काम करता है।
लॉरेंस डी'ऑलिवेरो

मुझे यह उत्तर बहुत उपयोगी लगता है, क्योंकि कर्नेल अपडेट के बाद यह अभी भी नवीनतम कर्नेल को इंगित करता है। उदाहरण के लिए मेरे सेटअप में यह 1> 0 है, जिसका अर्थ है: उन्नत-पहली लिस्टिंग (हमेशा सबसे नया कर्नेल है)। मेरी प्रणाली कुछ समय के लिए स्वचालित रूप से नवीनतम कर्नेल के साथ ग्रब के 0 प्रविष्टि को अपडेट करने के लिए बंद हो गई, इसलिए मैं इस पद्धति का उपयोग करता हूं।
पीटर फ्लेक्स

9

डिफ़ॉल्ट रूप में उपयोग करने के लिए कौन सा बूट विकल्प सेट करने में सक्षम होने के लिए आपको यह जानना होगा कि क्या है ... इसलिए:

वास्तव में बूट किए बिना मेनू प्रविष्टियों को प्रदर्शित करने के लिए , कुछ इस तरह आज़माएँ:

$ lsb_release -s -rdc
उबंटू 16.04.4 एलटीएस
16.04
xenial

$ अपडेट-ग्रब --version
grub-mkconfig (GRUB) 2.02 ~ beta2-36ubuntu3.17

$ grep -Ei 'सबमेनू | मेन्यूएंट्री' /boot/grub/grub.cfg sed -re "s / (?) '([^'] +) '। * / \ 1 \ 2 /"
मेनुएंट्री उबंटू
Ubuntu के लिए submenu उन्नत विकल्प
    लिनक्स 4.4.0-34-जेनेरिक के साथ मेनेंट्री उबंटू
    Linux 4.4.0-34-जेनेरिक (upstart) के साथ मेनेंट्री उबंटू
    लिनक्स 4.4.0-34-जेनेरिक (रिकवरी मोड) के साथ मेनेंट्री उबंटू
मेनेंट्री सिस्टम सेटअप

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