Не удается прочитать суперблок – btrfs

Вопрос или проблема

Помогите! Не удается прочитать Superblock

Я использовал свой ПК (arch) как обычно с запущенной Android Studio, и вдруг он испортился и попросил перезагрузить IDE, так как файловая система стала доступна только для чтения. Я перезагрузил весь ПК, и теперь не могу смонтировать систему btrfs. Использую Linux 6.6.60-1-lts, btrfs-progs v6.11

Я новичок в этом, я использовал btrfs, так как он становится новым по умолчанию.

Как мне это исправить, пожалуйста, помогите! Пока я пробовал:

liveuser@localhost-live:~$ sudo btrfs rescue super-recover /dev/sdb3
Все суперблоки действительны, нет необходимости восстанавливать

liveuser@localhost-live:~$ sudo btrfs rescue zero-log /dev/sdb3
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
ПРЕДУПРЕЖДЕНИЕ: не удалось настроить csum tree, пропускаем это
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
ОШИБКА: не удалось открыть ctree

liveuser@localhost-live:~$ sudo btrfs scrub start /dev/sdb3
ОШИБКА: '/dev/sdb3' не является смонтированным устройством btrfs

liveuser@localhost-live:~$ sudo btrfs scrub status /dev/sdb3
ОШИБКА: '/dev/sdb3' не является смонтированным устройством btrfs

liveuser@localhost-live:~$ sudo mount -o usebackuproot /dev/sdb3 /mnt
mount: /mnt: системный вызов fsconfig не удался: Файл существует.
       dmesg(1) может содержать больше информации после неудачного системного вызова монтирования.

liveuser@localhost-live:~$ sudo btrfs check /dev/sdb3
Открытие файловой системы для проверки...
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
Игнорирование сбоя transid
ОШИБКА: корень [7 0] уровень 0 не совпадает с 2

ОШИБКА: не удалось настроить csum tree
ОШИБКА: не удалось открыть файловую систему

Запустил восстановление тоже

liveuser@localhost-live:~$ sudo btrfs rescue chunk-recover /dev/sdb3
Сканирование: ЗАВЕРШЕНО в dev0                        
поврежденный лист: root=1 block=713392128 slot=0, неожиданный конец элемента, ожидается 0, есть 16283
освобожденное пространство листа ret -3574, размер данных листа 0, использовано 3574 nritems 11
лист 713392128 элементы 11 свободное пространство -3574 поколение 368940 владелец ROOT_TREE
лист 713392128 флаги 0x1(WRITTEN) backref ревизия 1
uuid fs 6d8d36ba-d266-4b34-88ad-4f81c383a521
uuid chunk 52ed2048-4a76-4a75-bb75-e1a118ec8118
ОШИБКА: указатель слота 0 листа 713392128 недействителен, смещение 15844 размер 439 предел данных листа 0
ОШИБКА: пропустить оставшиеся слоты
поврежденный лист: root=1 block=713392128 slot=0, неожиданный конец элемента, ожидается 0, есть 16283
освобожденное пространство листа ret -3574, размер данных листа 0, использовано 3574 nritems 11
лист 713392128 элементы 11 свободное пространство -3574 поколение 368940 владелец ROOT_TREE
лист 713392128 флаги 0x1(WRITTEN) backref ревизия 1
uuid fs 6d8d36ba-d266-4b34-88ad-4f81c383a521
uuid chunk 52ed2048-4a76-4a75-bb75-e1a118ec8118
ОШИБКА: указатель слота 0 листа 713392128 недействителен, смещение 15844 размер 439 предел данных листа 0
ОШИБКА: пропустить оставшиеся слоты
Не удалось прочитать корень дерева
открытие с ошибкой поврежденного чанка

и восстановление после восстановления

liveuser@localhost-live:~$ sudo btrfs restore /dev/sdb3 /dev/sda5
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
Игнорирование сбоя transid
ОШИБКА: корень [7 0] уровень 0 не совпадает с 2

ПРЕДУПРЕЖДЕНИЕ: не удалось настроить csum tree, пропускаем это
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
Игнорирование сбоя transid
ОШИБКА: корень [5 0] уровень 0 не совпадает с 2

Не удалось открыть корень, пробую резервный супер
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
проверка родительского transid не удалась на 711704576 хотел 368940 найден 368652
Игнорирование сбоя transid
ОШИБКА: корень [7 0] уровень 0 не совпадает с 2

