Мини-HOWTO: Восстановление удаленных файлов с файловой системы Ext2fs в Linux |
---|
Пред. | | След. |
Подготовка к записи данных в другое место
Если вы решили воспользоваться этим способом, убедитесь, что у вас имеется раздел, куда вы можете записать новые копии восстанавливаемых файлов. Надеюсь, ваша система имеет несколько разделов: возможно это корневой, /usr и /home. Если у вас есть такой выбор, проблем не должно возникнуть: просто создайте на одном из них новый каталог.
Если у вас только один (корневой) раздел, и вы все держите на нем, то дела
обстоят хуже. Может быть у вас найдется раздел MS-DOS или Windows, который
можно использовать? Или в вашем ядре (или в модуле) есть поддержка
RAM-диска (диска в памяти)? Чтобы использовать RAM-диск (ядро должно быть
версии старше 1.3.48), дайте команды:
# dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
# mke2fs -v -m 0 /dev/ram0 2048
# mount -t ext2 /dev/ram0 /mnt |
Они создадут 2МБ RAM-диск и подключат его к /mnt.
Небольшое предупреждение: если вы используете kerneld (или его замену kmod в ядрах версии 2.2.x и в поздних 2.1.x) для
автоматической загрузки и выгрузки модулей ядра, то не отключайте RAM-диск,
пока не скопируете все файлы на постоянный носитель. Иначе, при отключении
диска, kerneld предполагает, что он может
выгрузить модуль, а если это происходит, то освободившаяся память может
быть использована другими частями ядра, и вы потеряете все результаты
нескольких часов нудной работы по восстановлению своих данных.
Если у вас есть дисковод Zip, Jazz, LS-120 или что-нибудь подобное, то
возможно он будет хорошим выбором для раздела с восстановленными данными. В
противном случае, вам не останется ничего, кроме флоппи-дисков.
Еще одна вещь, которая вам понадобиться - программа, которая может читать
данные из середины раздела устройства. В крайнем случае, для этого подойдет
dd, но если вам нужно будет прочитать,
скажем, область с 600МБ по 800МБ, то первые 600МБ все равно будут прочитаны
dd, хотя и проигнорированы. Это займет
довольно много времени, даже на быстрых дисках. В моем случае, для работы с
разделом была написана специальная программа. Она называется fsgrab; исходный текст вы можете найти на моем сайте
или на Metalab (и зеркалах). Далее в этом документе предполагается
наличие fsgrab.
Если размер файлов, подлежащих восстановлению, не превышал 12 блоков (один
блок обычно равен одному килобайту), то fsgrab вам не понадобится.
Если у вас нет fsgrab, и вы не хотите
скачивать и собирать его, то можете просто переводить команды для fsgrab в команды для dd.
Если команда для fsgrab выглядит так:
fsgrab -c count -s skip device |
то соответствующая команда для dd будет выглядеть так:
dd bs=1k if=device count=count skip=skip |
Я должен предупредить, что хотя fsgrab
нормально работал у меня, я не даю никаких гарантий его нормального функционирования. Он был
написан очень быстро и не очень аккуратно - лишь бы работало. Для
дополнительной информации см раздел `No Warranty' (без гарантии) в файле
COPYING (GNU General Public Licence).
Пред. | Начало | След. |
Подготовка к непосредственному изменению inode | | Поиск удаленных inodes |