Error de equilibrio de BTRFS en Kernel 5.14.x

Error De Equilibrio De Btrfs En Kernel 5 14 X



Hay un error en el kernel 5.14.x que hace que un sistema de archivos btrfs pase a ser de solo lectura al convertir el perfil de metadatos de único a duplicar . El sistema de archivos entra en un estado de solo lectura. Resolver este problema requiere una solución poco convencional.

Acerca de los perfiles BTRFS

Una de las grandes características de btrfs es la capacidad de usar los diferentes perfiles de raid. Dado que btrfs almacena los datos y los metadatos por separado, puede dividir los datos en los discos como raid0 y duplicar todos los metadatos como raid1. Esta redundancia en los metadatos ocupa poco espacio adicional. Y esto se recomienda en configuraciones btrfs raid0.

Siempre se ha sugerido duplicar los metadatos, incluso en un solo disco, ya que perder los metadatos significa perder también los datos.







Btrfs puede cambiar un perfil de incursión en un sistema en vivo, convirtiendo los datos y metadatos para proporcionar (o eliminar) la redundancia. Esto ocurre con un balance . Un balance btrfs reescribe todos los bloques del sistema de archivos y se ajusta para que coincida con los nuevos perfiles como lo hace.



El bicho

Intenté cambiar el perfil de metadatos en mi único disco de único a duplicar por la redundancia.



$ sudo inicio de saldo btrfs -mconvert = duplicar / mnt





El sistema de archivos pasó inmediatamente a un estado de solo lectura. El sistema se cayó. Cuando se reinició, no pude pasar la recuperación initramfs. No se pudieron escribir datos en el disco.

Cuando se interrumpe una operación de equilibrio en el sistema de archivos btrfs, se reanuda automáticamente la próxima vez que se monta el sistema de archivos. Esto generalmente se puede detener con:



$ sudo montar -O saltar_saldo,rw / desarrollador / sdX / mnt

Luego, cancela si es necesario usando el siguiente comando:

$ sudo cancelar saldo btrfs / mnt

Sin embargo, el error no solo provocó que el saldo se bloqueara, sino que se ignoraron las opciones de montaje para evitar que continuara. Cada vez que se monta el sistema de archivos, el equilibrio intenta reanudarse. Falló y el sistema de archivos pasó a ser de solo lectura. Si encuentra esto, debe iniciar cualquier distribución usando un kernel anterior. En mi caso fue Arch con 4.18.

Monte el sistema de archivos con la perrera anterior:

$ sudo montar -O saltar_saldo,rw / desarrollador / sdX / mnt

Cancelar el saldo:

$ sudo cancelar saldo btrfs / mnt

Realice el balance de nuevo:

$ sudo inicio de saldo btrfs -mconvert = duplicar / mnt

Una vez que se completa el equilibrio, puede iniciar de manera segura en un kernel más nuevo, ahora con metadatos duplicados en el sistema de archivos. Compruebe los perfiles utilizados por el sistema de archivos. Verá que tiene dos copias de los metadatos del sistema de archivos y solo una copia de los datos:

$ sudo btrfs ser uso < punto de montaje >

Conclusión

Btrfs es un sistema de archivos increíble capaz de muchas opciones avanzadas. Sin embargo, al usar btrfs, debe tener copias de seguridad en funcionamiento, así como un kernel de arranque desde una distribución LTS para el rescate del sistema. Aunque se puede ejecutar un equilibrio en un sistema de archivos raíz montado, no siempre se recomienda hacer esto. Todavía hay muchos errores en el sistema de archivos. Debe estar preparado para un rescate del sistema de archivos cuando el módulo btrfs no se haya probado completamente contra kernels de última generación.