Inicio » Cómo reparar un sistema de archivos BTRFS bloqueado en Solo Lectura (Read-Only) en tu servidor
Sistemas y Servidores

Cómo reparar un sistema de archivos BTRFS bloqueado en Solo Lectura (Read-Only) en tu servidor

✨ Respuesta Rápida

Cuando un disco duro secundario configurado con el sistema de archivos moderno BTRFS (muy común en arreglos de almacenamiento y servidores caseros como Umbrel o ZimaOS) detecta un error de escritura, un corte de energía o sectores corruptos, el núcleo de Linux cambia su estado automáticamente a Read-Only (Solo lectura) para evitar que la información existente se destruya. Esto congela de inmediato todas tus aplicaciones de automatización y descargas.

El Diagnóstico Rápido

Causa
Errores en el sistema de archivos Btrfs por corte de energía inesperado
Solución
Verificar el log de kernel dmesg y ejecutar btrfs check --repair /dev/sdX
Causa
Unidad de almacenamiento dañada o en modo de protección contra fallas
Solución
Remontar la unidad en modo lectura/escritura: mount -o remount,rw /data

Cuando un disco duro secundario configurado con el sistema de archivos moderno BTRFS (muy común en arreglos de almacenamiento y servidores caseros como Umbrel o ZimaOS) detecta un error de escritura, un corte de energía o sectores corruptos, el núcleo de Linux cambia su estado automáticamente a Read-Only (Solo lectura) para evitar que la información existente se destruya. Esto congela de inmediato todas tus aplicaciones de automatización y descargas.

La Solución Paso a Paso

  1. 1

    Paso 1: Desmontar la unidad afectada

    No intentes forzar la escritura de datos sobre un disco bloqueado. Primero, detén los servicios de Docker que lo estén usando y desmonta la ruta:

    BASH
    sudo systemctl stop docker
    sudo umount /dev/sdb1
    

    (Reemplaza /dev/sdb1 por la nomenclatura exacta de tu disco detectado).

  2. 2

    Paso 2: Ejecutar una verificación de errores limpia (Check Scratch)

    Usaremos las herramientas internas de BTRFS para escanear el árbol de metadatos del almacenamiento sin modificar los bloques:

    BASH
    sudo btrfs check --readonly /dev/sdb1
    

    Lee las últimas líneas de la terminal. Si el sistema te reporta errores menores en el mapa de espacio libre (free space cache), podemos ordenar una reparación segura de los descriptores de archivos ejecutando:

    BASH
    sudo btrfs check --repair /dev/sdb1
    

    (Nota: Ejecuta la reparación únicamente si el check previo te lo sugiere explícitamente).

  3. 3

    Paso 3: Remontar el disco en modo de rescate limpio

    Si el volumen sigue dando problemas, fuérzalo a arrancar limpiando los registros de transiciones corruptas antiguas:

    BASH
    sudo mount -o remount,clear_cache,rw /dev/sdb1 /mnt/storage
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Las caídas de tensión eléctrica son el enemigo número uno de los servidores basados en Linux. Si tienes tu servidor conectado directamente al tomacorriente de la pared sin un sistema de alimentación ininterrumpida (UPS/No-Break), corres el riesgo latente de perder particiones enteras por culpa de un apagón. Configurar tus discos duros con parámetros de montaje seguros como noatime reduce los ciclos de escritura constantes y protege la vida del hardware.