Ubuntussa (ja luultavasti myös Debianissa) on järjestelmäkoodi nimeltä update-grub
, joka suorittaa automaattisesti grub-mkconfig -o
, jolla on oikea polku grub-määritystiedostolle.
Onko Red Hat -perusteisille jakeluille vastaavaa komentoa?
Jos ei, miten tietääkö järjestelmä, missä grub-määritystiedosto on päivitettävä, kun uusi ytimen versio on asennettu?
Vastaa
Erityiset toiminnot täytyy tapahtua, kun RPM-paketti asennetaan tai poistetaan, sisältyvät RPM-pakettiin itse esiasennuksessa, asennuksen jälkeen, asennuksen poistossa ja asennuksen poistossa osiot.
Jokaisesta asennetusta RPM-paketista voit kysyä RPM-tietokannasta tarkat komentosarjat, jotka sisältyvät komentoon rpm
:
rpm -q --scripts <package-name>
Komennon suorittaminen CentOS 6: n ytimen paketissa palauttaa muun muassa:
postinstall scriptlet (using /bin/sh): <snip> /sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?
Käsikirjasta:
new-kernel-package
– työkalu komentosarjan ytimen asentamiseen
Kommentit
Vastaa
Analysoin Fedoran komentosarjat, ymmärrän, että määritystiedoston polku luetaan symlinkistä /etc/grub2.conf
. Oikea grub2-mkconfig
rivi on näin:
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
Kuten kommenteissa todettiin, se voi olla /etc/grub2.cfg
tai /etc/grub2-efi.cfg
UEFI-järjestelmässä. Itse asiassa molemmat linkit voivat olla läsnä samanaikaisesti ja osoittavat eri sijainteihin . -e
-lippu readlink
-virheilmoitukseen, jos kohdetiedostoa ei ole, mutta järjestelmässäni molemmat olivat olemassa … Tarkista komennot Luulisin.
Kommentit
- CentOS 7: ssä linkit näyttävät olevan
/etc/grub2.cfg
- grub2-mkconfig –output = / boot / grub2 / grub.cfg näyttää olevan hyväksytty tapa fedora-käsikirjassa.
- Jos haluat lisää CentOS 7 -kohtaisia grub-vaiheita, tarkista virallinen wiki: wiki.centos.org/HowTos/Grub2
- Jos sinulla on UEFI-järjestelmä, ’ Haluan
sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
- En näe mitään järkeä tehdä linkkiä
Vastaa
Fedorassa käytän:
grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"
koska suorittaminen ilman vaihtoehtoa readlink
palauttaa suhteellisen polun ja grub2-mkconfig
antaa virheen:
$ 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
Käytän -e
vaihtoehto niin Jos symlinkki ei ratkaise olemassa olevaan tiedostoon, tulos näkyy stdout-tiedostossa, joten tiedän, että jokin meni pieleen.
Readlinkin man-sivulta:
-e, --canonicalize-existing canonicalize by following every symlink in every component of the given name recursively, all components must exist
Vastaus
Fedorassa symboli /etc/grub2.cfg osoittaa BIOS-versioon. Käytä UEFI-järjestelmässä:
$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
CentOS: ssa:
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Yleensä voit käyttää sen sijaan:
$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg)
Vastaa
muokkaa grub-tiedostoa vi
tai vim
, tallenna muutokset ja sulje editori: wq!
Tämä on suoritettava päivitettäessä grub RedHatissa tai CentOS: ssa:
grub2-mkconfig -o /boot/grub2/grub.cfg
Vastaa
RedHat -dokumentaation mukaisesti:
Muutokset tiedostoon
/etc/default/grub
edellyttävätgrub.cfg
-tiedoston uudelleenrakentamista seuraavasti:
BIOS- , anna seuraava komento pääkäyttäjänä:
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI-pohjaisissa koneissa seuraava komento juurena:
~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
vastaus
Ubuntun update-grub
-skripti on oikeastaan vain stub for grub-mkconfig
, ja se voidaan mukauttaa muihin distroihin ilman liikaa kipuja. Tässä se on kokonaisuudessaan:
#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Tämä tekee tehokkaasti CentOS-wikissä , ja muissa vastauksissa täällä – ainoa ero on, että sinun on vaihdettava grub
komentoon grub2
komennossa ja lähtöpolussa .
Vastaus
Fedora 32: ssa:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
vastaus
Toimi CentOS Linux 8: lla –
sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
Vastaus
Fedora 33 -ohjeissa se antaa seuraavan Grubin muuttamisen jälkeen
$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
Ja kyllä tiedän, että tämä viesti on 6 vuotta vanha
/bin/kernel-install
. Muokkaa vastaustasi sisällyttääksesi nämä tiedot myöhempää tarvetta varten.