Surgió la necesidad de identificar el formato de sistema de archivos de un dispositivo. Este artículo explica cómo listar todos los filesystems disponibles y sus formatos empleando la herramienta lsblk.
Típicamente se recurre a mount
para identificar el sistema de archivos de un dispositivo:
emi@vaio:~$ mount | grep "^/dev" /dev/sda7 on / type ext4 (rw,noatime) /dev/sda1 on /boot type ext2 (rw,noatime) /dev/sda4 on /System type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096) /dev/sda5 on /data type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096) /dev/sda6 on /vault type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
En esta salida, el tipo de sistema de archivos de cada dispositivo aparece luego de la palabra "type". Sin embargo, el sistema de archivos debe estar montado para que aparezca listado en la salida de mount
.
¿Qué ocurre si necesito identificar el sistema de archivos de un dispositivo que no está montado? En este caso es posible utilizar herramientas de gestión de discos como fdisk
, cfdisk
, gdisk
u otra:
root@vaio:/home/emi# fdisk -l Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors Disk model: ST500LM012 HN-M5 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x000bbc48 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 3999743 3997696 1.9G 83 Linux /dev/sda2 4001790 892887039 888885250 423.9G 5 Extended /dev/sda3 * 892887040 893091839 204800 100M 7 HPFS/NTFS/exFAT /dev/sda4 893091840 976771071 83679232 39.9G 7 HPFS/NTFS/exFAT /dev/sda5 132001792 532000767 399998976 190.8G 7 HPFS/NTFS/exFAT /dev/sda6 532002816 892887039 360884224 172.1G 7 HPFS/NTFS/exFAT /dev/sda7 4003840 131999743 127995904 61G 83 Linux Partition 2 does not start on physical sector boundary. Partition table entries are not in disk order.
El problema con estas herramientas es que la información sobre el formato de sistema de archivos es meramente informativa, ya que se obtiene del número en la columna tipo de la tabla de particiones (el cual puede no coincidir con el formato de sistema de archivos efectivamente utilizado en el dispositivo). Notar los valores "HPFS/NTFS/exFAT" en la columna "Type" de la salida de fdisk
. Esto apenas da un indicio de qué formato de sistema de archivos se está utilizando.
Anteriormente demostré cómo listar todos los dispositivos por bloque utilizando lsblk
:
emi@vaio:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1.9G 0 part /boot ├─sda2 8:2 0 1K 0 part ├─sda3 8:3 0 100M 0 part ├─sda4 8:4 0 39.9G 0 part /System ├─sda5 8:5 0 190.8G 0 part /data ├─sda6 8:6 0 172.1G 0 part /vault └─sda7 8:7 0 61G 0 part / sr0 11:0 1 1024M 0 rom
Además de listar los dispositivos por bloque (típicamente discos, particiones y dispositivos de almacenamiento externos), esta herramienta permite mostrar información adicional disponible sobre cada dispositivo empleando la opción -f
:
emi@vaio:~$ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext2 42868a2d-0ebf-4846-9b51-badb81d38cf1 1.7G 5% /boot ├─sda2 ├─sda3 ntfs System Reserved B85AB1565AB1125C ├─sda4 ntfs System CA0AB4F00AB4DB21 3.9G 90% /System ├─sda5 ntfs Data 6FAB714E6DC69037 22.9G 88% /data ├─sda6 ntfs Vault 24CA2622CA25F0AA 7.7G 96% /vault └─sda7 ext4 f744048d-f6ec-47c0-8c3e-8eb31fec67b0 29.6G 51% / sr0
Esta salida muestra con exactitud qué formato de sistema de archivos utiliza cada dispositivo. Notar que en la columna "FSTYPE" figura "ntfs" donde antes fdisk
reportaba "HPFS/NTFS/exFAT". Además extrae información adicional desde cada uno, tal como el espacio disponible, porcentaje de uso y etiqueta.
Por otro lado esta herramienta permite listar el UUID (identificador único universal) de cada disco/partición, lo cual puede ser útil si se desea montar mediante UUID en vez de nombre de dispositivo (esto permite montar con exactitud en sistemas donde el nombre de dispositivo no es predecible o persistente ante reinicios).