Tag Archives: Volumenes Logicos

Al actualizar Tanglu de Aequorea a Bartholomea el sistema no inicia

Posted on by 0 comment

Tanglu de Aequorea a Bartholomea – System not start

Al actualizar Tanglu me encontré con un problema gordo, el sistema no iniciaba. Intentaba montar /usr para seguir cargando pero como no podía, se paraba y me daba una shell para que lo arreglase.

ALERT! /dev/mapper/hostlocal-usr does not exist. Dropping to a shell!
 
(initramfs)

Mientras averiguaba que había pasado recargue con una copia de seguridad que hice con Clonezilla. Siempre hago una copia de seguridad en estos casos para evitar tirarme de los pelos si llega el desastre.

 Porque ocurre esto:

Para que se de este problema necesitas cumplir estos requisitos:

  • /usr separado en una partición o volumen diferente del raiz
  • Utilizar volúmenes lógicos (lvm)
  • Sistema de inicio con systemd

Systemd es muy dependiente de las aplicaciones que están en /usr y si no está disponible durante el arranque, no se inicia el sistema.

Actualmente los sistemas Linux en el arranque primero se carga el Kernel y luego este carga initramfs en memoria. Initramfs es un pequeño sistema de ficheros que tiene todos los scripts necesarios para poder iniciar el sistema desde configuraciones muy variadas que de otra forma no se podría.

El problema está en el script que se carga en initramfs para que descubra los volúmenes logicos durante el arranque y pueda montar /usr.

Como lo solucionamos durante el desastre:

Cuando te devuelve el prom al no poder montar /usr tenemos que montarlo a mano y continuar con el arranque.

  • Ver que volúmenes o particiones encuentra el sistema:
blkid
  • Descubrir los grupos lógicos:
vgchange -a y
  • Montar el sistema usr
mount -t ext3 -o ro /dev/mapper/hostlocal-usr /usr
  • Continuar con el arranque del sistema:
Control+D

 

Nota: Si no tienes cargado BusyBox en el sistema cuando se generó initramfs puede que algunos de los comandos anteriores no estén disponibles.

 

Como lo solucionamos de manera permanente:

Hay que crear un script para que descubra los VG durante el arranque y actualizar initramfs.

El script lo creas en /etc/initramfs-tools/script/local-top/ con el nombre vg-lvm y le das permisos de ejecución con el siguiente contenido:

#!/bin/sh
vgchange -a y

Y actualizamos initramfs con el comando:

update-initramfs -u

 

Actualmente la versión de lvm2-2.02.111-2.1 ya está parcheada para corregir este error.

Puedes ver el Bug en Debian y el parche que lo corrige.

 

LVM – Redimensionar volumenes logicos

Posted on by 0 comment

¿Que pasa si tienes que aumentar el tamaño de una partición y el hueco no está contiguo?

Imaginemos este escenario:

Queremos aumentar /usr quitandole espacio a /home que está sobredimensionada.

Gran problema. Ya me ha tocado en alguna ocasión reducir una partición, mover otras dos y aumentar una cuarta.

Después de este tipo de experiencias empecé a hacer instalaciones con LVM – Volúmenes Lógicos, lo cuál te permite asignar cualquier espacio a cualquier partición sin preocuparte si está contiguo. Puede estar incluso en otro disco.

¿Y cuales son los comandos que necesito para redimensionar con LVM? En el caso del esquema anterior pero con LVM serian:

1- Reducir (de mas) de 241Gb a 230Gb (11Gb) /home para liberar espacio

resize2fs /dev/riceru/home 230G

2- Reducir el volumen logico que contiene a /home (le quitamos 10 Gb)

lvreduce -L -10g (-t) /dev/riceru/home

3- Extender volumen logico que contiene a /usr (le añadimos 5Gb)

lvextend --size +5Gb /dev/riceru/usr

4- Ampliar el sistema de ficheros /usr a todo lo que da su volumen logico (5Gb)

resize2fs /dev/riceru-trinity/usr

5- Ajustar el sistema de ficheros reducido de mas (/home) a todo lo que da su volumen logico

resize2fs /dev/riceru-trinity/home

Si hacéis cuentas hay 5Gb que he dejado sin asignar, en la reserva, para el sistema de fucheros que lo necesite mas adelante.

Nota: La partición /boot no puede estar dentro del LVM para que el sistema sea arrancable.

Bye