Introducción
En el mundo de la administración de sistemas Linux, conocer los dispositivos de bloque disponibles es fundamental para tareas como particionado, formateo, montaje y solución de problemas de almacenamiento. El comando lsblk (list block devices) se ha convertido en una herramienta indispensable gracias a su salida clara y estructurada, que muestra jerárquicamente discos, particiones, volúmenes lógicos y otros dispositivos de bloque. A diferencia de herramientas más antiguas como fdisk -l, lsblk no requiere privilegios de root para mostrar la mayor parte de la información y se adapta bien a scripts y entornos de automatización.
¿Qué es lsblk?
lsblk pertenece al paquete util-linux y lee la información del sistema de archivos virtual /sys y del gestor de dispositivos udev para construir un árbol de dispositivos de bloque. Cada fila de la salida representa un dispositivo y sus columnas indican el nombre, los mayores y menores números, el tamaño, el tipo de dispositivo, el punto de montaje y otros atributos útiles. La herramienta está diseñada para ser legible tanto por humanos como por programas, ya que admite formatos de salida como JSON.
Sintaxis básica
La forma más simple de usar lsblk es ejecutarlo sin argumentos:
lsblk
Esto mostrará todos los dispositivos de bloque detectados en el sistema. Si deseas limitar la vista a un dispositivo concreto, puedes especificar su nombre:
lsblk /dev/sda
Además, lsblk acepta numerosas opciones que modifican la cantidad y el formato de la información mostrada.
Opciones más útiles
-ao--all: muestra dispositivos vacíos, como aquellos de loop sin archivo asociado.-bo--bytes: muestra el tamaño en bytes en lugar de unidades legibles.-fo--fs: agrega información sobre el sistema de archivos, como el tipo, el UUID y el punto de montaje.-ior--ascii: fuerza el uso de caracteres ASCII en el árbol, útil cuando la salida se copia a terminales que no soportan Unicode.-Jor--json: genera la salida en formato JSON, ideal para su integración en scripts.-oor--output: permite definir exactamente qué columnas se mostrarán, por ejemplolsblk -o NAME,SIZE,TYPE,MOUNTPOINT.
Ejemplos prácticos
Supongamos que quieres obtener una lista rápida de todos los discos y sus particiones, con tamaños legibles y el punto de montaje:
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
Esto producirá una tabla donde cada línea muestra el nombre del dispositivo, su tamaño, el tipo de sistema de archivos y dónde está montado.
Si necesitas identificar los dispositivos de tipo loop que están asociados a archivos de imagen, puedes combinar -a con un filtro de tipo:
lsblk -a -o NAME,TYPE,SIZE,MOUNTPOINT | grep loop
Para obtener la salida en JSON y procesarla con jq, simplemente ejecuta:
lsblk -J | jq '.blockdevices[] | {name:.name, size:.size, mountpoint:.mountpoint}'
Este enfoque es muy útil en pipelines de automatización donde se requiere crear o eliminar volúmenes basándose en su tamaño actual.
Interpretación de la salida
La salida de lsblk está organizada en forma de árbol. Los dispositivos que aparecen sin sangría son los discos físicos o unidades de almacenamiento de nivel superior. Sus particiones aparecen indentadas bajo ellos, indicando una relación de contención. Los dispositivos de tipo rom, disk, part, lvm y loop se distinguen en la columna TYPE. El campo SIZE muestra el tamaño total del dispositivo, mientras que ROTA indica si el medio es rotatorio (valor 1) o de estado sólido (valor 0). La columna MOUNTPOINT muestra dónde está montado el sistema de archivos; si está vacío, el dispositivo no está montado en ese momento.
Otra columna útil es MODEL, que, cuando se combina con la opción -o, muestra el modelo del disco según lo reportado por el kernel, lo que ayuda a identificar unidades específicas en servidores con múltiples discos.
Consejos y trucos
- Usa
lsblk -fpara ver rápidamente el UUID de cada partición, información esencial al editar el archivo/etc/fstab. - Si trabajas con entornos de contenedores o máquinas virtuales, la opción
-d(--nodeps) omite los dispositivos esclavos y muestra solo los dispositivos principales. - Para monitorizar cambios en tiempo real, combina lsblk con
watch:watch -n 1 lsblkactualiza la lista cada segundo. - En scripts, prefiere la salida JSON (
-J) y procesa con herramientas comojqorpython -m json.toolpara evitar problemas de parsing de texto. - Recuerda que lsblk solo muestra dispositivos de bloque; para dispositivos de carácter (como
/dev/ttyor/dev/random) necesitas usarlsdevo inspeccionar/devdirectamente.
Conclusión
El comando lsblk es una herramienta versátil y amigable que brinda una visión clara y estructurada de los dispositivos de bloque en cualquier sistema Linux. Desde la simple visualización de discos y particiones hasta la generación de datos JSON para automatización, lsblk se adapta a múltiples escenarios de administración y diagnóstico. Dominar sus opciones y saber interpretar su árbol de salida te permitirá gestionar el almacenamiento de forma más eficiente, reducir errores en el particionado y acelerar la resolución de problemas relacionados con discos y volúmenes. Ya seas un administrador de sistemas experimentado o un recién llegado al mundo de Linux, incorporar lsblk a tu conjunto de herramientas diarias es una inversión que se paga rápidamente en productividad y claridad.


