Saltar la navegación

Un poco de extN. Los i-nodos

En este punto se va a explicar de forma breve cómo los sistemas de ficheros ext2, ext3 y ext4 almacenan y organizan los ficheros en el disco.

La información de un fichero se almacena en el disco en bloques de datos que pueden estar dispersos. Cada fichero posee un i-nodo (nodo-i, i-node) que guarda los números de sus bloques de datos.

Un i-nodo además de la lista de bloques de datos almacena otras informaciones del fichero como su tipo (fichero regular, directorio, enlace simbólico, etc.), su tamaño, propietario, permisos, fecha de creación, etc.:

Campos de un inodo

Cada dispositivo de almacenamiento posee su propia tabla de i-nodos, y como cada i-nodo gestiona un archivo, un sistema de ficheros puede contener como máximo el número de i-nodos que quepa en su tabla. Este es otro motivo por el cual asignar cuotas de disco a los usuarios, pero no por cantidad de espacio, sino por cantidad de i-nodos, pues si no se hiciera, un usuario podría crear muchos ficheros de 0 byte, así no consumiría su cuota de espacio, y al no tener cuota de i-nodos podría ocuparlos todos y bloquear el sistema.

Disco con extN

Los i-nodos se identifican por un número llamado número-i. Podemos consultar el número-i de un fichero con la orden stat, además de otros datos (fechas, tamaño, dueño, grupo, etc.).

$ stat /etc/passwd
  Fichero: «/etc/passwd»
  Tamaño: 1553          Bloques: 8          Bloque E/S: 4096   fichero regular
Dispositivo: 801h/2049d    Nodo-i: 677970      Enlaces: 1
Acceso: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Acceso: 2013-08-28 20:20:39.583081993 +0200
Modificación: 2013-08-26 19:27:19.061091809 +0200
      Cambio: 2013-08-26 19:27:19.069091809 +0200
    Creación: -

Los directorios de GNU/Linux, como ya se ha dicho, son también ficheros. Estos pueden imaginarse como una tabla de doble entrada donde están los nombres de los ficheros que contiene y los números-i de los i-nodos que los gestionan.

Directorio

Podemos consultar datos del sistema de ficheros donde se encuentra un archivo, usando el comando stat con la opción -f; la cual nos informa del total de i-nodos, de los i-nodos libres, del tipo de sistema de fichero, etc.

$ stat -f /etc/passwd
  Fichero: "/etc/passwd"
    ID: 7499c574e4c27dbf Longnombre: 255     Tipo: ext2/ext3
Tam. bloque: 4096       Tam. bloque fundamental: 4096
Bloques: Total: 3604348    Libres: 2622033    Disponibles: 2438942
Nodos-i: Total: 915712     Libres: 758109

 

Licencia: licencia de software libre GPL