Montaje del sistema de archivos Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El montaje de sistemas de archivos en Linux es una habilidad fundamental para los administradores de sistemas y los usuarios técnicos. Este proceso permite que el sistema operativo acceda e interactúe con los dispositivos de almacenamiento y sus sistemas de archivos adjuntándolos a ubicaciones específicas en la estructura de directorios.

En este laboratorio, aprenderá a crear un dispositivo de almacenamiento simulado, formatearlo con un sistema de archivos y montarlo para acceder a su contenido. También explorará diferentes opciones de montaje que controlan cómo se puede usar el sistema de archivos, como restringir los permisos de ejecución o hacerlo de solo lectura.

Al final de este laboratorio, comprenderá:

  • Cómo crear y formatear un dispositivo de almacenamiento en Linux
  • El proceso de montaje (mounting) y desmontaje (unmounting) de sistemas de archivos
  • Cómo usar las opciones de montaje (mount options) para controlar el acceso al sistema de archivos
  • Cómo verificar el estado de los sistemas de archivos montados

Estas habilidades son esenciales para administrar dispositivos de almacenamiento en entornos Linux, desde discos duros locales hasta medios extraíbles y almacenamiento en red.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/SystemInformationandMonitoringGroup -.-> linux/df("Disk Space Reporting") linux/SystemInformationandMonitoringGroup -.-> linux/mount("File System Mounting") linux/SystemInformationandMonitoringGroup -.-> linux/dd("File Converting/Copying") subgraph Lab Skills linux/echo -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/cat -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/cd -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/mkdir -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/df -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/mount -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} linux/dd -.-> lab-271335{{"Montaje del sistema de archivos Linux"}} end

Creación y Montaje de un Dispositivo de Almacenamiento

En este paso, creará un dispositivo de almacenamiento simulado, lo formateará con un sistema de archivos y lo montará para que sea accesible dentro de la estructura de directorios de Linux.

Primero, naveguemos al directorio del proyecto donde trabajará durante este laboratorio:

cd ~/project

Crear un Dispositivo de Almacenamiento Simulado

Ahora, cree un dispositivo de almacenamiento simulado utilizando el comando dd. Este comando creará un archivo de un tamaño específico que actuará como su dispositivo de almacenamiento:

dd if=/dev/zero of=storage_device.img bs=1M count=100

Este comando crea un archivo de 100MB llamado storage_device.img. Entendamos cada parte de este comando:

  • if=/dev/zero: El archivo de entrada es /dev/zero, que es un archivo especial que produce un flujo interminable de ceros
  • of=storage_device.img: El archivo de salida se llama storage_device.img
  • bs=1M: El tamaño del bloque (block size) se establece en 1 megabyte
  • count=100: Copia 100 bloques, lo que resulta en un archivo de 100MB

Debería ver una salida similar a esta:

100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0331261 s, 3.2 GB/s

Formatear el Dispositivo de Almacenamiento con un Sistema de Archivos

Antes de que pueda usar el dispositivo de almacenamiento, necesita formatearlo con un sistema de archivos. El comando mkfs.ext4 formatea el archivo con el sistema de archivos ext4, que se usa comúnmente en Linux:

mkfs.ext4 storage_device.img

Verá varias líneas de salida a medida que el comando crea el sistema de archivos, similar a:

mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 25600 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

Crear un Punto de Montaje (Mount Point)

Antes de montar el dispositivo, cree un directorio que servirá como punto de montaje (mount point). Esta es la ubicación donde el contenido de su sistema de archivos será accesible:

mkdir -p ~/project/mount_point

Montar el Dispositivo de Almacenamiento

Ahora, monte el dispositivo de almacenamiento en el punto de montaje (mount point) utilizando el comando mount:

sudo mount -t ext4 storage_device.img ~/project/mount_point

Este comando le dice a Linux que:

  • Monte un dispositivo de tipo (-t) ext4
  • El dispositivo a montar es storage_device.img
  • La ubicación de montaje es ~/project/mount_point

Verificar el Montaje

Para verificar que el dispositivo esté montado correctamente, use el comando df (disk free) con opciones para mostrar el tipo de sistema de archivos y los tamaños legibles por humanos:

df -hT | grep mount_point

Debería ver una salida similar a:

/dev/loop0     ext4      90M   24K   83M   1% /home/labex/project/mount_point

Probar el Sistema de Archivos Montado

Para probar que el sistema de archivos funciona correctamente, cree un archivo de prueba en el directorio montado:

echo "This is a test file" | sudo tee ~/project/mount_point/test.txt > /dev/null

Lea el archivo para verificar que se creó correctamente:

cat ~/project/mount_point/test.txt

Debería ver el texto "This is a test file" mostrado, confirmando que su sistema de archivos está correctamente montado y funcionando.

Entender Lo Que Sucedió

Ha realizado con éxito:

  1. Creación de un archivo que simula un dispositivo de almacenamiento
  2. Formateo con el sistema de archivos ext4
  3. Creación de un directorio de punto de montaje (mount point)
  4. Montaje del sistema de archivos en ese directorio
  5. Confirmación de que el montaje fue exitoso
  6. Creación y lectura de un archivo en el sistema de archivos montado

