Product SiteDocumentation Site

8.8. Configuración del gestor de arranque

It is probably already functional, but it is always good to know how to configure and install the bootloader in case it “disappears“. This can occur after an installation or an upgrade of another operating system, such as Windows. The following information can also help you to modify the bootloader configuration if needed.

8.8.1. Identificación de discos

La configuración del gestor de arranque debe identificar los diferentes discos duros y sus particiones. Linux utiliza archivos especiales de «bloque» almacenados en el directorio /dev/ para este propósito. A partir de Debian Squeeze se ha unificado el esquema de nombres para los discos duros en el núcleo Linux y todos los discos duros (IDE/PATA, SATA, SCSI, USB, IEEE 1394) son representados con /dev/sd*.
Se representa cada partición por su número en el disco en el que existe: por ejemplo, /dev/sda1 es la primera partición del primer disco y /dev/sdb3 es la tercera partición del segundo disco.
La arquitectura de PC (o «i386», incluyendo también la "amd64" ) ha venido estando limitada a utilizar el formato de tabla de particiones "MS-DOS", que sólo permite cuatro particiones «primarias» por disco. Para superar esta limitación, bajo este esquema una de ellas debe ser creada como una partición «extendida» y ésta luego puede contener varias particiones «secundarias» (N.T. la denominación tradicional, al menos en España es «unidades lógicas») adicionales. Estas particiones secundarias se numeran a partir del 5. Por lo tanto, la primera partición secundaria sería /dev/sda5 seguida de /dev/sda6, etc.
Another restriction of the MS-DOS partition table format is that it only allows disks up to 2 TiB in size, which was becoming a real problem with recent disks.
Un nuevo formato de tabla de particiones, llamado GPT (GUID Partition Table) relaja estas restricciones sobre el número de particiones (permite hasta 128 particiones utilizando los ajustes predeterminados) y sobre el tamaño de los discos (hasta 8 ZiB, que es más de 8 billones de terabytes). Si se pretenden crear muchas particiones físicas en el mismo disco debería utilizarse el formato GPT para particionar el disco.
No siempre es sencillo recordar qué disco está conectado a qué controlador SATA o está en la tercera posición de la cadena SCSI, especialmente desde que el nombre de los discos duros removibles (que incluye, entre otros, la mayoría de los discos SATA y discos externos) puede cambiar de un inicio a otro. Afortunadamente crea udev, además de /dev/sd*, enlaces simbólicos con nombres fijos que puede utilizar si lo desea para identificar un disco duro de forma unívoca. Se almacenan estos enlaces simbólicos en /dev/disk/by-id. En un equipo con dos discos físicos, por ejemplo, uno podría encontrar lo siguiente:
mirexpress:/dev/disk/by-id# ls -l
total 0
lrwxrwxrwx 1 root root  9 jul 23 08:58 ata-STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 jul 23 08:58 ata-STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 jul 23 08:58 ata-STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 jul 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 jul 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 jul 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 jul 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 jul 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 jul 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 jul 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 jul 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 jul 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 jul 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 jul 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 jul 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part2 -> ../../sdc2
[...]
lrwxrwxrwx 1 root root  9 jul 23 08:58 wwn-0x5000c50015c4842f -> ../../sda
lrwxrwxrwx 1 root root 10 jul 23 08:58 wwn-0x5000c50015c4842f-part1 -> ../../sda1
[...]
mirexpress:/dev/disk/by-id# 
Hay que tener en cuenta que algunos discos se enumeran varias veces (porque se comportan tanto como discos ATA y como SCSI), pero la información relevante se encuentra principalmente en el modelo y los números de serie de los discos, desde donde se puede encontrar el archivo periférico. Mientras que los enlaces en /dev/disk/by-id/ se crean utilizando el número de serie del dispositivo y la trayectoria física, hay más enlaces de conveniencia en, por ejemplo. /dev/disk/by-label/ (basado en etiquetas dadas), /dev/disk/by-uid/ (basado en identificadores únicos, que pueden cambiar al reformar un dispositivo usando mkfs.* o mkswap), /dev/disk/by-path/ (basado en la trayectoria física más corta), y /dev/disk/by-partlabel/ y /dev/disk/by-partuuid/ (sólo particiones con etiquetas GPT y sus identificadores únicos). Si usa estos enlaces, por ejemplo, en /etc/fstab, siempre prefiere identificadores únicos sobre etiquetas. También puede obtener y cambiar esta información para cada partición o dispositivo utilizando los comandos lsblk y blkid.
Los archivos de configuración de ejemplo provistos en las próximas secciones están basados en la misma instalación: un único disco SATA donde la primera partición es una antigua instalación de Windows y la segunda contiene Debian GNU/Linux.

8.8.2. Configuración de GRUB 2

GRUB (gran gestor de arranque unificado) es más reciente. No es necesario ejecutarlo después de cada actualización del núcleo, GRUB sabe cómo leer los sistemas de archivos y encontrar la ubicación del núcleo en el disco por su cuenta. Para instalarlo en el MBR del primer disco simplemente ejecute grub-install /dev/sda. Aunque también es posible instalar GRUB en un registro de arranque de la partición, tenga en cuenta que generalmente es un error y hacer grub-install /dev/sda1 no tiene el mismo significado que grub-install /dev/sda.
GRUB 2 configuration is stored in /boot/grub/grub.cfg, but this file (in Debian) is generated from others. Be careful not to modify it by hand, since such local modifications will be lost the next time update-grub is run (which may occur upon update of various packages). The most common modifications of the /boot/grub/grub.cfg file (to add command line parameters to the kernel or change the duration that the menu is displayed, for example) are made through the variables in /etc/default/grub. To add entries to the menu, you can either create a /boot/grub/custom.cfg file or modify the /etc/grub.d/40_custom file. For more complex configurations, you can modify other files in /etc/grub.d, or add to them; these scripts should return configuration snippets, possibly by making use of external programs. These scripts are the ones that will update the list of kernels to boot: 10_linux takes into consideration the installed Linux kernels; 20_linux_xen takes into account Xen virtual systems, and 30_os-prober adds other existing operating systems (Windows, OS X, Hurd), kernel images, and BIOS/EFI access options to the menu.

8.8.3. Utilizando GRUB con EFI y Secure Boot

Es bastante diferente usar GRUB para arrancar un sistema BIOS tradicional (legacy o UEFI-CSM) o un sistema UEFI . Afortunadamente el usuario no necesita conocer las diferencias porque Debian proporciona paquetes distintos para cada propósito y el instalador se preocupa automáticamente de cuál(es) elegir. El paquete grub-pc se elige para sistemas heredados, donde GRUB se instala en el MBR, mientras que los sistemas UEFI requieren grub-efi-arch, donde GRUB se instala en la partición del sistema EFI (ESP). Este último requiere una tabla de partición GTP así como una partición EFI.
Para cambiar un sistema existente (que admite UEFI) del modo de arranque heredado al modo UEFI no sólo es necesario cambiar los paquetes GRUB del sistema, sino también ajustar la tabla de particiones y crear una partición EFI (probablemente incluyendo el cambio de tamaño de las particiones existentes para crear el espacio libre necesario). Por lo tanto, es un proceso bastante elaborado y no podemos incluirlo aquí. Afortunadamente, existen algunos manuales de blogeros que describen los procedimientos necesarios.
Si está usando un sistema con "Secure Boot" habilitado y ha instalado shim-signed (ver la barra lateral CULTURA Secure Boot y el gestor de arranque shim), también ha de instalar grub-efi-arch-signed. Este paquete no se introduce automáticamente, sólo si se ha activado la instalación del paquete recomendado.