Gestión de Discos y Sistemas de Archivos

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido a este laboratorio sobre Gestión de Discos y Sistemas de Archivos en Linux! Este laboratorio está diseñado para principiantes que están comenzando a explorar el mundo de la administración de sistemas Linux. Le guiaremos a través de comandos y conceptos esenciales relacionados con la gestión del espacio en disco, la creación de discos virtuales y el mantenimiento de sistemas de archivos. Al finalizar este laboratorio, tendrá experiencia práctica con las herramientas fundamentales de gestión de discos en Linux.

Este es un Laboratorio Guiado, que proporciona instrucciones paso a paso para ayudarle a aprender y practicar. Siga las instrucciones cuidadosamente para completar cada paso y ganar experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 94%. Ha recibido una tasa de valoraciones positivas del 99% por parte de los alumnos.

Visualización del uso del disco con df

El comando df (disk free) es su herramienta principal para verificar el uso del espacio en disco en su sistema Linux. Exploremos cómo utilizarlo:

  1. Abra su terminal. Debería estar en el directorio /home/labex/project. Si no está seguro, siempre puede verificar su directorio actual con el comando pwd.

  2. Ejecute el siguiente comando para ver el uso del disco:

    df

    Verá una salida similar a esta:

    Filesystem     1K-blocks      Used Available Use% Mounted on
    overlay         20971520    128744  20842776   1% /
    tmpfs              65536         0     65536   0% /dev
    tmpfs            3995004         0   3995004   0% /sys/fs/cgroup
    shm                65536         0     65536   0% /dev/shm
    /dev/vdb       104806400  57754052  47052348  56% /etc/hosts

    ¡No se preocupe si esto parece confuso al principio! Vamos a desglosarlo:

    • Filesystem: Esta columna muestra el nombre del disco o partición.
    • 1K-blocks: Es el tamaño total del sistema de archivos en bloques de 1 kilobyte.
    • Used: Muestra cuánto espacio está actualmente en uso.
    • Available: Muestra cuánto espacio libre queda.
    • Use%: Muestra el porcentaje del sistema de archivos que está en uso.
    • Mounted on: Muestra en qué parte del árbol de directorios está montado el sistema de archivos.
  3. Ahora, hagamos que esta salida sea más legible para los humanos. Ejecute:

    df -h

    La opción -h significa "human-readable" (legible por humanos). Verá una salida como esta:

    Filesystem      Size  Used Avail Use% Mounted on
    overlay          20G  126M   20G   1% /
    tmpfs            64M     0   64M   0% /dev
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    shm              64M     0   64M   0% /dev/shm
    /dev/vdb        100G   56G   45G  56% /etc/hosts

    Mucho mejor, ¿verdad? Ahora los tamaños están en GB y MB, lo cual es más fácil de entender.

  4. Si desea verificar el espacio en un sistema de archivos específico, puede indicarlo:

    df -h /dev/vdb

    Esto mostrará información únicamente para el sistema de archivos /dev/vdb.

El comando df es increíblemente útil para comprobar rápidamente cuánto espacio en disco le queda. Si alguna vez se encuentra con problemas en los que su sistema indica que se está quedando sin espacio, df suele ser el primer comando que utilizará para investigar.

Examen del tamaño de los directorios con du