Este proceso es similar a conectar y usar un disco duro externo o una memoria USB, pero usando un archivo para simular el dispositivo físico.

Opciones de Montaje para Seguridad y Control de Acceso

En este paso, aprenderá a usar las opciones de montaje (mount options) para controlar cómo se puede acceder al sistema de archivos. Las opciones de montaje proporcionan control adicional sobre el comportamiento del sistema de archivos, como restringir los permisos de ejecución o hacer que un sistema de archivos sea de solo lectura.

Desmontar el Sistema de Archivos Actual

Antes de aplicar nuevas opciones de montaje, debe desmontar el sistema de archivos actual:

sudo umount ~/project/mount_point

Si recibe un mensaje de error que indica que el dispositivo está ocupado, asegúrese de que no se encuentra actualmente en el directorio del punto de montaje (mount point):

cd ~/project

Luego, intente desmontar nuevamente.

Montar con la Opción noexec

La opción de montaje noexec impide la ejecución de cualquier binario en el sistema de archivos montado. Esta es una característica de seguridad que puede evitar que se ejecuten scripts o programas maliciosos.

Monte el sistema de archivos con la opción noexec:

sudo mount -t ext4 -o noexec storage_device.img ~/project/mount_point

La parte -o noexec le dice a mount que use la opción noexec.

Probar la Opción noexec

Creemos un script de shell simple en el sistema de archivos montado e intentemos ejecutarlo:

echo '#!/bin/bash' | sudo tee ~/project/mount_point/test_script.sh > /dev/null
echo 'echo "This script is running"' | sudo tee -a ~/project/mount_point/test_script.sh > /dev/null

Haga que el script sea ejecutable:

chmod +x ~/project/mount_point/test_script.sh

Ahora intente ejecutar el script:

~/project/mount_point/test_script.sh

Debería ver un mensaje de error como:

bash: /home/labex/project/mount_point/test_script.sh: Permission denied

Esto confirma que la opción noexec está impidiendo la ejecución del script.

Desmontar y Volver a Montar con la Opción de Solo Lectura (Read-Only)

Ahora, intentemos montar el sistema de archivos como de solo lectura (read-only). Primero, desmontelo:

sudo umount ~/project/mount_point

Luego, móntelo con la opción de solo lectura:

sudo mount -t ext4 -o ro storage_device.img ~/project/mount_point

La parte -o ro le dice a mount que use la opción de solo lectura.

Probar la Opción de Solo Lectura

Intente crear un nuevo archivo en el sistema de archivos montado:

touch ~/project/mount_point/new_file.txt

Debería ver un mensaje de error como:

touch: cannot touch '/home/labex/project/mount_point/new_file.txt': Read-only file system

Esto confirma que el sistema de archivos está montado como de solo lectura.

Comprobar las Opciones de Montaje

Puede verificar las opciones de montaje (mount options) actuales utilizando el comando mount:

mount | grep mount_point

Debería ver una salida que incluya ro, lo que indica que la opción de solo lectura está activa:

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,relatime)

Combinación de Opciones de Montaje

Puede combinar varias opciones de montaje separándolas con comas. Desmontemos el sistema de archivos y volvamos a montarlo con las opciones noexec y ro:

sudo umount ~/project/mount_point
sudo mount -t ext4 -o ro,noexec storage_device.img ~/project/mount_point

Verifique las opciones de montaje:

mount | grep mount_point

Debería ver ambas opciones en la salida:

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,noexec,relatime)

Entendiendo las Opciones de Montaje

Las opciones de montaje que ha explorado son importantes para la seguridad y el control del acceso:

  • noexec impide la ejecución de archivos binarios, lo que puede proteger contra código malicioso
  • ro (read-only) impide los cambios en el sistema de archivos, lo que puede proteger la integridad de los datos

Estas opciones se utilizan comúnmente en entornos de producción para implementar el principio del mínimo privilegio, dando a los sistemas y usuarios solo el acceso que necesitan.

Automatización de Montajes con /etc/fstab

En este paso, aprenderá a hacer que los montajes del sistema de archivos sean persistentes a través de reinicios del sistema configurando el archivo /etc/fstab. Esto es esencial para montar automáticamente los dispositivos de almacenamiento cuando se inicia el sistema.

Entendiendo /etc/fstab

El archivo /etc/fstab (tabla del sistema de archivos) contiene información sobre los sistemas de archivos que deben montarse automáticamente cuando se inicia el sistema. Cada línea en el archivo representa un sistema de archivos separado e incluye campos como el dispositivo, el punto de montaje (mount point), el tipo de sistema de archivos y las opciones de montaje (mount options).

Primero, veamos el contenido actual del archivo:

cat /etc/fstab

Verá varias líneas con montajes del sistema ya configurados.

Desmontar el Sistema de Archivos Actual

Antes de configurar el montaje persistente, desmonte el sistema de archivos actual:

sudo umount ~/project/mount_point

Crear una Copia de Seguridad de /etc/fstab

