¿Cansado de GRUB? ¡Usa Syslinux en ArchLinux!

Friday 17 de August de 2012, 12:27 pm 29 Comments

Por años he sido usuario de GRUB (ya ni recuerdo la última vez que usé LILO) como bootloader. Desde que salieron las nuevas ISO de instalación de ArchLinux he tenido ganas de probar Syslinux, y luego de algunas pruebas (primero en una máquina virtual y luego en mi sistema principal) he quedado satisfecho: ¡procedimiento sencillo y resultado sobresaliente!

[Booteando con Syslinux en ArchLinux]

Paso 1: Preliminares

Un par de cosas que debes tener en cuenta:

  • ¿Usas /boot como partición independiente? ¡Asegúrate de que esté montada! (Usa lsblk)
  • ¿Sabes dónde se encuentra tu partición / (root)? ¡Verifica en el archivo /etc/fstab!

Paso 2: Instala Syslinux

Instalemos el paquete syslinux desde [core]:

sudo pacman -S syslinux

Ahora, ejecutaremos un script que terminará de instalar Syslinux de manera automática (instala diversos archivos en /boot/syslinux/, marca la partición con la bandera boot y escribe el código de booteo en la MBR):

sudo syslinux-install_update -iam

¿Usas un disco con GPT (GUID Partition Table) en vez de MBR (Master Boot Record)? ¿Usas un arreglo de discos RAID? El script anterior tiene previsto ambos casos.

Paso 3: Configura Syslinux

¡Aún no reinicies tu sistema! Usa tu editor de texto favorito (en mi caso, vim) para abrir el archivo de configuración de Syslinux:

sudo vim /boot/syslinux/syslinux.cfg

El contenido de dicho archivo es muy intuitivo, y podemos modificarlo según nuestras necesidades.

Lo más importante (y necesario) que deben verificar se encuentra casi al final del archivo. Se trata de la ruta de nuestra partición / (¡no uses /boot!) sea la utilizada en las líneas que inician con APPEND en cada entrada del menú de Syslinux (las cuales inician con LABEL). Por ejemplo, en mi caso, mi / (root) es /dev/sda3:

LABEL arch
	MENU LABEL Arch Linux
	LINUX ../vmlinuz-linux vga=773
	APPEND root=/dev/sda3 ro
	INITRD ../initramfs-linux.img
 
LABEL archfallback
	MENU LABEL Arch Linux Fallback
	LINUX ../vmlinuz-linux
	APPEND root=/dev/sda3 ro
	INITRD ../initramfs-linux-fallback.img

Si son observadores, al final de la línea que inicia con LINUX (que también puede iniciar con KERNEL) incluí vga=773, para que se use un framebuffer de 1024×768.

Ahora bien, las primeras opciones del archivo son las siguientes:

DEFAULT arch
PROMPT 0
TIMEOUT 50

El significado de cada una de las líneas:

  • Cada opción del menú de Syslinux tiene un identificador asociado con LABEL, y uno de ellos debemos especificarlo como nuestra opción predeterminada con DEFAULT.

  • Si establecemos a 1 la línea PROMPT, haremos siempre visible el prompt boot:

  • El TIMEOUT indica la cantidad de décimas de segundo de espera (en nuestro ejemplo: 50 = 5 segundos).

Adicionalmente, podemos cambiar los colores usados en el menú de Syslinux, modificando los valores de las líneas que inician con MENU COLOR.

Ahora si, guarda las modificaciones en el archivo, sal de tu editor, ¡y reinicia tu sistema!

Paso Extra: ¡Syslinux Gráfico!

Si el menú textual no es lo suficientemente agradable a la vista, podemos establecer un menú gráfico. Para ello, antes de entrar nuevamente a editar el archivo /boot/syslinux/syslinux.cfg, debemos hacer dos pasos previos:

  • Copia el archivo vesamenu32.c32, que se encuentra en /usr/lib/syslinux/, al directorio /boot/syslinux/

    sudo cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/
  • Aunque no es algo obligatorio, es muy atractivo tener una imagen de fondo, la cual debe ser de 640 x 480 pixeles. ¿Quieres usar la que se muestra en el ISO de instalación de ArchLinux? Aquí los pasos para descargarla y copiarla a /boot/syslinux/

    wget http://projects.archlinux.org/archiso.git/plain/configs/releng/syslinux/splash.png
    sudo cp ./splash.png /boot/syslinux/

Ahora si, editemos de nuevo nuestro archivo de configuración:

sudo vim /boot/syslinux/syslinux.cfg

En las líneas que inician con UI, debemos deshabilitar la opción menu.c32 y habilitar vesamenu.c32:

#UI menu.c32
UI vesamenu.c32

En la línea MENU BACKGROUND debemos especificar el nombre del archivo de la imagen que usaremos de fondo. En nuestro ejemplo:

MENU BACKGROUND splash.png

Si usaste la imagen de la ISO de instalación de ArchLinux, te recomiendo los siguientes parámetros extras para ajustar a dicho fondo la posición y tamaño del menú:

MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

El resultado será similar a la imagen que observan al inicio del presente post.

Obviamente, si usan una imagen de fondo diferente, deben especificar valores adecuados para que el menú se vea bien.

Observaciones finales

¡Syslinux aún no soporta UEFI! Eventualmente lo hará, pero no hay fecha oficial.

Para más información, les recomiendo ampliamente leer sobre Syslinux en la Wiki de ArchLinux.

Share

Post tags