Kent Overstreet, desarrollador del sistema de archivos Bcachefs, ha propuesto parches que permiten al núcleo de Linux trabajar con el sistema de archivos Bcachefs incluso después de dañar una parte significativa de los metadatos, reconstruyendo los árboles B dañados según los metadatos de las estructuras de inode y dirent. Los cambios han sido aceptados por Linus Torvalds y están incluidos en la actualización de prueba del núcleo 6.9-rc3 de hoy.
Los cambios permiten montar sistemas de archivos dañados y proporcionan acceso a todos o casi todos los datos en el sistema de archivos afectados por un error reciente que causaba la corrupción del sistema de archivos. El error se manifestaba cuando, tras actualizar las herramientas, se intentaba actualizar las estructuras del sistema de archivos, pero no se completaba, lo que llevaba al núcleo con la antigua implementación de Bcachefs a intentar degradar la versión de las estructuras, ignorando la actualización incompleta. Esta situación conducía a un 'modo de cerebro dividido', donde ninguna de las operaciones puede completarse y las estructuras B-tree del sistema de archivos ya no son consistentes con el contenido real.
El parche mencionado permite continuar la operación incluso en tales casos. Entre las limitaciones de la tecnología se menciona que, en presencia de instantáneas, el árbol B de las instantáneas debe estar presente y ser funcional.
Fuente: opennet.ru
