Logo GNU/Linux

Linux inicia con el sistema de archivos en modo solo lectura (read-only file system)

 
 

En este artículo veremos cómo solucionar el problema del inicio de nuestro sistema operativo GNU/Linux con el sistema de archivos en modo solo lectura ( read-only file system ).

Índice General

  1. Planteamiento
  2. Soluciones
  3. Otras herramientas para reparar sistemas de archivos y dispositivos
     

  1. Planteamiento (Volver al índice General)
    En ocasiones nuestro sistema GNU/Linux inicia con alguno de nuestros sistema de archivos en modo de solo lectura (read-only mode o read-only file system). Normalmente se debe a que el kernel ha detectado que existen errores en dicho sistema de archivos. Si continuamos usando un sistema de archivos corrupto lo único que conseguimos es que empeore la situación, y es por ello que el kernel lo pone en modo de solo lectura.

    Puede ocurrir que no siempre se inicie en éste modo, es decir, que sea aleatorio, pero también puede quedarse así hasta que realicemos alguna acción para solucionar el error.

    Si el error detectado es un error físico de algún disco, no quedará más remedio que rescatar la información que se pueda y sustituir el disco. Si el error detectado es un error lógico, puede que ejecutando alguna acción recuperemos nuestro sistema de archivos corrupto.

  2.  

  3. Soluciones (Volver al índice General)
    Para solucionar estos errores, lo que tenemos que hacer es empezar ejecutando el comando fsck con el sistema de archivos corrupto desmontado. Si no funciona, tendríamos que buscar otras soluciones.

    Si el sistema de archivos corrupto no podemos desmontarlo como el raíz (/), tendremos que buscar algún método para de desmontarlo y poder ejecutar el comando fsck, y una de esas formas es utilizado un Live CD. Por el contrario, si el sistema de archivos se puede desmontar, solo tendremos que desmontarlo y ejecutar el comando fsck.

       

    • El comando fsck (Volver al índice General)
      fsck se usa para verificar y, opcionalmente, reparar uno o más sistemas de archivos de GNU/Linux.

      Synopsis

      fsck [-sAVRTMNP] [-C [fd]] [-t fstype] [filesys...] [--] [fs-specific-options]

      filesys puede ser un nombre de dispositivo (por ejemplo, /dev/hda1, /dev/sdb2, etc), un punto de montaje (por ejemplo, /, /usr, /home, etc) o una etiqueta ext2 o un identificador UUID (identificador único universal) (por ejemplo, LABEL=raíz o UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd).

      Normalmente, el programa fsck intentará manejar sistemas de archivos en diferentes unidades de disco físico en paralelo, para reducir la cantidad total de tiempo necesario para verificar todos los sistemas de archivos. En realidad, fsck es simplemente una interfaz para los diversos verificadores de sistemas de archivos (fsck.fstype, donde fstype se el tipo de sistema de archivos, como pueden ser; ext4, ntfs, fat, etc.) disponibles en GNU/Linux.

      Para más información sobre el comando fsck, ejecutar el comando de ayuda:

      $ fsck --help

      O leer la página del manual (man):

      $ man fsck
    •  

    • Solución utilizando un Live CD (Volver al índice General)
      Vamos a suponer que nuestro sistema de archivos corrupto es el raíz (/), el cual no podemos desmontar para ejecutar el comando fsck ya que nuestro sistema está en ejecución.

      Nota: Las pruebas se han hecho en un PC con sistema operativo Debian 10 y hemos utilizado el LiveCD de Debian 10. Podemos utilizar cualquier LiveCD de alguna otra distribución GNU/Linux que nos permita acceder a la interfaz de línea de comandos (CLI).

      Veamos los pasos a seguir para solucionar el problema:

      1. Arrancamos nuestro equipo con un LiveCD, LiveDVD o LiveUSB.

        En </ZeppelinuX> hemos publicado estos artículos relacionados con la creación de un USB autoarrancable:

      2. Seleccionamos la opción LiveCD del menu. En nuestro ejemplo podemos optar por una de estas dos opciones:

        • Seleccionar la opción LiveCD por defecto:
          Sistema de archivos en modo solo lectura (read-only file system)-Seleccionar la opción LiveCD por defecto en Debian
          Haz clic en la imagen para aumentarla
        •  

        • O seleccionar la opción LiveCD que nos permite elegir el idioma:
          Sistema de archivos en modo solo lectura (read-only file system)-Seleccionar la opción LiveCD que permite seleccionar el idioma
          Haz clic en la imagen para aumentarla
          En nuestro ejemplo elegiremos el idioma español:
          Sistema de archivos en modo solo lectura (read-only file system)-Seleccionar el idioma del LiveCD
          Haz clic en la imagen para aumentarla
      3. Una vez en el escritorio abrimos una terminal.
        Sistema de archivos en modo solo lectura (read-only file system)-Abrir una terminal desde el LiveCD
        Haz clic en la imagen para aumentarla
      4. Desde la terminal, nos hacemos con los privilegios de root con el siguiente comando:
        user@debian:~$ sudo su
      5. El siguiente paso será identificar la partición de sistema de archivos raíz (/) de nuestro equipo. Para identificarlo, podemos fijarnos en el tamaño de la partición, el nombre de la etiqueta de la misma, el tipo de sistema de archivos, por ejemplo ext4 o usando la lógica en el nombre del dispositivos orientados a bloques (p.e. /dev/sda1), etc.

        Para identificar la partición podemos utilizar el comando fdisk:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        
        root@debian:/home/user# fdisk -l
        Disco /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectores
        Modelo de disco: VMware Virtual S
        Unidades: sectores de 1 * 512 = 512 bytes
        Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
        Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
        Tipo de etiqueta de disco: dos
        Identificador del disco: 0x71baebc9
         
        Disposit.  Inicio Comienzo    Final Sectores Tamaño Id Tipo
        /dev/sda1  *          2048 37750783 37748736    18G 83 Linux
        /dev/sda2         37752830 41940991  4188162     2G  5 Extendida
        /dev/sda5         37752832 41940991  4188160     2G 82 Linux swap / Solaris
         
         
        Disco /dev/loop0: 2 GiB, 2113794048 bytes, 4128504 sectores
        Unidades: sectores de 1 * 512 = 512 bytes
        Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
        Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes

        En nuestro ejemplo, según la línea 11, la partición del sistema de archivos raíz (/) de nuestro equipo es /dev/sda1.
         
        También podemos identificar la partición del sistema archivos raíz (/), siguiendo los criterios anteriores, con el comando blkid:

        1
        2
        3
        4
        5
        
        $ sudo blkid
        /dev/sr0: BLOCK_SIZE="2048" UUID="2021-12-18-12-49-36-00" LABEL="d-live 11.2.0 kd amd64" TYPE="iso9660" PTUUID="5e750b50" PTTYPE="dos"
        /dev/loop0: TYPE="squashfs"
        /dev/sda1: UUID="acebcec0-9256-47ba-a5fe-25e7a0db00a6" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="7ccc8e65-01"
        /dev/sda5: UUID="9dd5f367-7074-401c-9ac2-a4cd58a1ad6e" TYPE="swap" PARTUUID="7ccc8e65-05"

        Vemos de nuevo que según la línea 4, la partición del sistema de archivos raíz (/) de nuestro equipo es /dev/sda1

      6. Una vez identificada la partición, supongamos que es /dev/sda1, ejecutamos fsck para buscar errores en dicho dispositivo orientado a bloques y poder repararlos:

        $ sudo fsck -Cy /dev/sda1
        • Con la opción -C conseguimos mostrar una barra de progreso.
        • Con la opción -y conseguimos que fsck intente reparar automáticamente, si puede, todos los errores que encuentre en el sistema de archivos.
      7. Una vez finalizado el proceso, reiniciamos nuestro sistema y si todo ha ido bien, debería de arrancar nuestro sistema GNU/Linux de forma normal, no en modo de solo lectura.
    •  

    • Solución desmontando el sistema de archivos (Volver al índice General)
      Si el sistema de archivos corrupto o dañado que se inicia montado en de modo solo lectura es un sistema de archivos que podemos desmontar mientras nuestro sistema está en ejecución, la solución es aún más simple.

      Supongamos que nuestro sistema de archivos corrupto es un repositorio o almacén de datos en el que guardamos archivos del tipo vídeo, imágenes, software, documentos, etc, o el propio /home, y que el dispositivo orientado a bloques asociado a dicho sistema de archivos corrupto es /dev/sda2. Pues bien, en nuestro ejemplo, para solucionar el problema solo tendremos que seguir estos pasos:

      1. Desmontamos el sistema de archivos corrupto con el siguiente comando:
        $ sudo umount /dev/sda2
      2. A continuación ejecutamos el comando fsck (en el punto anterior hemos visto el significado de cada opción):
        $ sudo fsck -Cy /dev/sda2
      3. Y una vez finalizado el proceso, reiniciamos nuestro sistema y si todo ha ido bien, debería de arrancar nuestro sistema GNU/Linux de forma normal, no en modo de solo lectura.
  4.  

  5. Otras herramientas para reparar sistemas de archivos y dispositivos (Volver al índice General)
    En </ZeppelinuX> ya publicamos el siguiente artículos relacionado con la detección de errores e inconsistencias en sistemas de archivos en Linux. Pincha aquí para ver el artículo.

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.