เทียบเท่าอัพเดตด้วงสำหรับระบบ RHEL / Fedora / CentOS หรือไม่


36

ใน Ubuntu (และฉันเดาว่าเป็น Debian ด้วย) มีสคริปต์ระบบชื่อupdate-grubซึ่งดำเนินการโดยอัตโนมัติgrub-mkconfig -oด้วยพา ธ ที่ถูกต้องสำหรับไฟล์กำหนดค่าด้วง

มีคำสั่งใดที่คล้ายกันสำหรับการแจกแจงแบบ Red Hat

มิฉะนั้นระบบจะรู้ได้อย่างไรว่าไฟล์การตั้งค่า grub จะอัพเดตเมื่อใดที่มีการติดตั้งเคอร์เนลเวอร์ชั่นใหม่?

คำตอบ:


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
ใช้คำสั่งเดียวกันกับ Fedora 20 ให้ผลตอบแทน/bin/kernel-installแทน โปรดแก้ไขคำตอบของคุณเพื่อรวมข้อมูลนี้สำหรับการอ้างอิงในอนาคต
pqnet

3
นั่นคือเหตุผลที่ฉันเริ่มคำตอบกับขั้นตอนที่จำเป็นในการค้นหา ฉันคิดว่าการสืบค้นสคริปต์การติดตั้งนั้นมีความเป็นสากลในโลก RPM ซึ่งช่วยให้คุณเข้าใจว่าการอัพเดตเคอร์เนลมีผลอย่างไร ด้วยวิธีนี้คำตอบของฉันจะทนต่อการทดสอบของเวลาได้ดีกว่าการตั้งชื่อเครื่องมือ / คำสั่ง / support-script ซึ่งคุณแสดงให้เห็นแล้วว่าเป็นอิสระและขึ้นอยู่กับการกระจาย
HBruijn

3
Yeah @ HBruijn ถูกต้องแล้ว มีความแปรปรวนมากเกินไปใน Fedora, RHEL และ CentOS เพื่อให้คำตอบเดียวดีกว่าเพื่อแสดงวิธีการค้นหา
slm

24

หลังจากการวิเคราะห์สคริปต์ใน Fedora ฉันตระหนักดีว่าเส้นทางของแฟ้มการกำหนดค่าจะถูกอ่านจาก /etc/grub2.confsymlink grub2-mkconfigบรรทัดที่ถูกต้องคือ:

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

ตามที่ระบุไว้ในความคิดเห็นอาจเป็น/etc/grub2.cfgหรือ/etc/grub2-efi.cfgในระบบ UEFI ที่จริงแล้วลิงก์ทั้งสองอาจปรากฏขึ้นพร้อมกันและชี้ไปยังตำแหน่งต่างๆ การ-eตั้งค่าสถานะเพื่อreadlinkจะเกิดข้อผิดพลาดหากไม่มีไฟล์เป้าหมาย แต่ในระบบของฉันมีอยู่แล้ว ... ตรวจสอบคำสั่งของคุณฉันเดา


5
บน CentOS 7 ดูเหมือนว่าลิงก์จะเป็น/etc/grub2.cfg
Anthon

6
grub2-mkconfig --output = / boot / grub2 / grub.cfg น่าจะเป็นวิธีที่ได้รับการอนุมัติในคู่มือของ fedora
Kendrick

1
สำหรับขั้นตอนเฉพาะด้วง CentOS 7 เพิ่มเติมให้ตรวจสอบวิกิอย่างเป็นทางการ: wiki.centos.org/HowTos/Grub2
sshow

2
หากคุณมีระบบ UEFI คุณจะต้องsudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
Craig Ringer

10

ใน Fedora ฉันใช้:

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ตัวเลือกเพื่อไม่ให้ symlink แก้ไขไฟล์ที่มีอยู่เอาต์พุตจะแสดงเป็น stdout ดังนั้นฉันจึงรู้ว่ามีบางอย่างผิดปกติ

จาก man page สำหรับ readlink:

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

6

ใน Fedora จุดเชื่อมโยง /etc/grub2.cfg ที่เวอร์ชัน BIOS บนระบบ 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_Boot_Loader.html#sec-Editing_a_Menu_Entry


2

แก้ไขไฟล์ด้วงด้วยviหรือvimบันทึกการเปลี่ยนแปลงและปิดเอดิเตอร์ด้วย: wq!

นี่คือสิ่งที่คุณต้องใช้เพื่ออัปเดตด้วงใน 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ในคำสั่งและเส้นทางออก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.