Introducción
¡Bienvenido a este laboratorio sobre el sistema de archivos y la gestión de discos en Linux! Este laboratorio está diseñado para principiantes que apenas comienzan a explorar el mundo de la administración de sistemas Linux. Te 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ás experiencia práctica con las herramientas fundamentales de gestión de discos en Linux.
Visualización del uso del disco con df
El comando df (disk free) es tu herramienta principal para verificar el uso del espacio en disco en tu sistema Linux. Exploremos cómo utilizarlo:
Abre tu terminal. Deberías estar en el directorio
/home/labex/project. Si no estás seguro, siempre puedes verificar tu directorio actual con el comandopwd.Ejecuta el siguiente comando para ver el uso del disco:
dfVerás 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/nvme1n1 104806400 57754052 47052348 56% /etc/hosts¡No te preocupes 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 se está utilizando actualmente.Available: Muestra cuánto espacio libre queda.Use%: Muestra el porcentaje del sistema de archivos que está en uso.Mounted on: Muestra dónde está montado el sistema de archivos en el árbol de directorios.
Ahora, hagamos que esta salida sea más legible para los humanos. Ejecuta:
df -hLa opción
-hsignifica "human-readable" (legible por humanos). Verás 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/nvme1n1 100G 56G 45G 56% /etc/hostsMucho mejor, ¿verdad? Ahora los tamaños están en GB y MB, lo cual es más fácil de entender.
Si deseas verificar el espacio utilizado por el sistema de archivos que contiene un archivo o directorio específico, puedes pasar esa ruta a
df:df -h /etc/hostsEsto mostrará información solo para el sistema de archivos que contiene
/etc/hosts. En este entorno, ese sistema de archivos suele ser/dev/nvme1n1.
El comando df es increíblemente útil para verificar rápidamente cuánto espacio en disco te queda. Si alguna vez tienes problemas porque tu sistema indica que se está quedando sin espacio, df suele ser el primer comando que utilizarás para investigar.
Examen del tamaño de los directorios con du
Aunque 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.
Comencemos usando
duen su forma más simple. Ejecuta:du ~Verás 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 hagámoslo más manejable.
Para una salida más legible, utiliza la opción
-h:du -h ~La opción
-h, al igual que condf, hace que la salida sea legible para humanos. Verás los tamaños en KB, MB o GB según corresponda.A menudo, solo queremos saber el tamaño total de un directorio. Para esto, utiliza:
du -sh ~Aquí,
-ssignifica "summarize" (resumir) y~representa tu directorio personal (home). Este comando te mostrará el tamaño total de todo lo que hay en tu directorio personal.Para ver los tamaños de los subdirectorios inmediatos en tu directorio personal, utiliza:
du -h --max-depth=1 ~Esto muestra el tamaño de cada subdirectorio con un nivel de profundidad. La opción
--max-depth=1limita qué tan profundo recursaráduen los subdirectorios.Verifiquemos el tamaño de los elementos en tu directorio personal:
du -sh ~/*Esto mostrará el tamaño de cada archivo y directorio no oculto directamente bajo tu directorio personal.
Aquí tienes un comando potente para encontrar los elementos más grandes en tu directorio personal:
du -h ~ | sort -rh | head -n 10Desglosémoslo:
du -h ~lista todos los archivos y directorios en tu directorio personal con sus tamaños.sort -rhordena esta lista en orden inverso (el más grande primero) y en formato legible para humanos.head -n 10muestra 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 intentas liberar espacio en disco. Te ayuda a identificar qué directorios o archivos están ocupando más espacio, para que sepas dónde enfocar tus esfuerzos de limpieza.
Creación y gestión de un disco virtual
Antes de comenzar, entendamos qué es un disco virtual. Un disco virtual es simplemente un archivo que actúa como una unidad de disco física. Piénsalo como crear 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 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, comprendamos algunos conceptos importantes:
Sistema de archivos (Filesystem): Piensa 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.
Montaje (Mounting): El montaje es el proceso de hacer que un sistema de archivos sea accesible para el sistema operativo. Cuando montas un sistema de archivos, le estás 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).
Particiones: Una partición es una sección de un disco que se trata como una unidad separada. Piénsalo como dividir un disco duro grande en secciones más pequeñas e independientes. Las razones para particionar incluyen:
- Separar archivos del sistema de archivos de usuario.
- Usar diferentes sistemas de archivos para diferentes propósitos.
- Facilitar las copias de seguridad.
- Limitar el impacto de las fallas de disco.
Creemos y trabajemos con un disco virtual:
Primero, creemos un disco virtual de 256MB usando el comando
dd:dd if=/dev/zero of=virtual.img bs=1M count=256Desglosamos este comando:
ddes una utilidad para copiar y convertir archivos.if=/dev/zerosignifica "input file is /dev/zero" (un archivo especial que proporciona ceros infinitos).of=virtual.imgsignifica "output file is virtual.img" (nuestro nuevo archivo de disco virtual).bs=1Mestablece el tamaño de bloque en 1 megabyte (cuántos datos copiar a la vez).count=256significa copiar 256 bloques (resultando en un archivo de 256MB).
Esto crea un archivo vacío lleno de ceros que usaremos como nuestro disco virtual.
Verifica el tamaño del archivo:
ls -lh virtual.imgDeberías ver que
virtual.imgtiene exactamente 256MB.Ahora, formateemos 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.
- Configura la estructura básica necesaria para almacenar archivos y directorios.
- Es similar a formatear una unidad USB nueva antes del primer uso.
El sistema de archivos ext4 es el predeterminado para muchas distribuciones de Linux porque es confiable y está bien probado.
A continuación, necesitamos crear un punto de montaje. Este es el directorio donde aparecerá el contenido de nuestro disco virtual:
sudo mkdir /mnt/virtualdiskPiensa en un punto de montaje como una "ventana" hacia tu disco virtual. Después de montarlo, cuando mires dentro de este directorio, en realidad estarás viendo el contenido del disco virtual.
Ahora podemos montar el disco virtual:
sudo mount -o loop virtual.img /mnt/virtualdiskDesglosamos lo que está sucediendo:
- La opción
-o loople dice a Linux que trate nuestro archivo como si fuera un dispositivo de disco real. virtual.imges nuestra fuente (el disco virtual que creamos)./mnt/virtualdiskes donde queremos que aparezca el contenido.
Esto es similar a lo que sucede automáticamente cuando conectas una unidad USB, excepto que lo estamos haciendo manualmente con nuestro archivo de disco virtual.
- La opción
Verifiquemos que el disco esté montado:
mount | grep virtualdiskDeberías ver una línea que indica que
virtual.imgestá montado en/mnt/virtualdisk.Ahora que está montado, podemos usarlo como cualquier otro directorio. Creemos un archivo:
sudo touch /mnt/virtualdisk/testfile ls /mnt/virtualdiskDeberías ver
testfileen la lista.Cuando termines de usar el disco virtual, debes desmontarlo:
sudo umount /mnt/virtualdiskDesmontar 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 crear, formatear y montar un disco virtual es muy similar a lo que sucede cuando conectas un nuevo disco duro o 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 especificado 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 necesitas crear particiones. Aunque no podemos modificar las particiones de disco reales en este entorno virtual, podemos explorar cómo usar fdisk para ver información de particiones.
Primero, veamos información sobre todas las particiones de disco:
sudo fdisk -lEsto mostrará información sobre todos los dispositivos de disco y sus particiones. Verás detalles sobre el tamaño del disco, el número de sectores y la tabla de particiones.
Ahora, veamos la información de partición de nuestro disco virtual:
sudo fdisk -l virtual.imgEsto te mostrará la tabla de particiones del disco virtual. Dado que creamos el sistema de archivos directamente en la imagen de disco sin particionar, es posible que veas un mensaje indicando que no contiene una tabla de particiones válida.
En un sistema real, usarías fdisk de forma interactiva para crear, eliminar o modificar particiones. Aquí tienes una breve descripción de cómo funcionaría:
- Iniciarías
fdiskconsudo fdisk /dev/sdX(reemplaza X con la letra apropiada para el disco que deseas particionar). - Usarías 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.
Recuerda, modificar particiones puede provocar la pérdida de datos, así que siempre ten cuidado y realiza 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. Aunque es una herramienta esencial para el particionamiento de discos, ten cuidado al usar fdisk para alterar particiones en un sistema que contenga datos críticos; los cambios incorrectos pueden provocar la pérdida de datos.
Resumen
¡Felicidades! En este laboratorio, has aprendido a:
- Ver el uso del disco con
df. - Examinar el tamaño de los directorios con
du. - Crear, formatear, montar y desmontar un disco virtual.
- Ver información de particiones con
fdisk.
Estas habilidades forman una 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, intenta escribir un script de shell que encuentre los 10 archivos o directorios más grandes en tu directorio personal y muestre sus tamaños en un formato legible para humanos. Esto combinará varios de los comandos que has aprendido en este laboratorio.
Recuerda, la práctica es clave para dominar estos conceptos. No dudes en experimentar con estos comandos (en un entorno seguro) para profundizar tu comprensión. ¡Buena suerte en tu viaje de aprendizaje continuo en la administración de sistemas Linux!



