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
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)
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 agrub.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
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
/bin/kernel-install
hoz. Kérjük, szerkessze válaszát, hogy ezeket az információkat a későbbiekben is felhasználhassa.