-->

Inodos y Enlaces (Hard y Soft Links) en Linux

Objetivo:

Comprender el funcionamiento interno de los inodos (inodes) en el sistema de ficheros de Linux, diferenciar entre enlaces físicos o duros (hard links) y enlaces simbólicos (soft links), y aprender a crearlos y gestionarlos mediante el comando ln.

Escenario:

  • Herramientas: Terminal de Linux, sistema de ficheros.
  • Conceptos clave: inodos y metadatos de ficheros, almacenamiento de nombres en los directorios, creación de enlaces duros con ln, consulta de números de inodo con ls -li, comportamiento ante borrado de ficheros origen, y creación de enlaces simbólicos mediante ln -s.

Instrucciones:

Fase 1: Creación y análisis de enlaces físicos (Hard Links):

  • Crea un fichero de texto con contenido inicial utilizando el comando echo:
  • echo "Hola" > fichero1.txt
  • Consulta el número de inodo y los detalles de enlaces físicos de un archivo:
  • ls -li fichero1.txt
  • Crea un enlace duro (hard link) apuntando al fichero original:
  • ln fichero1.txt fichero1_enlace.txt
  • Comprueba que ambos ficheros comparten el mismo número de inodo y actualizan el contador de enlaces:
  • ls -li fichero1_enlace.txt

Fase 2: Comportamiento y borrado de enlaces duros:

  • Añade contenido adicional al fichero original usando el operador de redirección >>:
  • echo "Adios" >> fichero1.txt
  • Verifica que el contenido se refleja simultáneamente en el enlace duro:
  • cat fichero1_enlace.txt
  • Elimina el fichero original con rm y comprueba que el enlace duro sigue manteniendo el acceso a los datos:
  • rm fichero1.txt

Fase 3: Creación y gestión de enlaces simbólicos (Soft Links):

  • Crea un enlace simbólico (soft link) indicando la opción -s:
  • ln -s ejemplo.txt ejemplo_enlace.txt
  • Lista los ficheros detalladamente para identificar el tipo de enlace (carácter l) y su ruta de destino:
  • ls -l
  • Comprueba el estado del enlace simbólico al eliminar el fichero original (el enlace queda huérfano/roto en color rojo):
  • rm ejemplo.txt

Preguntas de reflexión:

  1. ¿Qué es un inodo (inode) en el sistema de ficheros de Linux y qué información almacena en su interior?
  2. ¿Dónde se guardan realmente los nombres de los ficheros en la estructura de Linux si no se almacenan dentro de la tabla de inodos?
  3. ¿Cuál es la utilidad principal de crear enlaces en Linux de forma similar a los accesos directos de Windows?
  4. ¿Qué es un enlace físico o duro (hard link) y a qué elemento del sistema apunta directamente?
  5. ¿Qué ocurre con los datos de un fichero si se elimina el archivo original pero todavía existen enlaces duros apuntando a su inodo?
  6. ¿Qué limitaciones principales presentan los enlaces físicos en comparación con los enlaces simbólicos?
  7. ¿Qué es un enlace simbólico (soft link) y cómo difiere estructuralmente de un enlace duro?
  8. ¿Qué parámetro específico del comando ln se debe emplear para crear un enlace simbólico en lugar de uno físico?
  9. ¿Qué sucede con un enlace simbólico cuando el fichero o directorio original al que apuntaba es eliminado?
  10. ¿Qué opción del comando ls permite visualizar de manera explícita el número de inodo de un archivo?
Haz clic aquí para ver las soluciones y explicaciones

1. Definición y contenido de un inodo (inode)

Un inodo es una estructura de datos que almacena toda la información de metadatos de un fichero (tamaño, permisos, propietario, tipo y la ubicación de los bloques de datos en disco), excluyendo el nombre del archivo.


2. Dónde se almacenan los nombres de los ficheros

Los nombres de los ficheros no se guardan en la tabla de inodos, sino dentro de los directorios del sistema, los cuales mantienen una lista asociativa que vincula cada nombre de archivo con su respectivo número de inodo.


3. Utilidad principal de los enlaces

Permiten acceder de forma sencilla a ficheros o carpetas ubicados en rutas profundas de la jerarquía del sistema, evitando tener que desplazarse manualmente por todo el árbol de directorios mediante comandos complejos.


4. Qué es un enlace físico (hard link)

Es una etiqueta o nombre adicional que apunta exactamente al mismo inodo y bloques de datos que el fichero original. Comparte idéntica información y funciona como si fuera el archivo principal con otro nombre.


5. Comportamiento ante el borrado del fichero origen con hard links

Los datos permanecen accesibles y seguros en el disco mientras exista al menos un enlace duro apuntando al inodo. El archivo solo se elimina por completo cuando se borran absolutamente todos los enlaces físicos asociados.


6. Limitaciones de los enlaces físicos

No pueden crearse para apuntar a directorios completos (para evitar bucles en el sistema de ficheros) y tampoco pueden cruzar fronteras entre diferentes particiones o sistemas de ficheros, ya que los inodos son únicos dentro de cada partición.


7. Qué es un enlace simbólico (soft link)

Es un fichero independiente que contiene un puntero de ruta de texto apuntando al nombre del archivo original (el cual a su vez apunta al inodo). Es el equivalente directo a un acceso directo en sistemas Windows.


8. Parámetro para crear un enlace simbólico

Se debe utilizar el comando ln acompañado obligatoriamente del modificador -s (de simbólico), especificando a continuación el archivo origen y el nombre del enlace.


9. Comportamiento del enlace simbólico si se borra el original

El enlace simbólico queda inutilizable o "roto" (suele mostrarse en color rojo en la terminal), ya que el archivo o ruta de destino al que apuntaba ha desaparecido del sistema.


10. Opción para visualizar el número de inodo

Se utiliza el comando de listado detallado combinando las opciones -l (formato largo) y -i (inodo), escribiendo en la terminal ls -li.


Ficha de Laboratorio: Inodos y Enlaces (Hard y Soft Links) en Linux

Instrucciones de entrega:

  1. Rellena los campos y responde en este formulario desde tu navegador.
  2. Pulsa el botón de imprimir al final de la página.
  3. Selecciona "Guardar como PDF" en el diálogo de impresión.
  4. Entrega el archivo PDF en el aula virtual.

Alumno/a:      Fecha:      

Grupo:


Completa la ficha respondiendo a las siguientes preguntas:

  1. Comprende el concepto de inodos y metadatos.
    ¿Qué información principal almacena un inodo en Linux y qué elemento importante del archivo NO se guarda en él?

    Escribe el comando para listar los ficheros mostrando explícitamente su número de inodo:
  2. Crea y gestiona enlaces físicos (Hard Links).
    Escribe el comando para crear un enlace duro llamado fichero1_enlace.txt apuntando a fichero1.txt:

    Explica qué sucede con los datos de un fichero si se borra el archivo original pero todavía existe un enlace físico:
  3. Crea y analiza enlaces simbólicos (Soft Links).
    Escribe el comando para crear un enlace simbólico llamado ejemplo_enlace.txt apuntando a ejemplo.txt:

    ¿Qué ocurre visualmente en la terminal con el enlace simbólico si se elimina el fichero original al que apuntaba?
  4. Compara enlaces físicos y simbólicos.
    Explica brevemente la diferencia estructural fundamental entre un enlace físico (hard) y un enlace simbólico (soft):