Product SiteDocumentation Site

8.8. Configuración del gestor de arranque

Probablemente ya esté funcionando, pero siempre es bueno saber cómo configurar e instalar el gestor de arranque en caso que desaparezca del registro maestro de arranque («Master Boot Record»). Esto puede ocurrir luego de la instalación de otro sistema operativo como Windows. La información a continuación también puede ayudarle a modificar la configuración del gestor de arranque si lo necesita.

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.
Otra restricción del formato de la tabla de particiones de MS-DOS es que sólo permite discos de hasta 2 TiB de tamaño, lo cual está comenzando a ser un problema real con los discos recientes.
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.
La configuración de GRUB 2 está almacenada en /boot/grub/grub.cfg, pero este archivo (en Debian) es generado a partir de otros. Tenga cuidado de no modificarlo a mano ya que perderá dicha configuración local la próxima vez que se ejecute update-grub (que puede ocurrir al actualizar algunos paquetes). Las modificaciones más comunes del archivo /boot/grub/grub.cfg (agregar parámetros al núcleo o cambiar el tiempo que se mostrará el menú por ejemplo) se realizan a través de variables en /etc/default/grub. Para agregar elementos al menú puede crear un archivo /boot/grub/custom.cfg o modificar el archivo /etc/grub.d/40_custom. Para configuraciones más complejas puede modificar otros archivos en /etc/grub.d o crearlos; éstos scripts deben devolver porciones de configuración, posiblemente utilizando programas externos. Estos scripts son los que actualizarán la lista de núcleos a iniciar: 10_linux tiene en cuenta los núcleos Linux instalados; 20_linux_xen tiene en cuenta sistemas virtuales Xen y 30_os-prober agrega al menú otros sistemas operativos existentes (Windows, OS X, Hurd), imágenes de kernel y opciones de acceso a BIOS / EFI.

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.