Onko RHEL / Fedora / CentOS-järjestelmien päivitys-grub vastaava?

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

  • saman komennon suorittaminen Fedora 20: ssä tuottaa sen sijaan /bin/kernel-install. Muokkaa vastaustasi sisällyttääksesi nämä tiedot myöhempää tarvetta varten.
  • Siksi aloitin vastaukseni tarvittavilla vaiheilla. Uskon, että asennuskomentojen kyseleminen on todennäköisesti melko yleistä RPM-maailmassa auttaakseen sinua ymmärtämään, kuinka ytimen päivitys tapahtuu. Tällä tavoin vastaukseni kestää aikakokeita paljon paremmin kuin vain nimeämäni työkalu / komento / tuki-komentosarja, jonka jo osoitit olevan hyvin riippuvainen julkaisusta ja jakelusta.
  • Joo @HBruijn ’ oikeassa. ’ on liian paljon vaihtelua Fedoran, RHEL: n ja CentOS: n välillä yhden vastauksen antamiseksi, jotta voidaan paremmin näyttää, kuinka se löytyy.

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) 

Katso 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

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ät grub.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 

Oma esittely

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *