Esta chuleta cubre los comandos que necesitarás tanto en el día a día como en escenarios de rescate, por ejemplo al recuperar la contraseña de root desde un LiveCD en un sistema con LVM.
En un homelab real, los PV rara vez son un disco suelto: lo habitual es crearlos sobre un array de RAID software con mdadm (por ejemplo /dev/md0) para no perder los volúmenes lógicos si falla un disco.
Los comandos básicos de LVM organizados por nivel
/dev/sdb, /dev/sdc, /dev/sdd (discos o particiones físicas)
│
│ pvcreate
▼
PV — Volúmenes físicos
│
│ vgcreate / vgextend
▼
vg_datos (grupo de volúmenes: el "pool" de espacio)
│
│ lvcreate
├── lv_home (ej. 50G)
└── lv_backup (ej. 50G) ← formateas y montas cada LV como un disco normal
1. Volúmenes Físicos (PV - Physical Volumes)
pvs- ver resumen de volúmenes físicospvdisplay- ver detalles completospvcreate /dev/sdb- crear un volumen físico
2. Grupos de Volúmenes (VG - Volume Groups)
vgs- ver resumen de gruposvgdisplay- ver detalles completosvgcreate nombre_vg /dev/sdb- crear grupovgextend nombre_vg /dev/sdc- añadir disco al grupo
3. Volúmenes Lógicos (LV - Logical Volumes)
lvs- ver resumen de volúmenes lógicoslvdisplay- ver detalles completoslvcreate -L 10G -n nombre_lv nombre_vg- crear volumen de 10GBlvextend -L +5G /dev/nombre_vg/nombre_lv- ampliar 5GB máslvresize -L 20G /dev/nombre_vg/nombre_lv- establecer tamaño fijo
Truco para recordarlos
El patrón es siempre el mismo:
- Consulta rápida:
pvs,vgs,lvs(la “s” de summary) - Consulta detallada:
pvdisplay,vgdisplay,lvdisplay - Crear:
pvcreate,vgcreate,lvcreate - Extender:
vgextend,lvextend
Secuencia típica que usarás
# 1. Ver qué discos tienes disponibles
lsblk
# 2. Crear volumen físico en el nuevo disco
pvcreate /dev/sdb
# 3. Añadirlo a un grupo existente
vgextend vg_datos /dev/sdb
# o crear uno nuevo
vgcreate vg_datos /dev/sdb
# 4. Ampliar el volumen lógico
lvextend -L +50G /dev/vg_datos/lv_archivos
# o para usar todo el espacio disponible:
lvextend -l +100%FREE /dev/vg_datos/lv_archivos
# 5. Ampliar el sistema de archivos
resize2fs /dev/vg_datos/lv_archivos # para ext4
# o (xfs_growfs necesita el punto de montaje, no el dispositivo; sustituye por el punto de montaje real de tu volumen)
xfs_growfs /mnt/archivos # para xfs
Proceso para extender un volumen LVM
1. Primero, verificar el estado actual
# Ver los volúmenes lógicos y su tamaño
lvs
# Ver cuánto espacio libre tiene el grupo de volúmenes
vgs
2. Extender el volumen lógico
Tienes dos opciones:
# Opción A: Añadir una cantidad específica
lvextend -L +10G /dev/nombre_vg/nombre_lv
# Opción B: Usar todo el espacio libre disponible
lvextend -l +100%FREE /dev/nombre_vg/nombre_lv
3. Extender el sistema de archivos
## Importante
lvextendsolo amplía el volumen lógico. Sin este paso adicional el sistema de archivos sigue viendo el tamaño antiguo y no verás el espacio nuevo disponible.
# Para ext4
resize2fs /dev/nombre_vg/nombre_lv
# Para xfs (necesita el punto de montaje, no el dispositivo; sustituye por el punto de montaje real de tu volumen)
xfs_growfs /punto/de/montaje
4. Verificar que se aplicó
df -h
Ejemplo práctico completo
# 1. Ver estado
lvs
vgs
# 2. Extender 20GB más al volumen
lvextend -L +20G /dev/vg_datos/lv_home
# 3. Extender el sistema de archivos
resize2fs /dev/vg_datos/lv_home
# 4. Confirmar
df -h /home
¿Y si no hay espacio libre en el VG?
Si vgs muestra que no hay espacio libre (VFree = 0), primero necesitas añadir un disco nuevo:
# 1. Preparar el nuevo disco
pvcreate /dev/sdc
# 2. Añadirlo al grupo de volúmenes
vgextend nombre_vg /dev/sdc
# 3. Ahora sí, extender el volumen lógico
lvextend -L +50G /dev/nombre_vg/nombre_lv
# 4. Extender el sistema de archivos
resize2fs /dev/nombre_vg/nombre_lv
Casos típicos en administración LVM
1. Crear un nuevo volumen lógico desde cero
# Ver espacio disponible
vgs
# Crear volumen de 50GB
lvcreate -L 50G -n lv_backup vg_datos
# Formatear
mkfs.ext4 /dev/vg_datos/lv_backup
# Montar
mkdir /backup
mount /dev/vg_datos/lv_backup /backup
# Hacerlo permanente (añadir a /etc/fstab)
echo "/dev/vg_datos/lv_backup /backup ext4 defaults 0 2" >> /etc/fstab
2. Reducir un volumen
## Peligro
Reducir un volumen lógico puede provocar pérdida de datos si el sistema de archivos no se reduce primero, o si el tamaño calculado es incorrecto. Haz una copia de seguridad antes de continuar.
# Primero desmontar
umount /dev/vg_datos/lv_old
# Verificar el sistema de archivos
e2fsck -f /dev/vg_datos/lv_old
# Reducir el sistema de archivos PRIMERO (siempre un poco menos)
resize2fs /dev/vg_datos/lv_old 38G
# Luego reducir el volumen lógico
lvreduce -L 40G /dev/vg_datos/lv_old
# Volver a montar
mount /dev/vg_datos/lv_old /mnt/old
3. Mover datos entre discos físicos (migración)
# Añadir disco nuevo al VG
pvcreate /dev/sdd
vgextend vg_datos /dev/sdd
# Mover datos del disco viejo al nuevo
pvmove /dev/sdb /dev/sdd
# Quitar el disco viejo del VG
vgreduce vg_datos /dev/sdb
pvremove /dev/sdb
4. Crear snapshot (copia instantánea para backups)
# Crear snapshot del volumen (necesita espacio libre en el VG)
lvcreate -L 10G -s -n snap_home /dev/vg_datos/lv_home
# Montar el snapshot para hacer backup
mkdir /mnt/snapshot
mount /dev/vg_datos/snap_home /mnt/snapshot
# Hacer backup tranquilamente
tar czf /backup/home.tar.gz /mnt/snapshot
# Eliminar snapshot cuando termines
umount /mnt/snapshot
lvremove /dev/vg_datos/snap_home
5. Ver información detallada cuando algo falla
# Ver TODO sobre un volumen específico
lvdisplay -m /dev/vg_datos/lv_home
# Ver en qué discos físicos está un volumen
lvs -o +devices /dev/vg_datos/lv_home
# Ver todos los PV y su uso
pvs -o +pv_used
6. Renombrar volúmenes
# Renombrar volumen lógico
lvrename vg_datos lv_old lv_antiguo
# Renombrar grupo de volúmenes
vgrename vg_old vg_nuevo
7. Eliminar volúmenes (orden inverso a la creación)
# 1. Desmontar
umount /mnt/datos
# 2. Eliminar volumen lógico
lvremove /dev/vg_datos/lv_temporal
# 3. Si quieres eliminar el VG completo
vgremove vg_datos
# 4. Eliminar volúmenes físicos
pvremove /dev/sdb
8. Activar/desactivar volúmenes
# Desactivar un volumen (para mantenimiento)
lvchange -an /dev/vg_datos/lv_home
# Reactivar
lvchange -ay /dev/vg_datos/lv_home
# Activar todos los VG (útil tras arranque o rescate)
vgchange -ay
Los casos más frecuentes que verás en el día a día son el 1 (crear nuevos volúmenes), el extender que ya vimos, y el 4 (snapshots para backups seguros, un buen complemento a un backup incremental con rsync). El 3 (migración) lo usarás cuando cambies discos.