Кент Оверстрит (Kent Overstreet), разработчик ФС Bcachefs, предложил патчи, позволяющие ядру Linux работать с ФС Bcachefs даже после повреждения существенного объёма метаданных, при необходимости перестраивая испорченные b-деревья по метаданным из структур inode и dirent. Изменения приняты Линусом Торвальдсом и включены в состав сегодняшнего тестового обновления ядра 6.9-rc3.
Изменения обеспечивают монтирование повреждённых ФС и предоставляют доступ к всем или почти всем данным в ФС, затронутым недавней ошибкой, приводившей к разрушению ФС. Ошибка проявлялась когда после обновления инструментария предпринималась, но не завершалась, попытка обновления структур ФС, после чего ядро со старой реализацией Bcachefs производило попытку даунгрейда версии структур, игнорируя незавершенное обновление. Подобная ситуация приводила к входу в «split brain mode», когда ни одна из операций не может быть завершена, а структуры b-tree ФС более не являются консистентными c реальным содержимым.
Упомянутый патч позволяет продолжить работу даже в подобных случаях. Из ограничений технологии упоминается то, что при наличии снапшотов b-дерево снапшотов должно присутствовать и быть исправным.
Источник: opennet.ru