Cada vez que se actualiza el kernel se va llenando la lista del Grub de versiones antiguas que no sirven para mucho y ocupan espacio. Yo suelo crear una partición con 1GB -que ya es demasiado espacio para el Grub- y a veces con dos o tres entradas de Grub es más que suficiente. Así que hoy vamos a explicar como eliminar esas entradas que ya no se van a usar nunca más.
Quitar Entradas en el GRUB
Este tipo de operaciones pueden ser peligrosas si no sabes muy bien que tocas. Si no estás seguro de que estás tocando es mejor intentar realizar esta operación mediante algún programa gráfico tipo KgrubEditor o startupmanager.
Primero, instale los paquetes grub y efibootmgr: GRUB es el gestor de arranque, mientras que efibootmgr es utilizado por el script de instalación de GRUB para escribir entradas de arranque a NVRAM.
Después de completar la instalación anterior, el directorio principal de GRUB se encontrará en /boot/grub/.Tenga en cuenta que grub-install también intentará crear una entrada en el gestor de arranque del firmware, llamada GRUB siguiendo el ejemplo anterior.
En un sistema instalado, GRUB carga el archivo de configuración /boot/grub/grub.cfg en cada arranque. Puede seguir #Archivo grub.cfg predeterminado para una creación automática, o #Archivo grub.cfg personalizado para una creación manual.
Después de instalar GRUB, se debe crear el archivo de configuración principal grub.cfg. El proceso de generación puede verse influido por una variedad de opciones presentes en /etc/default/grub y de scripts presentes en /etc/grub.d/.
Puede agregar entradas de menú personalizadas adicionales editando /etc/grub.d/40_custom y regenerar /boot/grub/grub.cfg. O puede crear /boot/grub/custom.cfg y agregarlos allí. Los cambios en /boot/grub/custom.cfg no requieren que se vuelva a ejecutar grub-mkconfig, dado que /etc/grub.d/41_custom añade la declaración source necesaria al archivo de confiruación generado.
Para que grub-mkconfig busque otros sistemas instalados y los agregue automáticamente al menú, instale el paquete os-prober y monte las particiones que contienen los otros sistemas. Luego vuelva a ejecutar grub-mkconfig.
Para pasar argumentos adicionales personalizados a la imagen de Linux, se pueden ajustar las variables GRUB_CMDLINE_LINUX + GRUB_CMDLINE_LINUX_DEFAULT en /etc/default/grub. Los dos parámetros se anexan al archivo y se pasan al kernel al generar las entradas de arranque regulares. Para la recuperación del sistema, basta con usar la variable GRUB_CMDLINE_LINUX.
No es necesario el uso de ambos, pero puede ser útil. Por ejemplo , podría utilizarGRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=uuid-of-swap-partition quiet" cuando uuid-of-swap-partition es la partición de intercambio (swap) para activar la reanudación del sistema tras la hibernación. Esto generaría una entrada de arranque de reanudación y con el parámetro quiet no mostraría los mensajes del kernel durante el arranque desde esa entrada. Sin embargo, las otras entradas del menú (regulares) seguirían teniendo las opciones normales.
Para obtener sugerencias sobre la gestión de múltiples entradas de GRUB, por ejemplo, al usar tanto el kernel linux como el linux-lts, consulte GRUB (Español)/Tips and tricks (Español)#Múltiples entradas.
Si tiene un archivo .efi generado a partir de Secure Boot u otros medios, se puede editar /etc/grub.d/40_custom para agregar una nueva entrada de menú antes de regenerar grub.cfg con grub-mkconfig.
Como el MBR es demasiado pequeño para almacenar todos los módulos de GRUB, solo el menú y algunas órdenes básicas residen allí. La mayoría de la funcionalidad de GRUB está contenida en los módulos ubicados en /boot/grub, que se cargarán cuando sean necesarios. En condiciones de error (por ejemplo, si el diseño de la partición cambia), GRUB puede no iniciarse. Cuando esto sucede, puede lanzar una consola.
GRUB no es compatible con el sistema de archivos F2FS. En caso de que la partición raíz corra sobre un sistema de archivos no compatible, se debe crear una partición /boot alternativa formateada con un sistema de archivos compatible. En algunos casos, la versión de desarrollo de GRUB, grub-gitAUR, puede tener soporte nativo para el sistema de archivos.
Si se usa GRUB con un sistema de archivos no compatible, este no puede extraer el UUID de su unidad, por lo que usará los nombres clásicos /dev/sdXx no persistentes. En este caso, es posible que tenga que editar manualmente /boot/grub/grub.cfg y sustituir root=/dev/sdXx por root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Puede usar la orden blkid para obtener el UUID de su dispositivo, consulte Persistent block device naming (Español).
Ahora, copie /usr/share/grub/unicode.pf2 en $GRUB2_PREFIX_DIR (/boot/grub de los sistema BIOS y UEFI). Si GRUB UEFI se instala con la opción --boot-directory activada, entonces la ruta sería esp/EFI/grub/:
En el archivo grub.cfg, agregue las líneas siguientes para permitir a GRUB que pase correctamente la modalidad de vídeo al kernel, de lo contrario obtendrá una pantalla en negro (sin salidat) aunque el arranque (en curso) se haga con normalidad, sin que el sistema se bloquee:
Algunos firmwares UEFI requieren un archivo de arranque en una ubicación conocida antes de que se muestren las entradas de arranque UEFI NVRAM. Si este es el caso, grub-install solicitará que efibootmgr haya agregado una entrada para iniciar GRUB, sin embargo, la entrada no se mostrará en el selector del orden de arranque de VisualBIOS. La solución es instalar GRUB en la ruta de arranque default/fallback:
GRUB parece incapaz de escribir a particiones raiz en BTRFS [3]. Si usa grub-reboot para reiniciar en otra entrada no podra actualizar su entorno en-disco. Por lo tanto ejecute grub-reboot desde la otra entrada (por ejemplo, al cambiar entre varias distribuciones) o considere un sistema de archivos distinto. Es posible resetear una entrada "pegajosa" ejecutando grub-editenv create y estableciendo GRUB_DEFAULT=0 en su /etc/default/grub (recuerde ejecutar grub-mkconfig -o /boot/grub/grub.cfg).
Una configuración en Windows 8/10 llamada Hiberboot, Hybrid Boot o Fast Boot puede evitar que se monte la partición de Windows, por lo que grub-mkconfig no encontrará una instalación de Windows. La desactivación de Hiberboot en Windows permitirá que se agregue al menú de GRUB.
Para que grub escriba su imagen EFI en /boot/efi/EFI/BOOT/BOOTX64.efi, y el firmware de arranque sea capaz de encontrarlo sin ninguna entrada de arranque UEFI, use --removable cuando ejecute grub-install.
Para configurar grub en un sector de inicio de partición, en un disco sin particiones (también llamado superfloppy) o en un disquete, ejecútelo (utilizando, por ejemplo/dev/sdaX como la partición /boot):
La razón por la que grub-setup no lo permite por defecto es que en caso de partición o disco sin particiones GRUB confía en las listas de bloques integradas en el sector de arranque de la partición para localizar el archivo /boot/grub/i386-pc/core.img y el directorio de prefijos /boot/grub . Las ubicaciones de sector de core.img pueden cambiar cada vez que se altere el sistema de archivos de la partición (archivos copiados, eliminados, etc.). Para más información, véase _bug.cgi?id=728742 y _bug.cgi?id=730915.
La solución es establecer el indicador invariable en /boot/grub/i386-pc/core.img. (usando el comando chattr} como se mencionó anteriormente) para que las ubicaciones de sector del archivo core.img en el disco no se alteren. El indicador invariable en /boot/grub/i386-pc/core.img sólo debe configurarse si GRUB está instalado en un sector de arranque de partición o en un disco sin particiones, no en el caso de la instalación en MBR o la simple generación de core.img sin integrar ningún sector de arranque (mencionado anteriormente).
Desafortunadamente, el archivo grub.cfg que se crea no contendrá el UUID apropiado para iniciar, incluso si no hay informe de errores.Vea =1294604#p1294604.Para solucionar este problema, ejecute los siguientes comandos:
Para completar el directorio /boot/grub y generar un /boot/grub/i386-pc/core.img sin incorporar ningún código de sector de inicio GRUB en el MBR, región post-MBR o partición del sector de arranque, agregue --grub-setup=/bin/true a grub-install:
Si este método falla, la antigua opción vga= sigue siendo válida. Añadimos vga= a la opción "GRUB_CMDLINE_LINUX_DEFAULT=" en /etc/default/grub. Por ejemplo: "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792" establece una resolución de 1024x768
GRUB es compatible con imágenes de fondo y fuentes de mapa de bits en el formato pf2. La fuente unifont está incluida en el paquete grub con el nombre unicode.pf2 o, solo para carácteres ASCII, con el nombre ascii.pf2.
Regenere grub.cfg para aplicar los cambios. Si la inserción de la imagen se realiza correctamente, debería ver el mensaje Found background image..., al ejecutar la orden anterior. Si no, quiere decir que la imagen no se ha incorporado en el archivo grub.cfg.
Si desea hacer GRUB más seguro, de modo que nadie pueda cambiar los parámetros de arranque o utilizar la línea de órdenes, puede agregar un nombre de usuario y contraseña para los archivos de configuración de GRUB. Para ello, ejecute grub-mkpasswd-pbkdf2. Es necesario introducir una contraseña y confirmarla:
Añadiendo --unrestricted a la entrada de menú permitirá a cualquier usuario arrancar el sistema operativo , al tiempo que se evita que el usuario edite la entrada y el acceso a la consola de comandos grub.Sólo un superusuario o usuarios especificos con el modificador --user podrán editar la entrada del menú.
Si tiene varios kernels instalados, por ejemplo linux y linux-lts, por defecto grub-mkconfig los agrupa en un submenú. Si no le gusta este comportamiento se puede volver a un solo menú, añadiendo la siguiente línea a /etc/default/grub: 2ff7e9595c
Comments