Файл отсутствует после fsck

Файл отсутствует после fsck

Недавно мой HDD сломался, и мне пришлось запустить fsckкоманду. Многие файлы были перемещены в lost+foundпапку, и я извлек важные из них с помощью findи grep, но я не могу найти свои базы данных SQL.

Вопросы

  • Как найти базы данных InnoDB в моем каталоге lost+found?
  • Возможно ли, что fsck не сохранил мою базу данных SQL?
  • Если да, могу ли я восстановить этот файл?

решение1

Попытка №1:

Может быть, он там и сейчас есть, просто его имя изменилось на fe /lost+found/#3456254 и т. п. На вашем месте я бы сделал рекурсию file -szLдля всего в /lost+foundи grep для innodb:

find /lost+found -type f|xargs -P 1 -n 500 file -szL|grep -i innodb

Если там уже есть база данных innodb, у вас есть данные для сохранения. Удачи!

Попытка №2:

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

решение2

ВОЗМОЖНО, что файл(ы) не удалось восстановить с помощью fsck, и они были удалены. Программа fsck только пытается восстановить и очень старается восстановить файлы настолько хорошо, насколько это возможно. Однако это ни в коем случае не является резервным копированием. Любое действие, выполняемое fsck, по сути, необратимо.

Я был бы очень осторожен, пытаясь использовать части базы данных MySQL, содержащиеся в каталоге lost+found, поскольку база данных содержится не в одном файле, а во многих файлах, которые должны быть «синхронизированы», чтобы была хоть какая-то надежда на восстановление базы данных в режиме, при котором обеспечивается хоть какая-то надежность или целостность данных.

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

Если данные настолько важны, то МОЖЕТ БЫТЬ, вы сможете попытаться заручиться помощью одной из многочисленных служб восстановления данных. Это дорого, а результаты далеки от совершенства.

решение3

Я думаю, вам не повезло. Единственный вариант, который у вас есть, — это пройтись по каталогу lost+foundи визуально осмотреть каждый файл, ища подсказки относительно его первоначального идентификатора.

В будущем

В блоге есть запись под названием:Обновлено: Автоматическое восстановление файлов из lost+found, в котором рассматриваются два инструмента, которые могли бы помочь в этой ситуации.

  • make-lsLR.sh- регулярно вызывать (cron) для создания необходимых файлов, которые хранятся в /root/. Конечно, вы можете легко изменить местоположение и исключить другие каталоги из сканирования.

  • check_lost+found.py- Второй скрипт должен быть запущен, когда ваш fsck умудрился испортить ваши файлы и сохранил их в каталоге lost+found. Он принимает 3 аргумента: 1) исходный каталог, где находится ваш испорченный каталог lost+found, 2) целевой каталог, в который будут сохранены данные, и 3) переключатель, чтобы это произошло на самом деле вместо холостого прогона.

Эти 2 скрипта работают вместе, первый нужно будет запускать периодически, чтобы составить опись файлов, которые присутствуют в вашей системе. Второй скрипт затем может использовать эту опись в случае, если вам нужно восстановить файлы из каталога lost+found.

Связанный контент