miércoles, 29 de enero de 2020

Agregar nueva entrada de menú Grub

Introducción

A partir de la versión 12.3, openSUSE incluye GRUB 2 como cargador de arranque. Una de las ventajas de esta nueva versión es la posibilidad de arrancar una imagen iso desde dicho menú sin necesidad de grabarla previamente a un medio físico. Esto resulta ventajoso para arrancar una live a modo de prueba o una iso de instalación a fin de cambiar de versión o reparar un sistema dañado. También te puede servir para hacer la instalación si la BIOS de tu equipo no te permite arrancar desde un puerto USB.

Identifica la partición que contiene la imagen

Lo primero que tendrás que hacer es descargarte y alojar las imágenes iso en un directorio de una partición que no pienses formatear si reinstalas, y luego identificar dicha partición para describirla correctamente en el archivo de configuración de GRUB. GRUB 2 (y también GRUB) utilizan una notación de este tipo para identificar las particiones (hd0,1), por ejemplo. En este caso se hace referencia a la partición 1 del primer disco (0).
Para saber de qué partición se trata puedes ejecutar
lsblk
En mi caso tengo las imágenes alojadas en /datos/ISOS/. El comando me devuelve
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda4 8:4 0 889,5G 0 part /datos
├─sda1 8:1 0 1K 0 part
├─sda6 8:6 0 16,4G 0 part /
├─sda5 8:5 0 1,4G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
└─sda7 8:7 0 24,3G 0 part /home
Se trata entonces de la partición /dev/sda4, o lo que es lo mismo, (hd0,4), que es la notación que hay que pasarle a GRUB.

Escribe los cambios

Existe un archivo desde el que podemos escribir las nuevas entradas que queramos añadir a GRUB. Tan sólo hay que editarlo como root con el comando que aparece a continuación y escribir al final del mismo:
# nano /etc/grub.d/40_custom

Si el archivo es una imagen iso habitual de instalación

Añade lo siguiente al final del archivo, cambiando los valores en negrita a los que corresponda en tu caso:
menuentry "openSUSE 12.3 DVD" {
set isofile=/ISOS/openSUSE-12.3-DVD-i586.iso
set root=(hd0,4)
set arch=i386
loopback loop $isofile
linux (loop)/boot/$arch/loader/linux install=hd:$isofile
initrd (loop)/boot/$arch/loader/initrd
}
  • El primer valor en negrita se corresponde con el nombre que le quieres dar a la entrada del menú.
  • El segundo es la ruta donde se aloja el archivo iso dentro de la partición en la que está alojada y su nombre.
  • El tercero se corresponde con la arquitectura de la imagen. Hace referencia a una ruta dentro de la propia iso. Móntala, abre el directorio boot y mira el nombre del subdirectorio que contiene a su vez el subdirectorio loader. El nombre de ese subdirectorio es el que tienes que colocar ahí. (Ver captura a continuación).
  • El último es el valor que corresponde a la partición que identificaste antes.
Contenido-dvd.jpg
En mi caso no he montado la imagen para explorar su contenido, simplemente la he abierto mediante Ark.

Si el archivo es una imagen live

En este caso la notación cambia ligeramente:
menuentry "openSUSE 12.3 KDE Live" {
set isofile=/ISOS/openSUSE-12.3-KDE-Live-i686.iso
set rootdevice=/dev/sda4
set root=(hd0,4)
set arch=i386
loopback loop $isofile
linux (loop)/boot/$arch/loader/linux isofrom=$rootdevice:$isofile
initrd (loop)/boot/$arch/loader/initrd
}
Sustituye los valores en negrita por los que corresponda en tu caso.
Cuando lo hagas, guarda los cambios y cierra el archivo.

Actualiza GRUB

Simplemente ejecuta
# grub2-mkconfig -o /boot/grub2/grub.cfg
Por último, reinicia:
reboot
Deshacer los cambios

Cuando quieras deshacer esos cambios y volver a la configuración inicial, simplemente vuelve a editar el archivo anterior y déjalo tal y como lo encontraste. Seguidamente lanza de nuevo el comando de actualización.

No hay comentarios:

Publicar un comentario