Comando lsblk: estructura de discos y particiones y consulta del UUID
El comando lsblk muestra en forma de árbol los discos y particiones conectados a un servidor y sus puntos de montaje, y permite ver de una vez el tamaño de los discos, el tipo de sistema de archivos e incluso el UUID. Al ejecutar lsblk en un servidor AlmaLinux 9, los dispositivos loop creados por los paquetes snap aparecieron antes que el disco, así que los filtramos con -e 7. Después comprobamos con -f el sistema de archivos xfs y el UUID de la partición raíz.
Los tamaños de disco y los UUID de la salida de abajo son valores de ejemplo.
1️⃣ Cómo leer la salida básica del comando lsblk
En un servidor con programas instalados mediante snap, al ejecutar lsblk sin opciones aparece antes que el disco una fila de dispositivos loop montados, uno por cada versión de paquete; por eso se indica con -e el número de dispositivo de los loop, 7, para excluirlos.
lsblk -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 80G 0 disk
├─nvme0n1p1 259:1 0 1M 0 part
├─nvme0n1p2 259:2 0 200M 0 part /boot/efi
├─nvme0n1p3 259:3 0 1G 0 part /boot
└─nvme0n1p4 259:4 0 78.8G 0 part /nvme0n1 en la columna NAME es el disco. Las que cuelgan debajo con [├─] y [└─], de nvme0n1p1 a nvme0n1p4, son las particiones en las que se divide este disco. Es como el directorio de la entrada de un edificio, que muestra bajo el nombre del edificio lo que hay en cada planta.
En la columna TYPE, los discos aparecen como [disk] y las particiones como [part], y la columna MOUNTPOINTS indica la carpeta en la que está montada cada partición. En el servidor que revisamos, la partición raíz nvme0n1p4 estaba montada en / y nvme0n1p3 en /boot. nvme0n1p1, de 1M, es una partición de arranque BIOS que se usa para arrancar desde un disco GPT, por lo que no tiene punto de montaje.
MAJ:MIN son los números mayor y menor que el kernel asigna a un dispositivo; los dispositivos loop tienen 7 y el disco NVMe que revisamos tenía 259. RM indica con 1 o 0 si el dispositivo es extraíble, y RO si es de solo lectura.
Es fácil leer SIZE como el espacio libre, pero SIZE es el tamaño total del disco o de la partición. El espacio libre del sistema de archivos se consulta en la columna FSAVAIL, que aparece al añadir -f.
En el diagrama de abajo puedes comparar paso a paso cómo cambian las filas y columnas de la salida según la opción.
2️⃣ lsblk -f: consultar sistemas de archivos y UUID
La salida básica no muestra el tipo de sistema de archivos, así que el formato con el que se formateó una partición se comprueba con -f. -f muestra ocho columnas: NAME, FSTYPE, FSVER, LABEL, UUID, FSAVAIL, FSUSE% y MOUNTPOINTS.
lsblk -f -e 7NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1
├─nvme0n1p2 vfat FAT16 5A1E-3B7C 192.1M 4% /boot/efi
├─nvme0n1p3 xfs 6d2f0c4e-8b1a-4f3d-a7e2-9c5b1d0e4f28 691.4M 28% /boot
└─nvme0n1p4 xfs 2b9e7f41-c3d6-4a85-b0f1-7e4a2c9d6b13 68.5G 13% /Al ejecutarlo, las particiones raíz y /boot eran xfs, y /boot/efi era vfat en la versión FAT16. El disco nvme0n1 y nvme0n1p1 no tienen sistema de archivos, así que quedaron en blanco. El UUID es un número único asignado a cada sistema de archivos y se usa en /etc/fstab para indicar la partición que se montará por UUID en lugar de por nombre de dispositivo.
Para consultar la información del sistema de archivos con la mayor precisión, se usa el comando blkid.
FSAVAIL y FSUSE% son el espacio libre y el porcentaje de uso de un sistema de archivos montado. Las particiones que no están montadas no muestran valores. El comando df solo muestra el tamaño y el uso de los sistemas de archivos montados. lsblk muestra también la estructura de discos y particiones, estén montados o no.
3️⃣ lsblk -o para elegir columnas y -b para bytes
Si escribes nombres de columna separados por comas después de -o, solo aparecen esas columnas en ese orden. Los nombres de columna disponibles están en la lista al final de [lsblk --help].
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT -e 7NAME SIZE FSTYPE MOUNTPOINT
nvme0n1 80G
├─nvme0n1p1 1M
├─nvme0n1p2 200M vfat /boot/efi
├─nvme0n1p3 1G xfs /boot
└─nvme0n1p4 78.8G xfs /MOUNTPOINT muestra un solo punto de montaje, mientras que MOUNTPOINTS los muestra todos cuando el mismo sistema de archivos está montado en varios lugares. Para añadir solo una columna detrás de las básicas, pon + delante del nombre de la columna, como en [-o +UUID].
-b muestra los tamaños como números enteros en bytes. Para comparar a simple vista se leen mejor las unidades básicas, así que -b es adecuado para scripts que calculan o comparan tamaños.
lsblk -b -o NAME,SIZE -e 7NAME SIZE
nvme0n1 85899345920
├─nvme0n1p1 1048576
├─nvme0n1p2 209715200
├─nvme0n1p3 1073741824
└─nvme0n1p4 84613774848La G y la M de la salida básica son unidades de 1024, así que el disco de 80G aparece como 85.899.345.920 bytes.
4️⃣ lsblk -d para la lista de discos y -p para rutas completas
En un servidor con varios discos, las filas de partición se mezclan y cuesta revisar la lista de discos, así que se usa -d para quitar las particiones y mostrar solo las filas de disco.
lsblk -d -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 80G 0 disk En la salida solo quedó la fila del disco nvme0n1, y las cuatro filas de partición de debajo no aparecieron.
Con -p se añade /dev/ delante de los nombres de dispositivo y aparecen como rutas completas. Estas rutas se pueden pasar tal cual a otros comandos, como mount.
lsblk -p -e 7NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/nvme0n1 259:0 0 80G 0 disk
├─/dev/nvme0n1p1 259:1 0 1M 0 part
├─/dev/nvme0n1p2 259:2 0 200M 0 part /boot/efi
├─/dev/nvme0n1p3 259:3 0 1G 0 part /boot
└─/dev/nvme0n1p4 259:4 0 78.8G 0 part /Solo la columna NAME cambia a rutas completas, de /dev/nvme0n1 a /dev/nvme0n1p4, y el resto de columnas es igual que en la salida básica.
Si pasas como argumento la ruta de un dispositivo, se muestran solo ese dispositivo y sus particiones; si pasas la ruta de una partición, aparece solo la fila de esa partición.
lsblk /dev/nvme0n1p4NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1p4 259:4 0 78.8G 0 part /En la salida aparece solo la fila de nvme0n1p4, sin la fila del disco ni las marcas de rama. Al pasar la ruta de un dispositivo que no existe, apareció el error [not a block device] y el código de salida fue 32.
5️⃣ Salida y opciones del comando lsblk para scripts
Es tentador recortar la salida básica en los scripts, pero la composición de columnas de la salida básica y de -f puede cambiar en el futuro, así que en los scripts se indican las columnas directamente con -o.
-n quita la fila de cabecera y muestra solo los valores, así que es adecuado cuando solo necesitas un valor, como el tipo de sistema de archivos de una partición.
lsblk -no FSTYPE /dev/nvme0n1p4xfsSin fila de cabecera aparece solo una palabra, xfs, el tipo de sistema de archivos de la partición raíz, así que puedes guardarla directamente en una variable de shell.
-P muestra cada columna en una línea con la forma [nombre=”valor”]. En util-linux 2.37 de AlmaLinux 9, basta con añadir -P para que los nombres cambien y se lean fácilmente como variables de shell: MAJ:MIN pasa a MAJ_MIN y FSUSE% a FSUSE_PCT.
lsblk -P -o NAME,FSTYPE,MOUNTPOINT /dev/nvme0n1p4NAME="nvme0n1p4" FSTYPE="xfs" MOUNTPOINT="/"Las tres columnas indicadas aparecen en una línea en el orden NAME, FSTYPE, MOUNTPOINT. Todos los valores van entre comillas dobles.
-J muestra la salida en JSON. Sin -d, las particiones entran en el array children debajo del disco. Si se usa junto con -b, solo size pasa a ser un número, y las demás columnas de tamaño, como FSAVAIL, siguen siendo cadenas.
lsblk -J -d -o NAME,SIZE,TYPE -e 7{
"blockdevices": [
{
"name": "nvme0n1",
"size": "80G",
"type": "disk"
}
]
}Con -d, el array blockdevices contiene solo el disco y el array children no aparece.
🔲 Opciones del comando lsblk
| Opción | Copiar | Descripción |
|---|---|---|
| -e, --exclude | Excluye los dispositivos con el número mayor indicado. Si indicas 7, se excluyen los dispositivos loop. | |
| -f, --fs | Muestra el tipo de sistema de archivos, el UUID, el espacio libre y el porcentaje de uso. | |
| -o, --output | Muestra en orden solo las columnas indicadas separadas por comas. | |
| -b, --bytes | Muestra la columna SIZE como números enteros en bytes. | |
| -d, --nodeps | Quita las filas de partición y muestra solo las filas de disco. | |
| -p, --paths | Muestra los nombres de dispositivo como rutas completas que empiezan por /dev/. | |
| -n, --noheadings | Quita la fila de cabecera y muestra solo los valores. | |
| -P, --pairs | Muestra los nombres de columna y sus valores por parejas en una sola línea. | |
| -J, --json | Muestra la salida en formato JSON. | |
| -a, --all | Muestra también los dispositivos vacíos de tamaño 0. |
| Opción | Copiar | Descripción |
|---|---|---|
| -I, --include | Muestra solo los dispositivos con el número mayor indicado. | |
| -l, --list | Muestra la salida en formato de lista en lugar de árbol. | |
| -r, --raw | Muestra la salida en formato raw, sin alinear las columnas. | |
| -i, --ascii | Muestra las líneas del árbol con caracteres ASCII. | |
| -s, --inverse | Invierte las dependencias y muestra los discos debajo de las particiones. | |
| -S, --scsi | Muestra solo la información de dispositivos SCSI. | |
| -t, --topology | Muestra información de topología, como el tamaño de sector y el planificador de E/S. | |
| -m, --perms | Muestra el propietario, el grupo y los permisos de los dispositivos. | |
| -x, --sort | Ordena según la columna indicada y muestra la salida en formato de lista. | |
| -O, --output-all | Muestra todas las columnas disponibles. |
🔲 Simulador del comando lsblk
En el simulador de abajo puedes escribir tú mismo los comandos vistos hasta ahora y comprobar cómo cambia la salida con cada opción.
🔢 FAQ & contenido recomendado
Linux · Swap
Configurar la memoria swap (Swap Memory)
Cómo crear memoria swap como partición o como archivo con los comandos mkswap y swapon.
Linux · Disco
Comando dd en Linux
Uso básico, opciones y ejemplos del comando dd, que se usa para clonar discos y particiones o crear archivos de imagen.
Disco · Concepto
¿Qué es un sector de disco?
Explica la estructura básica de un disco duro y qué es un sector de disco, la división del medio de almacenamiento en bloques de un tamaño fijo.
ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.