La poderosa shell de GRUB 2

En el artículo anterior hemos visto que la línea de comandos de GRUB nos permitía reparar el cargador de arranque sin necesidad de recurrir a un cargador de arranque.

GRUB2 como es de suponer también permite hacerlo:

grub> set root=(hd0,1)
grub> linux /vmlinuz-3.16.0 root=/dev/mapper/centos-root ro
grub> initrd /initramfs-3.16.0.img
grub> boot

Como vemos cambian algunos comandos, sintaxis y la nomenclatura de particiones pero la idea es la misma.

Desde ya contamos con la tecla TAB​ para autocompletar rutas de archivo y el comando cat:

Comando cat en GRUB2
Arrancar directo desde un archivo ISO

Bajamos una distro y no queremos ni tenemos tiempo para grabarla en un CD/DVD. Perfecto, GRUB2 en la mayoría de los casos puede arrancar también una imagen ISO:

 

 

grub> set isofile=/TinyCore.iso 
grub> loopback loop (hd0,1)/$isofile vmlinuz 
grub> linux (loop)/boot/vmlinuz cde loglevel=3 
grub> initrd (loop)/boot/core.gz

Tener acceso a un archivo de un LVM

Sí, estimados, GRUB2 puede también leer un volumen lógico, ¿Cómo? Así:

LVM y GRUB2

Algo más

¿Más? Sí, mas todavía, por ejemplo listar dispositivos en el bus PCI:

Comando lspci en GRUB2

Como se puede apreciar GRUB es bastante más que un boot loader y su shell lo suficientemente potente como para prescindir de un LiveCD (al menos en soporte físico) en más de una ocasión.

Información complementaria

Volúmenes lógicos

LVM, la implementación de volúmnes lógicos, sirve para flexibilizar el manejo de particiones y entre otras cosas más para crear instantáneas que pueden usarse con xen.

Para crear un LVM es necesario crear 1 o más PVs (volúmenes físicos). Un PV puede ser la partición de un disco. Uno o más PVs conforman un VG (grupo de volúmenes). Una vez conformado un VG se puede particionar tal como si fuera un disco tradicional. En este caso cada partición es llamada volúmen lógico (LV).

Algunas herramientas de LVM

  • pvcreate: Crea volúmenes físicos
  • vgcreate: Crea un grupo de volúmenes
  • vgchange: Sirve para modificar los atributos de un grupo de volúmenes, por ejemplo para  activar o desactivarlo.
  • vgreduce: Elimina volúmenes físicos.
  • vgextend: Agrega volúmenes físicos a un grupo de volúmenes
  • lvcreate: Crea un volúmen lógico
  • lvextend: Sirve para expandir un volúmen lógico, si se usa ext3, luego hay que usar la herramienta resize2fs. Se puede usar con con el sistema de archivos correspondiente montado.
  • lvreduce: Sirve para achivar un volumen lógico, previamente si usa ext3 hay que usar el comando resize2fs indicando un tamaño coherente con lo que se indica on lvreduce. Por lo que entiendo no puede usar con el sistema de archivos montado
  • Las herramientas vgdisplay, pvdisplay, y lvdisplay muestran respectivamente información de grupos de volúmenes, volúmenes físicos y volúmenes lógicos.
  • lvs: Muestra información resumida de todos los volúmenes lógicos.
  • lvrename: Sirve para cambiarle el nombre a un volumen lógico.

Las líneas en /etc/fstab correspondientes a volúmenes lógicos puede verse así:

/dev/vboxes/mercurio        /mercurio        ext3    defaults    1 2
/dev/vboxes/venus        /venus        ext3    defaults    1 2
/dev/vboxes/marte        /marte        ext3    defaults    1 2

Si bien existen herramientas gráficas, es conveniente conocer los comandos subyacentes.