Mientras que df nos da una visión general del uso del disco, a veces necesitamos profundizar más. Ahí es donde entra du (disk usage). Nos ayuda a entender qué directorios y archivos están ocupando más espacio.

  1. Comencemos usando du en su forma más simple. Ejecute:

    du ~

    Verá una larga lista de números y nombres de directorios. Cada número representa el tamaño del directorio en kilobytes. Esto puede ser abrumador, así que vamos a hacerlo más manejable.

  2. Para obtener una salida más legible, use la opción -h:

    du -h ~

    La opción -h, al igual que con df, hace que la salida sea legible para humanos. Verá los tamaños en KB, MB o GB según corresponda.

  3. A menudo, solo queremos saber el tamaño total de un directorio. Para esto, use:

    du -sh ~

    Aquí, -s significa "summarize" (resumir) y ~ representa su directorio personal (home). Este comando le mostrará el tamaño total de todo lo que hay en su directorio personal.

  4. Para ver los tamaños de los subdirectorios inmediatos en su home, use:

    du -h --max-depth=1 ~

    Esto muestra el tamaño de cada subdirectorio a un nivel de profundidad. La opción --max-depth=1 limita qué tanto profundizará du en los subdirectorios.

  5. Comprobemos el tamaño de los elementos en su directorio personal:

    du -sh ~/*

    Esto mostrará el tamaño de cada archivo y directorio no oculto directamente bajo su directorio personal.

  6. Aquí tiene un comando potente para encontrar los elementos más grandes en su directorio personal:

    du -h ~ | sort -rh | head -n 10

    Vamos a desglosarlo:

    • du -h ~ enumera todos los archivos y directorios en su home con sus tamaños.
    • sort -rh ordena esta lista en orden inverso (el más grande primero) y en formato legible para humanos.
    • head -n 10 muestra solo las primeras 10 líneas de la salida.
    • | es una tubería (pipe), que pasa la salida de un comando como entrada al siguiente.

    Este comando es un gran ejemplo de cómo podemos combinar comandos simples de Linux para realizar operaciones más complejas.

El comando du es invaluable cuando intenta liberar espacio en disco. Le ayuda a identificar qué directorios o archivos están ocupando más espacio, para que sepa dónde centrar sus esfuerzos de limpieza.

Creación y gestión de un disco virtual

Antes de profundizar, entendamos qué es un disco virtual. Un disco virtual es simplemente un archivo que actúa como una unidad de disco física. Piense en ello como la creación de un archivo contenedor que el sistema operativo puede tratar como si fuera un disco duro real. Esto es similar a cómo las máquinas virtuales utilizan archivos de disco virtual para almacenar sus datos.

¿Por qué querríamos hacer esto? Los discos virtuales son útiles para:

  • Probar operaciones de disco de forma segura sin arriesgar el hardware real.
  • Crear espacios de almacenamiento aislados.
  • Aprender sobre la gestión de discos sin necesidad de hardware físico adicional.
  • Crear imágenes de respaldo de discos reales.

Comprensión de conceptos clave

Antes de proceder con la parte práctica, entendamos algunos conceptos importantes:

  1. Sistema de archivos (Filesystem): Piense en un sistema de archivos como la forma en que se organizan los archivos y carpetas en un disco. Es como un sistema de archivo en una oficina: determina cómo se almacenan y recuperan los datos. Los sistemas de archivos comunes en Linux incluyen ext4 (que usaremos), XFS y btrfs.

  2. Montaje (Mounting): El montaje es el proceso de hacer que un sistema de archivos sea accesible para el sistema operativo. Cuando monta un sistema de archivos, le está diciendo a Linux: "haz que el contenido de este disco esté disponible en este directorio específico". Es similar a:

    • Conectar una unidad USB (la conexión física).
    • Luego decirle a la computadora dónde mostrar su contenido (el punto de montaje).
  3. Particiones: Una partición es una sección de un disco que se trata como una unidad independiente. Piense en ello como dividir un disco duro grande en secciones más pequeñas e independientes. Las razones para particionar incluyen:

    • Separar los archivos del sistema de los archivos del usuario.
    • Usar diferentes sistemas de archivos para diferentes propósitos.
    • Facilitar las copias de seguridad.
    • Limitar el impacto de los fallos del disco.

Vamos a crear y trabajar con un disco virtual:

  1. Primero, creemos un disco virtual de 256MB usando el comando dd:

    dd if=/dev/zero of=virtual.img bs=1M count=256

    Desglosemos este comando:

    • dd es una utilidad para copiar y convertir archivos.
    • if=/dev/zero significa "archivo de entrada es /dev/zero" (un archivo especial que proporciona ceros infinitos).
    • of=virtual.img significa "archivo de salida es virtual.img" (nuestro nuevo archivo de disco virtual).
    • bs=1M establece el tamaño del bloque en 1 megabyte (cuántos datos copiar a la vez).
    • count=256 significa copiar 256 bloques (lo que resulta en un archivo de 256MB).

    Esto crea un archivo vacío lleno de ceros que usaremos como nuestro disco virtual.

  2. Verifique el tamaño del archivo:

    ls -lh virtual.img

    Debería ver que virtual.img tiene exactamente 256MB.

  3. Ahora, vamos a formatear este disco virtual con un sistema de archivos ext4:

    sudo mkfs.ext4 virtual.img

    ¿Qué está pasando aquí? Este comando:

    • Crea un nuevo sistema de archivos ext4 dentro de nuestro archivo de disco virtual.
    • Establece la estructura básica necesaria para almacenar archivos y directorios.
    • Es similar a formatear una nueva unidad USB antes de su primer uso.

    El sistema de archivos ext4 es el predeterminado para muchas distribuciones de Linux porque es confiable y está muy probado.

  4. A continuación, necesitamos crear un punto de montaje. Este es el directorio donde aparecerá el contenido de nuestro disco virtual:

    sudo mkdir /mnt/virtualdisk

    Piense en un punto de montaje como una "ventana" hacia su disco virtual. Después de montar, cuando mire dentro de este directorio, estará viendo realmente el contenido del disco virtual.

  5. Ahora podemos montar el disco virtual:

    sudo mount -o loop virtual.img /mnt/virtualdisk

    Desglosemos lo que está sucediendo:

    • La opción -o loop le indica a Linux que trate nuestro archivo como si fuera un dispositivo de disco real.
    • virtual.img es nuestra fuente (el disco virtual que creamos).
    • /mnt/virtualdisk es donde queremos que aparezca el contenido.

    Esto es similar a lo que sucede automáticamente cuando conecta una unidad USB, excepto que lo estamos haciendo manualmente con nuestro archivo de disco virtual.

  6. Verifiquemos que el disco esté montado:

    mount | grep virtualdisk

    Debería ver una línea indicando que virtual.img está montado en /mnt/virtualdisk.

  7. Ahora que está montado, podemos usarlo como cualquier otro directorio. Vamos a crear un archivo:

    sudo touch /mnt/virtualdisk/testfile
    ls /mnt/virtualdisk

    Debería ver testfile en la lista.

  8. Cuando haya terminado de usar el disco virtual, debe desmontarlo:

    sudo umount /mnt/virtualdisk

    El desmontaje elimina el sistema de archivos de ese directorio, asegurando que el sistema operativo finalice todas las operaciones de lectura y escritura pendientes antes de desconectarlo. No desmontar correctamente puede provocar la corrupción de datos. Aunque la sintaxis del comando se centra en desmontar el directorio, internamente el sistema operativo sabe que este directorio corresponde a la imagen de disco montada.

Este proceso de creación, formateo y montaje de un disco virtual es muy similar a lo que sucede cuando conecta un nuevo disco duro o una memoria USB. La principal diferencia es que estamos haciendo todo con un archivo en lugar de un dispositivo físico.

Montar un sistema de archivos significa adjuntarlo a un directorio específico para que el sistema operativo pueda acceder a los datos dentro del sistema de archivos. En este laboratorio, el archivo de imagen de disco virtual se trata como si fuera un disco físico, y el montaje hace que su contenido esté disponible en un directorio particular (por ejemplo, /mnt/virtualdisk).

Gestión de particiones de disco con fdisk

En un sistema real, antes de poder crear un sistema de archivos, a menudo es necesario crear particiones. Aunque no podemos modificar las particiones de disco reales en este entorno virtual, podemos explorar cómo usar fdisk para ver la información de las particiones.

  1. Primero, veamos la información sobre todas las particiones de disco:

    sudo fdisk -l

    Esto mostrará información sobre todos los dispositivos de disco y sus particiones. Verá detalles sobre el tamaño del disco, el número de sectores y la tabla de particiones.

  2. Ahora, veamos la información de la partición de nuestro disco virtual:

    sudo fdisk -l virtual.img

    Esto le mostrará la tabla de particiones del disco virtual. Dado que creamos el sistema de archivos directamente en la imagen del disco sin particionar, es posible que vea un mensaje indicando que no contiene una tabla de particiones válida.

En un sistema real, usaría fdisk de forma interactiva para crear, eliminar o modificar particiones. Aquí hay un breve resumen de cómo funcionaría:

  • Iniciaría fdisk con sudo fdisk /dev/sdX (reemplace X con la letra correspondiente al disco que desea particionar).
  • Usaría el comando 'n' para crear una nueva partición.
  • 'd' eliminaría una partición.
  • 't' cambiaría el ID del sistema de una partición (que indica el uso previsto de la partición).
  • 'w' escribiría los cambios y saldría.

Recuerde, modificar particiones puede provocar la pérdida de datos, así que siempre tenga cuidado y haga copias de seguridad de los datos importantes antes de realizar cambios en las particiones del disco.

Fdisk no se limita a mostrar información de particiones. También puede crear, eliminar y modificar particiones de disco de forma interactiva. Si bien es una herramienta esencial para el particionamiento de discos, sea cauteloso al usar fdisk para alterar particiones en un sistema que contenga datos críticos; los cambios inadecuados pueden provocar la pérdida de datos.

Resumen

¡Felicidades! En este laboratorio, ha aprendido a:

  1. Ver el uso del disco con df.
  2. Examinar el tamaño de los directorios con du.
  3. Crear, formatear, montar y desmontar un disco virtual.
  4. Ver información de particiones con fdisk.

Estas habilidades constituyen la base para tareas más avanzadas de administración de sistemas Linux. Son cruciales para gestionar el almacenamiento, solucionar problemas de espacio en disco y mantener la salud del sistema de archivos en sistemas Linux.

Como desafío adicional, intente escribir un script de shell que encuentre los 10 archivos o directorios más grandes en su directorio personal y muestre sus tamaños en un formato legible para humanos. Esto combinará varios de los comandos que ha aprendido en este laboratorio.

Recuerde, la práctica es clave para dominar estos conceptos. No dude en experimentar con estos comandos (en un entorno seguro) para profundizar su comprensión. ¡Buena suerte en su viaje de aprendizaje continuo en la administración de sistemas Linux!