Pixelaula.
Shell y archivos · Lección 5 de 5

Un nombre no es un archivo

Detrás de cada nombre hay un inodo, y detrás de cada disco puede haber varios. Al terminar sabrás enlazar archivos y crear un volumen que crezca.

⏱ 30–40 min▶ Video de 84 s🧪 Laboratorio con 4 misiones
00 · En 84 segundos

Primero, la idea completa

Mira el video entero o salta a la parte que quieras repasar. Después, cada idea tiene su propia escena para tocarla.

    01 · Antes de empezar

    Conceptos básicos

    Casi todos los sistemas de archivos son jerárquicos: un árbol que empieza en /, con dos tipos de objetos, archivos y directorios, que sirven para organizar y agrupar archivos. Se recorre con ls, cd y pwd. Los sistemas de archivos se implementan normalmente en el kernel, por rendimiento, aunque con FUSE también se pueden implementar en el espacio de usuario.

    • Dispositivo: un dispositivo de bloques físico, como un disco duro o un SSD, por ejemplo /dev/sda.
    • Partición: una división lógica de un dispositivo. Partir un disco en dos da /dev/sda1 y /dev/sda2.
    • Volumen: parecido a una partición, pero más flexible: puede unir varios dispositivos.
    • Superbloque: una sección especial con los metadatos del sistema de archivos: su tipo, sus inodos, bloques y estado.
    • Inodo: guarda los metadatos de un archivo, como su ubicación, tamaño y permisos. El nombre no está en el inodo: está en el directorio, que asocia nombres con números de inodo.
    lsblklista todos los dispositivos de bloques
    fdisk · partedmanejan las particiones
    blkidmuestra atributos como el UUID
    hwinfomuestra información del hardware
    file -smuestra información de sistemas de archivos y particiones
    stat · df -i · ls -imuestran y listan información de los inodos
    02 · Dos formas de apuntar

    Enlaces duros y simbólicos

    Los enlaces son archivos especiales que hacen referencia a otros archivos.

    • Un enlace duro (ln original enlace) es otro nombre para el mismo inodo. Una vez creado se trata como un archivo independiente. No puede apuntar a un directorio ni a otro sistema de archivos.
    • Un enlace simbólico (ln -s original enlace) es un archivo especial cuyo contenido es la ruta de otro archivo. Funciona como un acceso directo: si se borra el original, el enlace simbólico deja de funcionar.
    Escena 1

    A la izquierda, los nombres que guarda el directorio; a la derecha, los inodos. Crea enlaces, borra el original y lee cada nombre.

    03 · Todo es un archivo

    El sistema de archivos virtual

    El VFS (Virtual File System) es una abstracción del kernel que permite acceder a recursos muy distintos como si fueran archivos. Linux no define la estructura de un archivo: es solo una secuencia de bytes que quien lo usa debe interpretar. El VFS hace de intermediario entre las llamadas al sistema de archivos y los recursos reales, que pueden ser:

    • Locales, como ext3, XFS, FAT y NTFS: usan controladores para llegar a dispositivos de bloques, como discos duros o SSD.
    • En memoria, como tmpfs: viven en la RAM.
    • Pseudo, como procfs: también viven en memoria, pero son interfaces del kernel y de los dispositivos.
    • De red, como NFS o Samba: también usan un controlador, pero el dispositivo no está en la máquina.
    Escena 2

    Ejecutas cat sobre cuatro rutas distintas. La orden es la misma; mira por dónde viaja cada read() después del VFS.

    04 · Discos que crecen

    LVM

    El LVM (Logical Volume Manager) es una capa intermedia entre las piezas físicas (discos o particiones) y el sistema de archivos, para administrarlos de forma más flexible: permite, por ejemplo, ampliar un volumen con poco riesgo y sin apagar nada. Tiene tres componentes:

    • Volúmenes físicos (PV): una partición, un disco entero u otro dispositivo.
    • Grupos de volúmenes (VG): un conjunto de PV que aportan su espacio en común; el intermediario entre los PV y los LV.
    • Volúmenes lógicos (LV): dispositivos de bloques creados a partir de un VG, comparables a una partición. Hay que crearles un sistema de archivos antes de usarlos, y se les puede cambiar el tamaño en uso.
    PVlvmdiskscan · pvdisplay · pvcreate · pvscan
    VGvgs · vgdisplay · vgcreate · vgextend
    LVlvs · lvscan · lvcreate · lvextend
    Escena 3

    Dos discos vacíos de 10 GB. Arma un volumen de 4 GB y luego hazlo crecer a 12 GB, más de lo que cabe en un solo disco.

    05 · Ponerlo en el árbol

    Crear, montar y organizar

    • Crear un sistema de archivos, lo que en otros sistemas se llama formatear, sobre una partición o un volumen lógico: mkfs -t ext4 /dev/some_vg/some_lv.
    • Montarlo es hacerlo disponible en el árbol: mount monta o lista los montajes, y para que un montaje sea permanente se agrega a /etc/fstab.

    Para organizar los archivos existe el FHS (Filesystem Hierarchy Standard), que define los directorios, su estructura y su contenido. Lo mantiene la Linux Foundation, aunque cada distribución decide qué estructura usar.

    /bin · /sbinprogramas y órdenes del sistema (casi siempre enlaces a /usr/bin y /usr/sbin)
    /bootlas imágenes del kernel y lo necesario para arrancar
    /devlos dispositivos: terminales, discos…
    /etclos archivos de configuración del sistema
    /homelas carpetas personales
    /liblas bibliotecas compartidas
    /mnt · /mediapuntos de montaje, por ejemplo de memorias USB
    /optdepende de la distribución; puede tener archivos de los gestores de paquetes
    /proc · /sysinterfaces del kernel
    /tmparchivos temporales
    /usrprogramas de usuario, normalmente de solo lectura
    /vardatos que cambian: registros, respaldos, cachés de red
    06 · Predice

    Antes de leer la respuesta

    Laboratorio

    Tu turno: enlaza y monta

    Primero, enlaces: crea un enlace duro y uno simbólico a notas.txt, compara sus inodos y borra el original para ver cuál sobrevive. Después, discos: con los dos discos vacíos de la máquina arma un volumen lógico, dale un sistema de archivos y móntalo.

    Repaso

    Comprueba lo que entendiste

    Cada respuesta incorrecta explica por qué parece correcta y en qué falla.