Hace poco reinstalé debian en mi PC de sobremesa y he tenido que volver a configurar algunas cosas, como por ejemplo el GRUB. Por defecto el GRUB se muestra a una resolución de 640×480, la cual es bastante ‘fea’. Igual ocurre con las terminales ttys, a las cuales se puede acceder con pulsando Ctrl + Alt + F[1-6]. Hoy voy a explicar cómo cambiar esta resolución a vuestra preferida.



Cambiar resolución de pantalla del GRUB

La forma más fácil es editar el fichero /etc/defaults/grub y cambiar la resolución de la variable GRUB_GFXMODEGRUB_GFXMODE por la resolución deseada, en mi caso 1280×1024.

Cambiar la resolución de pantalla de la tty

Voy a explicar dos formas, la primera que apliqué y una segunda que es el método más recomendado y fácil, pero que descubrí posteriormente ojeando los archivos de configuración. La configuración del GRUB se encuentra dividida en ficheros en el directorio /etc/grub.d/. El fichero 10_linux se encarga de generar las entradas del GRUB para sistemas operativos linux, aquí se establecen los parámetros para iniciar el sistema, y nosotros le pasaremos un parámetro adicional, vga, que establecerá el tipo de resolución deseada. Dicho tipo hay que elegirlo de entre los valores de la siguiente tabla:

Colores   640x400 640x480 800x600 1024x768 1280x1024 1600x1200
--------+-----------------------------------------------------
 4 bits |                  0x302
 8 bits |  0x300   0x301   0x303    0x305    0x307     0x31C
15 bits |          0x310   0x313    0x316    0x319     0x31D
16 bits |          0x311   0x314    0x317    0x31A     0x31E
24 bits |          0x312   0x315    0x318    0x31B     0x31F
32 bits |

Para mi caso concreto eligiré 0x31B. Una vez conocido el valor, hay que escribir el argumento en el arranque de linux, y eso se hace en la siguiente línea de 10_linux:

message="$(gettext_printf "Loading Linux %s ..." ${version})"
    cat << EOF
         echo    '$message'
         linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} vga=0x31B
EOF
  if test -n "${initrd}" ; then
    message="$(gettext_printf "Loading initial ramdisk ...")"


Este trozo del script es el encargado de pasar los parámetros a la secuencia de inicio.

La segunda forma es mucho más cómoda, al igual que en el apartado anterior con la variable GRUB_GFXMODE, hay otra llamada GRUB_CMDLINE_LINUX. Es a esta variable a la que le asignamos el parámetro anterior, quedando GRUB_CMDLINE_LINUX=”vga=0x31B”.

Aplicar los cambios

Para aplicar los cambios es necesario regenerar el archivo /boot/grub/grub.cfg con el siguiente comando:

# update-grub2

Una vez terminado, el apartado de sistemas operativos Linux disponibles quedará así:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
 load_video
  insmod gzio
 insmod part_msdos
   insmod ext2
 set root='(hd0,msdos1)'
   search --no-floppy --fs-uuid --set=root ae9e059a-75a2-4f19-9631-206fc1fd65fa
    echo    'Loading Linux 3.2.0-4-amd64 ...'
 linux   /boot/vmlinuz-3.2.0-4-amd64 root=UUID=ae9e059a-75a2-4f19-9631-206fc1fd65fa ro vga=0x31B quiet
   echo    'Loading initial ramdisk ...'
 initrd  /boot/initrd.img-3.2.0-4-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
   load_video
  insmod gzio
 insmod part_msdos
   insmod ext2
 set root='(hd0,msdos1)'
   search --no-floppy --fs-uuid --set=root ae9e059a-75a2-4f19-9631-206fc1fd65fa
    echo    'Loading Linux 3.2.0-4-amd64 ...'
 linux   /boot/vmlinuz-3.2.0-4-amd64 root=UUID=ae9e059a-75a2-4f19-9631-206fc1fd65fa ro single vga=0x31B
  echo    'Loading initial ramdisk ...'
 initrd  /boot/initrd.img-3.2.0-4-amd64
}
### END /etc/grub.d/10_linux ###

Como se aprecia, aparece el parámetro vga.

Índice