ПРЕДУПРЕЖДЕНИЕ: не удалось настроить csum tree, пропускаем это
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
проверка родительского transid не удалась на 711655424 хотел 368940 найден 368652
Игнорирование сбоя transid
ОШИБКА: корень [5 0] уровень 0 не совпадает с 2

Не удалось открыть корень, пробую резервный супер
ОШИБКА: размер superblock bytenr 274877906944 больше размера устройства 209715200000
Не удалось открыть корень, пробую резервный супер

Жесткий диск здоров, согласно smartctl. Нет перераспределенных секторов, и другие разделы ntfs/ext4 работают нормально.

Хотя бы если возможно восстановить данные. Спасибо!

Я в отчаянии, потерял данные, над которыми работал годы. Единственная резервная копия, которую я имею, – это несколько месяцев назад, так много изменений я сделал после этого. :'(

Ответ или решение

Невозможность чтения суперблока в Btrfs: Подробная Информация и Решения

Введение

Ошибки файловой системы могут привести к значительной потере данных и вызвать стресс у пользователей. Одна из таких ошибок, с которой вы столкнулись—невозможность читать суперблок Btrfs. Поскольку вы уже предприняли несколько шагов для решения проблемы, в данном руководстве мы рассмотрим, что вы можете сделать дальше, чтобы попытаться восстановить ваши данные.

Признаки Проблемы

Судя по описанным вами симптомам, включая ошибку "parent transid verify failed" и сообщения о "corrupt leaf" (поврежденном узле), ваша файловая система была повреждена. Ошибка "Can’t read superblock" указывает на то, что система не может найти или правильно прочитать метаданные, необходимые для монтирования файловой системы.

Проверка Здоровья Устройства

Вы упомянули, что командa smartctl не выявила никаких проблем с жестким диском. Это положительный сигнал, но сам факт наличия проблем в Btrfs указывает на вероятные повреждения данных в этой конкретной файловой системе.

Доступные Методы Восстановления

1. Восстановление Суперблока

Вы уже пробовали команды btrfs rescue super-recover, но все суперблоки действительны. Попробуйте запустить команду:

sudo btrfs restore -n /dev/sdb3 /путь/к/вашему/каталогу

Эта команда попытается считывать данные, не делая изменений, что даст возможность понять, какие данные все еще доступны. Если все пройдет успешно, попробуйте вернуть данные в безопасное место.

2. Очистка Логов

Вы уже пробовали команду btrfs rescue zero-log, но столкнулись с проблемой транзакций. Рекомендуется запустить btrfs recovery и перезапустить действия, чтобы далеко не влезать в стек логирования:

sudo btrfs check --repair /dev/sdb3

Имейте в виду, что эта команда может потенциально усугубить повреждения. Она изменяет данные на диске, поэтому используйте ее только если у вас есть резервные копии ваших данных или вы уверены, что данные, которые у вас остались, вам не нужны.

3. Использование Резервных Суперблоков

Btrfs хранит резервные суперблоки, которые могут помочь, если основной суперблок поврежден. Используйте следующую команду, чтобы попробовать восстановить данные с помощью резервных копий:

sudo btrfs restore -s /dev/sdb3 /путь/к/каталогу/для/восстановления

4. Большие и Сложные Ошибки

Если ни один из вышеуказанных методов не дал результата, вы можете использовать btrfs rescue chunk-recover, но учтите, что это более рискованная операция, и вы можете потерять дальнейшие данные:

sudo btrfs rescue chunk-recover /dev/sdb3

Этот шаг может помочь восстановить поврежденные части системы, но также может ухудшить состояние файловой системы.

Последние Шаги

Если ни один из методов вам не помог, обратитесь к профессионалам в области восстановления данных, поскольку ошибка может быть изначально глубже, чем кажется. В будущем обязательно делайте регулярные резервные копии, чтобы минимизировать потерю данных и избежать подобных ситуаций.

Заключение

Проблемы с файловыми системами могут вызывать серьезные проблемы, и если вы столкнулись с такой ситуацией, следуйте рекомендациям и рассмотрите возможность обращения за помощью к высококвалифицированным специалистам в этой области. Удачи в восстановлении ваших данных!

Оцените материал
Добавить комментарий

Капча загружается...