Az update-grub egyenértékű az RHEL / Fedora / CentOS rendszerekhez?

Az Ubuntuban (és gondolom a Debianban is) van egy update-grub nevű rendszerfájl, amely automatikusan végrehajtja a grub-mkconfig -o a grub konfigurációs fájl helyes elérési útjával.

Van-e hasonló parancs a Red Hat alapú terjesztésekhez?

Ha nem, akkor hogyan tudja-e a rendszer, hogy hol kell frissíteni a grub konfigurációs fájlt, amikor új kernelváltozat van telepítve?

Válasz

Specifikus műveletek akkor kell bekövetkeznie, amikor egy RPM csomagot telepítenek vagy eltávolítanak. benne van az RPM csomagban magában az előtelepítés, a telepítés utáni, az eltávolítás előtti és az eltávolítás utáni szakaszban szakaszok.

Minden telepített RPM-csomag esetén lekérdezheti az RPM-adatbázist azokról a szkriptekről, amelyek a rpm parancsban szerepelnek:

rpm -q --scripts <package-name> 

A parancs futtatása a CentOS 6 rendszermag-csomagján többek között visszatér:

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

A kézikönyvből:

new-kernel-package – eszköz a parancsfájl kernelének telepítéséhez

Megjegyzések

  • ugyanazon parancs futtatása a Fedora 20-on helyette /bin/kernel-install hoz. Kérjük, szerkessze válaszát, hogy ezeket az információkat a későbbiekben is felhasználhassa.
  • Pontosan ezért kezdtem a válaszomat a megismeréshez szükséges lépésekkel. Úgy gondolom, hogy a telepítési parancsfájlok lekérdezése valószínűleg univerzális lesz az RPM-világban, segít megérteni a kernel frissítésének végrehajtását. Így a válaszom sokkal jobban bírja az idő próbáját, mint csak egy eszköz / parancs / támogatás-szkript megnevezése, amelyről már bizonyított, hogy a kiadás és a terjesztés nagyon függ.
  • Igen @HBruijn ‘ igaza van. ‘ túl sok a változatossága a Fedora, az RHEL és a CentOS között ahhoz, hogy egyetlen választ adhasson, és jobban megmutassa, hogyan találja meg.

Válasz

A Fedora parancsfájljainak elemzése után rájöttem, hogy a konfigurációs fájl elérési útját a symlink /etc/grub2.conf . A helyes grub2-mkconfig sor tehát:

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

Amint a megjegyzésekben megjegyeztük, lehet, hogy /etc/grub2.cfg vagy /etc/grub2-efi.cfg UEFI rendszeren. Valójában mindkét link egyszerre lehet jelen, és különböző helyekre mutat . A -e jelző a readlink címre hibát eredményez, ha a célfájl nem létezik, de az én rendszeremen mindkét létezett … Ellenőrizze a parancsokat , Azt hiszem.

Megjegyzések

  • A CentOS 7-en a linkek /etc/grub2.cfg
  • Úgy tűnik, hogy a fedora kézikönyvében a grub2-mkconfig –output = / boot / grub2 / grub.cfg a jóváhagyott módszer.
  • További CentOS 7-specifikus grub lépésekért ellenőrizze a hivatalos wikit: wiki.centos.org/HowTos/Grub2
  • Ha UEFI rendszered van, ‘ ll akar sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
  • Nincs értelme olvasni linket

Válasz

A Fedorán a következőt használom:

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

mert opció nélküli végrehajtás readlink relatív elérési utat ad vissza, a grub2-mkconfig pedig hibát ad:

$ 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 

A -e opció ha a symlink nem oldja meg a létező fájlt, akkor a kimenet megjelenik az stdout fájlban, így tudom, hogy valami baj történt.

A readlink kézikönyv oldaláról:

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

Válasz

A Fedorában az /etc/grub2.cfg szimbólum a BIOS verzióra mutat. UEFI rendszeren használja:

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

CentOS-ban:

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

Általában használhatja helyette:

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

Lásd: https://docs.fedoraproject.org/en-US/fedora/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader/index.html#sec-Editing_a_Menu_Entry

Válasz

grub fájl szerkesztése vi vagy vim, mentse a változtatásokat és zárja be a szerkesztőt a következővel: wq!

Ezt kell futtatnia a grub frissítéséhez a RedHat vagy a CentOS rendszerben:

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

Válasz

A RedHat dokumentáció szerint :

A /etc/default/grub változások megkövetelik a grub.cfg fájl újjáépítését az alábbiak szerint:

  • BIOS-on – alapú gépeken adja ki a következő parancsot root felhasználóként:

    ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

  • UEFI-alapú gépeken a következő parancs gyökérként:

    ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Válasz

A update-grub szkript az Ubuntuban valójában csak egy stub grub-mkconfig esetén, és túl nagy fájdalom nélkül adaptálható más disztrókhoz. Itt van teljes egészében:

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

Ez gyakorlatilag azt teszi, amit a CentOS wiki , és az itt található egyéb válaszokban – az egyetlen különbség az, hogy a grub -et grub2 -re kell változtatnia a parancsban és a kimeneti útvonalon .

Válasz

Fedora 32-en:

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

Válasz

A CentOS Linux 8 rendszeren dolgozott –

sudo grub2-mkconfig --output=/boot/grub2/grub.cfg 

Saját bemutató

Válasz

A Fedora 33 irányelvekben a következőket adja meg a Grub megváltoztatása után

$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg

És igen, tudom, hogy ez a bejegyzés 6 éves

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük