GRUB2: अंतिम विकल्प को कैसे याद रखें


11

मैं वर्तमान में विभिन्न डिस्ट्रोस की कोशिश कर रहा हूं, जब मैं अपने लैपटॉप को बूट करता हूं तो मेरे पास चुनने के लिए कई ओएस हैं। आमतौर पर, वे सभी डिस्ट्रो स्थापित होते हैं grub2और सूची के शीर्ष पर खुद को स्थापित करते हैं ताकि वे स्थापना पूर्ण होने के बाद बूट करने के लिए डिफ़ॉल्ट हो।

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

क्या मैंने इसकी कल्पना की थी? क्या मन्जारो वास्तव में ऐसा करता है? यदि हां, तो मैं कैसे स्थापित कर सकते हैं कि संस्करण के grubअपने सिस्टम के लिए? चीयर्स।


यह मेरी /etc/grub.d/40_customफाइल है:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

और यह मेरी /etc/default/grubफाइल है:

# 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=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
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"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

मैंने उस प्रश्न में निर्देशों का पालन किया (मुख्य रूप से उन दो पंक्तियों को मेरे साथ जोड़ा grub) लेकिन यह काम नहीं किया। शीर्ष डिस्ट्रो बूट को फिर से शुरू करने पर बूट करता है, हालांकि मैंने पहले एक और चुना था।
गेब्रियल

मैंने स्वीकृत उत्तर में निर्देशों का पालन किया। मैंने संपादित किया /etc/default/grubऔर मैंने लाइन GRUB_DEFAULT=0को बदल दिया और उस लाइन को GRUB_DEFAULT=savedजोड़ दिया GRUB_SAVEDEFAULT=trueजो वहां नहीं थी। फिर मैं sudo update-grub। रिबूट किया और बूट करने के लिए एक डिस्ट्रो को चुना, जो ऊपर से अलग है। फिर से रिबूट किया गया और शीर्ष (जिसे मैंने पहले नहीं चुना था) डिस्ट्रो को डिफ़ॉल्ट रूप से और बूट किया गया था।
गेब्रियल

मैंने उन दो फाइलों के अंदर अपने प्रश्न को अपडेट किया। मुझे क्या परिवर्तन करना चाहिए?
गेब्रियल

जवाबों:


11

GRUB मैनुअल के अनुसार :

'GRUB_DEFAULT'

.................

यदि आप इसे 'सेव' पर सेट करते हैं, तो डिफ़ॉल्ट मेनू एंट्री 'GRUB_SAVEDEFAULT', ग्रब-सेट-डिफॉल्ट या ग्रब-रिबूट द्वारा सेव की जाएगी।


'GRUB_SAVEDEFAULT'

यदि यह विकल्प 'सही' पर सेट है, तो, जब एक प्रविष्टि का चयन किया जाता है, तो इसे GRUB के भविष्य के रन द्वारा उपयोग के लिए एक नई डिफ़ॉल्ट प्रविष्टि के रूप में सहेजें। यह तभी उपयोगी है जब 'GRUB_DEFAULT = सहेजी गई'; यह एक अलग विकल्प है क्योंकि 'GRUB_DEFAULT = save' इस विकल्प के बिना उपयोगी है, ग्रब-सेट-डिफॉल्ट या ग्रब-रिबूट के साथ संयोजन में। डिफ़ॉल्ट रूप से परेशान। यह विकल्प पर्यावरण ब्लॉक पर निर्भर करता है, जो सभी स्थितियों में उपलब्ध नहीं हो सकता है (पर्यावरण ब्लॉक देखें)।

आपको जोड़ना होगा:

GRUB_DEFAULT=saved

तथा

GRUB_SAVEDEFAULT=true

अपने को /etc/default/grub। इसके अलावा, यदि आप कस्टम मेनू फ़ाइलों का उपयोग कर रहे हैं जैसे कि /etc/grub.d/40_customआपको विकल्प जोड़ना होगा

savedefault

उस फ़ाइल में मेनू मेनू / मेनू करने के लिए। उस अद्यतन के बाद GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

या

update-grub

यदि आपके पास कई डिस्ट्रो स्थापित हैं, तो सुनिश्चित करें कि आप सक्रिय GRUB को कॉन्फ़िगर और अपडेट कर रहे हैं ।


1

मुझे आर्कब को वर्चुअलबॉक्स अतिथि के रूप में उपयोग करने में परेशानी हो रही थी। मुद्दा LVM के मेरे उपयोग का निकला।

फिर से, ग्रब मैनुअल से :

13.2 GRUB पर्यावरण ब्लॉक

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

पर्यावरण ब्लॉक एक प्रचारित 1024-बाइट फ़ाइल है, जो सामान्य रूप से / बूट / ग्रब / ग्रुबेनव में रहती है (हालांकि आपको यह नहीं मानना ​​चाहिए)। बूट समय पर, load_env कमांड (load_env देखें) इससे पर्यावरण चर लोड करता है, और save_env (save_env देखें) आदेश पर्यावरण चर को बचाता है। एक रनिंग सिस्टम से, grub-editenv उपयोगिता का उपयोग पर्यावरण ब्लॉक को संपादित करने के लिए किया जा सकता है।

सुरक्षा कारणों से, यह स्टोरेज केवल प्लेन डिस्क (LVM या RAID) पर स्थापित है , नॉन-चेकसमिंग फाइलसिस्टम (कोई ZFS) का उपयोग करके, और BIOS या EFI फ़ंक्शन (कोई ATA, USB या IEEE1275) का उपयोग करने पर उपलब्ध नहीं है।

grub-mkconfig 'GRUB_SAVEDEFAULT' (सरल विन्यास देखें) को लागू करने के लिए इस सुविधा का उपयोग करता है।

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