После серьезного сбоя сервера мне не удалось смонтировать раздел JFS в Linux. В jfs_fsck
инструмент возвращается
Duplicate block references have been detected in Metadata. CANNOT CONTINUE.
processing terminated: <date> <time> with return code: 10060 exit code: 4.
Раздел 12 ТБ содержит результаты научных вычислений, которые могут быть воспроизведены в течение нескольких недель и не подлежат резервному копированию. Хотя я не могу исключить возможность того, что некоторые невоспроизводимые данные будут валяться из-за халатности пользователя.
Мой план по восстановлению раздела был следующим:
jfs_fsck -v
jfs_debugfs
find -inum
jfs_debugfs
jfs_fsck
снова и надеюсь, что он завершится без ошибокЭтот план сработал только на этапах (1) - (4). Сначала он потерпел неудачу на этапе (5), где find
похоже, не получил ни одного inode после нескольких часов работы и может работать вечно. При копировании файлов я обнаружил, что в некоторых каталогах деревья B + превращаются в графы с циклами, поэтому не исключено, что обход каталога не завершится.
Я сразу перешел к шагу (6) и сначала отключил каталоги, в которых я мог найти поврежденные структуры. Но это не помогло сделать jfs_fsck
работать до завершения. Затем я удалил все каталоги, кроме записи в корневом каталоге. Все же jfs_fsck
все еще не удалось завершить.
Думаю, мне нужно отредактировать не только структуру каталогов, но и карты размещения блоков. Однако я не мог найти способ сделать это с помощью jfs_debugfs
.
Есть ли инструменты, которые могут помочь восстановить раздел с повторяющимися ссылками на блоки?
Если вы вообще можете смонтировать диск R / O, вы, вероятно, можете попытаться скопировать данные, которые вы можете. Если журнал поврежден, возможно, потеряны только несколько последних изменений файла. Таким образом, вы можете попытаться извлечь файлы.
Однако, если файл представляет собой данные, как узнать, правильно ли он или сам не был поврежден.
Конечно, повреждение журнала также может скрывать более серьезную проблему с диском.
На этом этапе я думаю, что для обеспечения целостности данных вам, вероятно, придется повторно запустить моделирование.