-
Agregar una entrada de Grub para bootear Ubuntu
Se puede añadir una entrada en grub (por ejemplo el instalado en debian) para bootear una partición en la que previamente hayamos instalado Ubuntu, agregando lo siguiente al archivo /etc/grub.d/40_custom:
menuentry "Ubuntu" { insmod part_gpt insmod ext2 search --no-floppy --set=root --fs-uuid 99bba20e-3444-442f-887d-b0af5fff15d6 linux /boot/vmlinuz-5.19.0-38-generic root=UUID=99bba20e-3444-442f-887d-b0af5fff15d6 ro initrd /boot/initrd.img-5.19.0-38-generic }
Esa entrada bootearía una versión específica del kernel de Ubuntu con su correspondiente initramfs. Si, a posteriori, actualizaramos ese Ubuntu, esa entrada dejaría de funcionar.
Por ello, sabiendo que existen archivos que son accesos directos al último kernel instalado en las particiones de Ubuntu, es mejor crear una entrada que apunte a este:
menuentry "Ubuntu (Último kernel)" { insmod part_gpt insmod ext2 search --no-floppy --set=root --fs-uuid 99bba20e-3444-442f-887d-b0af5fff15d6 linux /boot/vmlinuz root=UUID=99bba20e-3444-442f-887d-b0af5fff15d6 ro initrd /boot/initrd.img }
En ambas entradas se da por sentado que conocemos el UUID de la partición donde Ubuntu está instalado. Sin embargo, se puede dar el caso que no conozcamos el UUID, pero si la etiqueta de la partición y qué número de partición es. En ese caso podríamos agregar la siguiente entrada:
menuentry "Ubuntu (Último kernel)" { insmod part_gpt insmod ext2 search --no-floppy --set=root --label Ubuntu --hint hd0,gpt6 linux /boot/vmlinuz root=/dev/nvme0n1p6 ro initrd /boot/initrd.img }
Esta entrada buscaría una partición con la etiqueta «Ubuntu», la configuraría como la partición root y cargaría el kernel y el initramfs por defecto que encontraría en la carpeta /boot de esa partición, indicándole al kenel que debería considerar la partición /dev/nvme0n1p6 como la partición root de ese kernel a bootear. Si encontrase más de una partición con la etiqueta Ubuntu, cargaría la que está en la sexta partición GPT del primer disco duro.
También es posible que conozcamos la etiqueta de la partición, pero no que número de partición es. En ese caso:
menuentry "Ubuntu (Último kernel)" { insmod part_gpt insmod ext2 search --no-floppy --set=root --label Ubuntu --hint hd0,gpt6 linux /boot/vmlinuz root=/dev/disk/by-label/Ubuntu ro initrd /boot/initrd.img }
O bien, en vez de meter en el archivo 40_custom la carga directa del kernel desde el grub.cfg de nuestro sistema operativo actualmente en ejecución, podemos agregar una entrada para que busque el grub.cfg que está dentro de la propia partición de ese Ubuntu instalado:
menuentry "Ubuntu (Cargando su propio grub.cfg)" { search --set=root --label Ubuntu --hint hd0,gpt6 configfile /boot/grub/grub.cfg }
Esta última entrada buscaría una partición con la etiqueta «Ubuntu», la configuraría como la partición root y cargaría el archivo grub.cfg de esa partición, que estaría ubicado en /boot/grub/grub.cfg.
Lógicamente, después de todos estos cambios deberíamos actualizar grub ejecutando como root:
update-grub
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.