Siempre es una buena práctica crear una copia de seguridad antes de modificar los archivos de configuración del sistema:

sudo cp /etc/fstab /etc/fstab.backup

Agregar una Entrada a /etc/fstab

Ahora, agregue una entrada para su dispositivo de almacenamiento a /etc/fstab. Necesitará usar la ruta absoluta a su archivo de dispositivo:

echo "$(readlink -f ~/project/storage_device.img) $(readlink -f ~/project/mount_point) ext4 defaults 0 0" | sudo tee -a /etc/fstab

Este comando:

  • Usa readlink -f para obtener las rutas absolutas a sus archivos
  • Redirige la línea formateada a /etc/fstab usando tee -a con privilegios sudo

Analicemos los campos en la entrada de fstab:

  1. Dispositivo (Device) - La ruta completa a su archivo de dispositivo de almacenamiento
  2. Punto de montaje (Mount point) - La ruta completa a su directorio de montaje
  3. Tipo de sistema de archivos (File system type) - ext4
  4. Opciones de montaje (Mount options) - defaults (equivalente a rw,suid,dev,exec,auto,nouser,async)
  5. Dump - 0 (no hacer copia de seguridad con dump)
  6. Pass - 0 (no verificar el sistema de archivos en el momento del arranque)

Probar la Entrada de fstab

Pruebe si su entrada funciona correctamente utilizando el comando mount -a, que monta todos los sistemas de archivos enumerados en /etc/fstab que aún no están montados:

sudo mount -a

Si no hay mensajes de error, significa que su entrada es correcta.

Verificar el Montaje

Verifique que el sistema de archivos esté montado como se esperaba:

df -hT | grep mount_point

Debería ver su sistema de archivos montado con el tipo ext4.

Modificar la Entrada de fstab con Más Opciones

Ahora, modifiquemos la entrada para usar las opciones de montaje que aprendió en el paso anterior. Edite el archivo /etc/fstab con el editor de texto nano:

sudo nano /etc/fstab

Encuentre la línea que agregó, que debería verse así:

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 defaults 0 0

Cambie las opciones de montaje (cuarto campo) de defaults a ro,noexec:

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 ro,noexec 0 0

Presione Ctrl+O para escribir los cambios, luego Enter para confirmar y Ctrl+X para salir de nano.

Volver a Montar con las Nuevas Opciones

Desmonte el sistema de archivos y vuelva a montar todas las entradas en /etc/fstab:

sudo umount ~/project/mount_point
sudo mount -a

Verificar las Nuevas Opciones de Montaje

Verifique que el sistema de archivos esté montado con las nuevas opciones:

mount | grep mount_point

Debería ver las opciones ro y noexec en la salida.

Entendiendo los Montajes Persistentes

El archivo /etc/fstab proporciona una forma de:

  • Montar automáticamente los sistemas de archivos en el momento del arranque
  • Configurar las opciones de montaje de forma persistente
  • Controlar el orden de las comprobaciones del sistema de archivos durante el arranque

En un entorno de producción, la configuración adecuada de /etc/fstab garantiza que todos los sistemas de archivos necesarios estén disponibles cuando el sistema se inicia sin necesidad de intervención manual.

Resumen

Felicitaciones por completar el laboratorio de Montaje de Sistemas de Archivos Linux. Ha adquirido habilidades valiosas que son esenciales para cualquier administrador de sistemas Linux o usuario técnico.

En este laboratorio, ha aprendido:

  1. Creación y Formateo de Dispositivos de Almacenamiento

    • Cómo crear un dispositivo de almacenamiento simulado utilizando el comando dd
    • Cómo formatear el dispositivo con el sistema de archivos ext4 utilizando mkfs.ext4
  2. Operaciones Básicas de Montaje

    • Cómo crear un directorio de punto de montaje (mount point)
    • Cómo montar un sistema de archivos utilizando el comando mount
    • Cómo verificar el montaje utilizando df y otros comandos
  3. Opciones de Montaje para Seguridad y Control

    • Cómo usar la opción noexec para evitar la ejecución de binarios
    • Cómo usar la opción ro para crear un sistema de archivos de solo lectura (read-only)
    • Cómo combinar múltiples opciones de montaje para una seguridad mejorada
  4. Montaje Persistente con /etc/fstab

    • Cómo configurar el montaje automático de sistemas de archivos en el momento del arranque
    • Cómo establecer opciones de montaje persistentes
    • Cómo probar y verificar las entradas de fstab

Estas habilidades le permitirán:

  • Administrar varios tipos de dispositivos de almacenamiento en Linux
  • Implementar controles de seguridad a través de opciones de montaje
  • Configurar el montaje automático para el inicio del sistema
  • Solucionar problemas de montaje del sistema de archivos

A medida que continúe su viaje en Linux, encontrará estas habilidades valiosas cuando trabaje con dispositivos de almacenamiento físico, recursos compartidos de red y sistemas de archivos virtuales. Los principios que ha aprendido se aplican a muchas distribuciones de Linux y tecnologías de almacenamiento diferentes.