Saltar al contenido

¿Equivalente de update-grub para sistemas RHEL / Fedora / CentOS?

Solución:

Después de analizar los scripts en Fedora, me doy cuenta de que la ruta del archivo de configuración se lee desde el enlace simbólico /etc/grub2.conf. Lo correcto grub2-mkconfig la línea es así:

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

Como se señaló en los comentarios, podría ser /etc/grub2.cfg, o /etc/grub2-efi.cfg en un sistema UEFI. Realmente, ambos enlaces pueden estar presentes al mismo tiempo y apuntando a diferentes lugares. los -e bandera a readlink se producirá un error si el archivo de destino no existe, pero en mi sistema ambos existían … Verifique sus comandos, supongo.

Las acciones específicas que deben suceder cuando se instala o elimina un paquete RPM se incluyen dentro del paquete RPM en las secciones de preinstalación, postinstalación, predesinstalación y posdesinstalación.

Para cada paquete RPM instalado, puede consultar la base de datos RPM para obtener los scripts exactos que se incluyen con el rpm mando:

rpm -q --scripts <package-name>

Ejecutar ese comando en un paquete de kernel para CentOS 6 devuelve, entre otros:

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

Del manual:

new-kernel-package – herramienta para la instalación del kernel de secuencias de comandos

En Fedora uso:

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

porque ejecutar sin opción a readlink devuelve una ruta relativa, y grub2-mkconfig da un error:

$ 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

Yo uso el -e opción para que si el enlace simbólico no se resuelve en un archivo que existe, la salida se muestra en stdout para que sepa que algo salió mal.

Desde la página de manual de readlink:

      -e, --canonicalize-existing
          canonicalize  by  following  every symlink in every component of
          the given name recursively, all components must exist
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *