Восстановите корневое дерево диска BTRFS, которое было ошибочно перезаписано 100 МБ FAT-накопителем.

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

У меня есть диск на 4 ТБ с файловой системой BTRFS (без разделов), который был ошибочно перезаписан установщиком Windows, который определил, что пространство не используется, и решил использовать его для каких-то других целей (Восстановление?), и создал 100МБ FAT-раздел сверху.

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

На данный момент я сделал следующее:

Я запустил btrfs rescue super-recover, который выдает следующее:

$ sudo btrfs rescue super-recover -v /dev/sda
Все устройства:
    Устройство: id = 1, имя = /dev/sda

Перед восстановлением:
    [Все хорошие суперблоки]:
        имя устройства = /dev/sda
        номер байта суперблока = 65536

        имя устройства = /dev/sda
        номер байта суперблока = 274877906944

    [Все плохие суперблоки]:
        имя устройства = /dev/sda
        номер байта суперблока = 67108864
Убедитесь, что это диск btrfs, иначе инструмент уничтожит другие файловые системы, Вы уверены? [y/N]: y
не удалось проверить контрольную сумму на 25001984 ожидалось 0x00000000 найдено 0xb6bde3e4
не удалось проверить контрольную сумму на 25001984 ожидалось 0x00000000 найдено 0xb6bde3e4
ОШИБКА: не удалось прочитать корень чанка
Не удалось восстановить плохие суперблоки

Я также попытался запустить sudo btrfs rescue chunk-recover, но результат был аналогичным: не удалось найти действительный корень дерева.

Затем, используя идентификаторы выше, я попытался восстановить диск в файловое расположение:

$ sudo btrfs restore -t 78515 -u 1 /dev/sda /tmp/a
Не найдено действительного Btrfs на /dev/sda
Не удалось открыть корень, пробую резервный суперблок
не удалось проверить контрольную сумму на 25001984 ожидалось 0x00000000 найдено 0xb6bde3e4
не удалось проверить контрольную сумму на 25001984 ожидалось 0x00000000 найдено 0xb6bde3e4
не удалось проверить контрольную сумму на 25001984 ожидалось 0x00000000 найдено 0xb6bde3e4
плохой блок дерева 25001984, номер байта не совпадает, требуется=25001984, есть=0
ОШИБКА: не удалось прочитать корень чанка
Не удалось открыть корень, пробую резервный суперблок

Похожие проблемы: больше не существует действительного корня из-за этого 100МБ FAT!

Наконец, я знаю о возможности просмотра файлов с помощью testdisk, но, похоже, я не могу просмотреть все оставшиеся файлы из файловой системы BTRFS: единственный вариант – это клонирование образа диска.

Есть ли у кого-нибудь потенциальное решение для просмотра отдельных файлов на недействительной файловой системе BTRFS или, возможно, частичного восстановления корня? Мне не нужно восстанавливать всю файловую систему, в идеале я мог бы получить как можно больше файлов из подсистемы (например, @pictures), которые все еще «достаточно действительны», чтобы быть реальным файлом. Есть ли способ восстановить корневое дерево файловой системы BTRFS, чтобы попытаться восстановить как можно больше файлов на диске?

Я вижу таблицу имен файлов, когда делаю sudo strings /dev/sda | less, что, похоже, подразумевает, что я мог бы найти некоторые данные, связанные с этими файлами дальше по диску, но я не знаю, как это проверить.

Я не знаю ничего о том, как btrfs конкретно хранит данные на диске, однако я знаю, что другие файловые системы, такие как ext[2-4], как правило, размещают метаданные (как иноды) в начале диска, и если btrfs такой же, то перезапись первых 100 МБ может стереть большую часть или все эти метаданные.

Сказав это, если он лишь создал файловую систему на 100 МБ и не заполнил ее, возможно, он лишь перезаписал часть этих 100 МБ, так что большая часть метаданных могла выжить. Может быть.

Кто-то более знакомый с btrfs смог бы лучше помочь с тем путем, по которому вы идете.

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

Существует инструмент под названием “photorec”, который будет сканировать образ диска и искать известные форматы файлов, и все, что он находит, будет скопировано. Он был изначально написан для восстановления jpeg-файлов с SD-карт, но с тех пор был расширен для охвата многих известных форматов файлов.

Так что, если то, что вы делаете, не дает результатов, вы можете попробовать photorec.

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

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

1. Понять ситуацию

Вы столкнулись с тем, что установщик Windows определил ваше 4TB устройство как незанятое и создал на нем 100 МБ файловую систему FAT. Учитывая специфику BTRFS, и тот факт, что его структура хранения данных и метаданных отличается от других файловых систем, это может серьезно осложнить восстановление. FTFS, известный своей функцией снимков и подтомов, может быть уязвим к подобным изменениям.

2. Оценка предыдущих действий

Вы уже предприняли несколько шагов: запуск команд btrfs rescue super-recover и btrfs rescue chunk-recover. Улучшения не произошло, так как ошибка указывает на проблемы с чтением корня деревьев данных. Зафиксированные сообщения об ошибках, такие как checksum verify failed, свидетельствуют о серьезных повреждениях.

Также стоит упомянуть, что 100 МБ, созданные для FAT, вероятно, были записаны на верхние сектора диска, что могло затронуть метаданные BTRFS.

3. Возможные пути восстановления

  • Клонирование образа диска: Прежде всего, создайте образ диска в формате, который поддерживает восстановление данных. Используйте утилиты вроде dd для создания битового образа, чтобы избежать дальнейшего повреждения оригинального диска:

    sudo dd if=/dev/sda of=/path/to/disk-image.img bs=4M status=progress
  • Использование Photorec: Учитывая, что у вас есть определенные улики о сохраненных файлах (например, из вывода strings), вы можете попробовать использовать Photorec. Этот инструмент работает на основе сигнатур файлов и может обнаружить множество форматов:

    photorec /path/to/disk-image.img

    Следуйте инструкциям утилиты, чтобы указать параметры поиска. Photorec может восстановить файлы, даже если их метаданные повреждены.

  • Тестирование других инструментов восстановления: Если Photorec не дает удовлетворительных результатов, рассмотрите использование foremost или scalpel, которые также могут работать на основе сигнатур данных и могут восстановить больше форматов.

4. Проверка на предмет остатков

Если есть возможность, попробуйте исследовать сектора, которые не были затронуты FAT. Вы можете использовать:

sudo hexdump -C /dev/sda | less

Таким образом, вы сможете просмотреть сырой вывод и, возможно, найти сегменты, которые все еще содержат данные без повреждений.

5. Потенциальные риски и предостережения

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

Заключение

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

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

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