Introducción
El almacenamiento de Linux está compuesto por varias capas conectadas. Un dispositivo puede contener particiones; una partición o imagen puede contener un sistema de archivos; y un sistema de archivos está disponible cuando se conecta al árbol de directorios mediante un punto de montaje. Mantener estos conceptos separados facilita mucho la comprensión de los comandos relacionados con los discos.
En este laboratorio, inspeccionará el almacenamiento de forma segura, analizará el uso del espacio, creará un sistema de archivos ext4 dentro de un archivo normal, lo montará y desmontará, consultará información de particiones y creará un archivo fstab de práctica. Todas las operaciones de escritura se realizan sobre archivos desechables creados para el laboratorio; no particionará un disco real ni modificará /etc/fstab del sistema.
Comprenda las capas de almacenamiento de Linux
En este paso, inspeccionará la relación entre los dispositivos de bloque, los sistemas de archivos y los puntos de montaje. Después, preparará un espacio de trabajo seguro.
El comando lsblk significa «list block devices» (listar dispositivos de bloque). Su opción -o selecciona las columnas que se mostrarán:
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS
Lea la salida de izquierda a derecha:
NAMEidentifica el dispositivo o la partición.TYPEdistingue entre discos, particiones y dispositivos loop.SIZEmuestra la capacidad.FSTYPEmuestra el tipo de sistema de archivos detectado, cuando existe.MOUNTPOINTSmuestra dónde está conectado el sistema de archivos al árbol de directorios.
Un disco puede contener una o varias particiones. Un sistema de archivos, como ext4, organiza los archivos dentro de una partición u otro objeto de almacenamiento. Un punto de montaje es un directorio normal a través del cual Linux expone ese sistema de archivos.
Use findmnt para identificar el sistema de archivos que contiene actualmente el directorio del proyecto. La opción -T acepta cualquier ruta y localiza el sistema de archivos montado que la contiene:
findmnt -T /home/labex/project
El dispositivo de origen exacto puede variar, pero la salida muestra el origen, el destino, el tipo de sistema de archivos y las opciones de montaje.
El comando blkid lee las firmas de los sistemas de archivos, las etiquetas y los UUID. Necesita acceso administrativo para inspeccionar todos los dispositivos de bloque disponibles:
sudo blkid
Un UUID es un identificador del sistema de archivos diseñado para mantenerse estable aunque cambie el nombre del dispositivo. Más adelante utilizará esta idea al estudiar los montajes persistentes.
Cree un espacio de trabajo dedicado y acceda a él:
mkdir -p /home/labex/project/storage-lab
cd /home/labex/project/storage-lab
pwd
La salida final debe ser /home/labex/project/storage-lab.
Analice el uso del sistema de archivos y de los directorios
En este paso, comparará df, que informa sobre el espacio de los sistemas de archivos completos, con du, que mide los archivos y los árboles de directorios.
Cree dos archivos de ejemplo con tamaños aparentes conocidos. La opción truncate -s establece el tamaño de un archivo de forma eficiente sin llenarlo con datos significativos:
cd /home/labex/project/storage-lab
mkdir -p usage/reports usage/archive
truncate -s 2M usage/reports/weekly.log
truncate -s 5M usage/archive/records.bin
Use df -h en el espacio de trabajo. La opción -h muestra unidades legibles, como MiB y GiB:
df -h /home/labex/project/storage-lab
df responde a la pregunta: «¿Cuánto espacio está usado y disponible en el sistema de archivos que contiene esta ruta?». Sus columnas principales son Size, Used, Avail, Use% y Mounted on.
Use du -sh para resumir el directorio de ejemplo. Aquí, -s significa resumen y -h selecciona unidades legibles:
du -sh usage
A diferencia de df, du responde a la pregunta: «¿Cuánto espacio corresponde a este archivo o árbol de directorios?». Los archivos dispersos creados con truncate pueden tener un tamaño aparente grande y, al mismo tiempo, consumir poco espacio de disco asignado. La opción --apparent-size mide sus tamaños lógicos:
du -h --apparent-size --max-depth=1 usage
Debería ver que usage/archive es más grande que usage/reports. Combine du con la ordenación para mostrar primero los elementos aparentes más grandes:
du -ah --apparent-size usage | sort -rh | head -n 5
La tubería envía la salida de du a sort; -r invierte el orden y -h entiende los sufijos de tamaño legibles. head -n 5 conserva los cinco primeros resultados.
Cree e inspeccione un sistema de archivos ext4
En este paso, creará una imagen de disco virtual, la formateará con ext4 e inspeccionará los metadatos de su sistema de archivos sin tocar un disco real.
Cree un archivo de imagen de 128 MiB. Este archivo servirá como almacenamiento desechable durante el resto del laboratorio:
cd /home/labex/project/storage-lab
truncate -s 128M virtual.img
Compruebe su tamaño aparente:
ls -lh virtual.img
Antes de formatearlo, file solo identifica datos genéricos o un archivo vacío:
file virtual.img
El comando mkfs.ext4 crea un sistema de archivos ext4. La opción -F confirma que un archivo normal es el destino intencionado, y -L asigna la etiqueta LABEXDATA:
sudo mkfs.ext4 -F -L LABEXDATA virtual.img
El formateo crea las estructuras del sistema de archivos dentro de la imagen. Inspeccione el resultado con dos herramientas:
file virtual.img
sudo blkid -p virtual.img
La salida debe identificar ext4, mostrar la etiqueta LABEXDATA e incluir un UUID generado. Muestre únicamente ese UUID:
sudo blkid -s UUID -o value virtual.img
El valor del UUID se genera durante el formateo, por lo que será diferente para cada estudiante.
Monte, utilice y desmonte el sistema de archivos
En este paso, conectará el sistema de archivos virtual al árbol de directorios de Linux, escribirá un archivo y lo desconectará de forma segura.
Un punto de montaje es el directorio donde un sistema de archivos pasa a estar visible. Cree uno bajo /mnt, una ubicación estándar para montajes administrativos temporales:
sudo mkdir -p /mnt/labex-virtual
Monte la imagen. La opción -o loop solicita a Linux que asocie el archivo normal a un dispositivo loop para poder tratarlo como almacenamiento de bloques:
cd /home/labex/project/storage-lab
sudo mount -o loop virtual.img /mnt/labex-virtual
Inspeccione el montaje activo:
findmnt /mnt/labex-virtual
El origen suele aparecer como un dispositivo loop, el destino es /mnt/labex-virtual y el tipo de sistema de archivos es ext4. También puede pedir a df información sobre este sistema de archivos específico:
df -h /mnt/labex-virtual
Escriba un archivo dentro del sistema de archivos montado. Se utiliza sudo sh -c porque la redirección la realiza el shell y el directorio raíz del montaje pertenece a root:
sudo sh -c 'echo "stored inside the virtual filesystem" > /mnt/labex-virtual/welcome.txt'
cat /mnt/labex-virtual/welcome.txt
El desmontaje vacía las escrituras pendientes y desconecta el sistema de archivos de su punto de montaje:
sudo umount /mnt/labex-virtual
Confirme que ya no está montado:
findmnt /mnt/labex-virtual
No se espera ninguna salida, y findmnt devuelve un estado distinto de cero porque no encontró ningún montaje activo en ese destino. El directorio del punto de montaje sigue existiendo, pero el contenido de la imagen ya no está disponible a través de él hasta que vuelva a montar la imagen.
Inspeccione tablas de particiones de forma segura
En este paso, utilizará fdisk en modo de listado de solo lectura y distinguirá entre una tabla de particiones y una firma de sistema de archivos.
Muestre los discos y las particiones visibles del sistema:
sudo fdisk -l
La opción -l significa list (listar). Informa sobre los tamaños de los discos, los tamaños de sector, los tipos de tabla de particiones y las particiones sin modificarlos. Nunca inicie una sesión interactiva de particionado en un disco de producción que no conozca.
Ahora inspeccione la imagen virtual:
cd /home/labex/project/storage-lab
sudo fdisk -l virtual.img
La imagen tiene un tamaño de disco, pero no contiene entradas de partición. En este ejemplo controlado, ext4 se creó directamente en toda la imagen. En un disco físico, una disposición habitual es:
disk device -> partition table -> partition -> filesystem -> mount point
Cree una segunda imagen vacía para compararla:
truncate -s 64M partition-demo.img
sudo fdisk -l partition-demo.img
Tampoco contiene una tabla de particiones. Compare las firmas de los sistemas de archivos con wipefs en su modo predeterminado de solo lectura:
sudo wipefs virtual.img partition-demo.img
virtual.img debe mostrar una firma ext4, mientras que la imagen vacía de comparación no debe mostrar ninguna firma de sistema de archivos. No utilice la opción destructiva wipefs -a en este laboratorio.
Cree y valide un fstab de práctica
En este paso, aprenderá los seis campos de una entrada de fstab y probará de forma segura un archivo de práctica independiente sin modificar /etc/fstab.
El sistema lee /etc/fstab para decidir qué sistemas de archivos deben montarse de forma persistente. Vea sus líneas que no son comentarios sin editar el archivo:
grep -Ev '^\s*(#|$)' /etc/fstab
Una entrada de fstab tiene seis campos separados por espacios en blanco:
source mount-point filesystem-type options dump fsck-order
Para las particiones físicas, UUID=<value> suele ser más seguro que un nombre como /dev/sdb1, porque los nombres de los dispositivos pueden cambiar cuando se modifica el orden de detección del hardware.
Obtenga el UUID de la imagen y coloque un ejemplo comentado con UUID en un archivo de práctica:
cd /home/labex/project/storage-lab
uuid=$(sudo blkid -s UUID -o value virtual.img)
printf '## Real block device example: UUID=%s /mnt/data ext4 defaults,nofail 0 2\n' "$uuid" > practice-fstab
Como este laboratorio utiliza un archivo normal en lugar de una partición física, la entrada activa de práctica emplea la ruta absoluta de la imagen y la opción loop:
printf '%s\n' '/home/labex/project/storage-lab/virtual.img /mnt/labex-virtual ext4 loop,nofail 0 2' >> practice-fstab
Muestre y valide el archivo de práctica. --tab-file indica a findmnt que no utilice el /etc/fstab real:
cat practice-fstab
findmnt --verify --tab-file practice-fstab
El resumen final debe informar 0 parse errors y 0 errors. También informará de una advertencia porque el origen es un archivo normal. Esta advertencia es esperada, ya que este laboratorio utiliza intencionadamente un sistema de archivos loop respaldado por un archivo en lugar de un dispositivo de bloque físico.
Use el archivo de práctica para realizar un montaje controlado. La opción -T indica a mount que lea el archivo fstab alternativo especificado:
sudo mount -T practice-fstab /mnt/labex-virtual
findmnt /mnt/labex-virtual
El archivo welcome.txt creado anteriormente aún debe existir, lo que demuestra que el montaje expone los datos almacenados en el sistema de archivos:
cat /mnt/labex-virtual/welcome.txt
Desmóntelo de nuevo para que el laboratorio finalice en un estado seguro y desconectado:
sudo umount /mnt/labex-virtual
Ha validado la sintaxis de un montaje persistente sin cambiar la configuración de arranque del sistema. Un error en el /etc/fstab real puede interrumpir el arranque, por lo que los administradores suelen validar los cambios antes de reiniciar.
Resumen
Ha conectado las principales capas de almacenamiento de Linux: dispositivos, particiones, sistemas de archivos y puntos de montaje. Utilizó lsblk, blkid y findmnt para inspeccionarlas y, después, comparó el uso de todo el sistema de archivos mediante df con el uso de archivos y directorios mediante du.
Creó y etiquetó un sistema de archivos ext4 dentro de una imagen desechable, lo montó mediante un dispositivo loop, conservó los datos después de desmontarlo e inspeccionó la información de las particiones sin modificar discos reales. Por último, aprendió los seis campos de fstab, comprendió la importancia de los UUID estables y validó un fstab de práctica independiente antes de utilizarlo.



