आरएचईएल / फेडोरा / सेंटोस सिस्टम के लिए अपडेट-ग्रब के बराबर?


36

उबंटू में (और मैं डेबियन में भी अनुमान लगाता हूं) एक सिस्टम स्क्रिप्ट है जिसका नाम ग्रब कॉन्फ़िगरेशन फ़ाइल के लिए सही पथ के साथ update-grubस्वचालित रूप से निष्पादित grub-mkconfig -oहोता है।

क्या Red Hat आधारित वितरण के लिए कोई समान आदेश है?

यदि नहीं, तो सिस्टम को कैसे पता चलता है कि नया कर्नेल संस्करण स्थापित होने पर ग्रब कॉन्फ़िगरेशन फ़ाइल को अद्यतन करने के लिए कहाँ है?

जवाबों:


14

RPM पैकेज स्थापित या निकाले जाने पर होने वाली विशिष्ट क्रियाओं को RPM पैकेज में ही प्री-इंस्टाल, पोस्ट-इंस्टाल, प्री-अनइंस्टॉल और पोस्ट-अनइंस्टॉल सेक्शन में शामिल किया जाता है।

प्रत्येक इंस्टॉल किए गए RPM पैकेज के लिए आप RPM डेटाबेस को सटीक स्क्रिप्ट के लिए क्वेरी कर सकते हैं जो rpmकमांड के साथ शामिल हैं :

rpm -q --scripts <package-name>

CentOS 6 के अन्य लोगों के लिए कर्नेल पैकेज पर उस कमांड को चलाना:

postinstall scriptlet (using /bin/sh):
<snip>
/sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?

मैनुअल से:

new-kernel-package - स्क्रिप्ट कर्नेल इंस्टॉलेशन का टूल


2
/bin/kernel-installइसके बजाय फेडोरा 20 पैदावार पर एक ही कमांड चल रहा है । कृपया भविष्य में संदर्भ के लिए इस जानकारी को शामिल करने के लिए अपने उत्तर को संपादित करें
pqnet

3
यही कारण है कि मैंने अपना जवाब खोजने के लिए आवश्यक कदमों के साथ शुरू किया। मुझे लगता है कि अधिष्ठापन स्क्रिप्ट की क्वेरी आरपीएम दुनिया में बहुत सार्वभौमिक होने की संभावना है, ताकि आप समझ सकें कि कर्नेल अद्यतन कैसे प्रभावित होता है। इस तरह मेरा जवाब केवल एक उपकरण / कमांड / सपोर्ट-स्क्रिप्ट का नामकरण की तुलना में बहुत बेहतर समय की परीक्षा का सामना करेगा, जो आपने पहले ही प्रदर्शित किया था, बहुत रिलीज और वितरण निर्भर है।
HBruijn

3
हाँ @ HBruijn का अधिकार। फेडोरा, आरएचईएल और सेंटोस भर में बहुत अधिक परिवर्तनशीलता है, एक एकल उत्तर प्रदान करने के लिए, यह दिखाने के लिए बेहतर है कि इसे कैसे खोजना है।
slm

24

फेडोरा में लिपियों का विश्लेषण करने के बाद, मुझे एहसास हुआ कि कॉन्फ़िगरेशन फ़ाइल पथ को सिमलिंक से पढ़ा जाता है /etc/grub2.conf। सही grub2-mkconfigलाइन इस प्रकार है:

grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"

जैसा कि टिप्पणियों में उल्लेख किया गया है, यह एक यूईएफआई प्रणाली पर /etc/grub2.cfgया हो सकता /etc/grub2-efi.cfgहै। दरअसल, दोनों लिंक एक ही समय पर मौजूद हो सकते हैं और विभिन्न स्थानों की ओर इशारा करते हैं । यदि लक्ष्य फ़ाइल मौजूद नहीं है, तो त्रुटि का -eझंडा readlinkहोगा, लेकिन मेरे सिस्टम पर दोनों मौजूद थे ... अपने आदेशों की जांच करें, मुझे लगता है।


5
CentOS 7 पर लिंक लगता है/etc/grub2.cfg
एंथन

6
grub2-mkconfig --output = / boot / grub2 / grub.cfg को फेडोरा मैनुअल में अनुमोदित तरीका लगता है
केंड्रिक

1
अधिक CentOS 7-विशिष्ट ग्रब चरणों के लिए, आधिकारिक विकी की जाँच करें: wiki.centos.org/HowTos/Grub2
sshow

2
यदि आपके पास एक यूईएफआई प्रणाली है, तो आप चाहते हैंsudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
क्रेग रिंगर

10

फेडोरा पर मैं उपयोग करता हूं:

grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"

क्योंकि कोई विकल्प के साथ निष्पादित करने के लिए readlinkएक रिश्तेदार रास्ता नहीं grub2-mkconfigदेता है , और एक त्रुटि देता है:

$ ls -l /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Dec 10  2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

$ readlink /etc/grub2.cfg
../boot/grub2/grub.cfg

$ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)"
/usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory

मैं -eविकल्प का उपयोग करता हूं ताकि अगर सिमलिंक उस फ़ाइल के लिए हल न हो जो मौजूद है, तो stdout पर आउटपुट प्रदर्शित होता है इसलिए मुझे पता है कि कुछ गलत हुआ था।

पठन के लिए मैन पेज से:

      -e, --canonicalize-existing
          canonicalize  by  following  every symlink in every component of
          the given name recursively, all components must exist

6

फेडोरा में, BIOS संस्करण में /etc/grub2.cfg सिमलिंक अंक। UEFI सिस्टम पर, उपयोग करें:

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

CentOS में:

$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

आम तौर पर, आप इसके बजाय उपयोग कर सकते हैं:

$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg)

Https://docs.fedoraproject.org/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Booteroader.html#sec-Editing_a_Menu_Entry देखें


2

साथ संपादित करें grub फ़ाइल viया vimwq: परिवर्तन और के साथ निकट संपादक को बचाने!

यह आपको RedHat या CentOS में ग्रब अपडेट करने के लिए चलाने की आवश्यकता है:

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

0

update-grubउबंटू में स्क्रिप्ट वास्तव में सिर्फ एक है के लिए ठूंठgrub-mkconfig , और यह बहुत अधिक दर्द के बिना अन्य distros अनुकूलित किया जा सकता। यहाँ यह अपनी संपूर्णता में है:

#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

यह प्रभावी रूप से क्या करता है में सिफारिश की है CentOS विकी , और अन्य यहाँ उत्तर में - फर्क सिर्फ इतना है कि आप परिवर्तन करने की आवश्यकता है grubके लिए grub2आदेश और आउटपुट पथ में।

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