понедельник, 7 ноября 2011 г.

Восстановление диска при сбое NTFS в Linux


Недавно принесли мне портативный жёсткий диск с просьбой восстановить с него данные. Сначала я решил скопировать с него данные с помощью dd, она скопировала 3Гб и остановилась. Скорость копирования была 0.05 Кб/с.

После относительно быстрого гугления была найдена утилита dd_rescue (есть в репозитории Debian), и с её помощью удалось сделать образ диск копируя его в обратном направлении.

Синтаксис у неё прост, и похож на dd.

# dd_rescue -raAv /dev/sdb ~/sdb.img

На всякий случай приведу примеры параметров.

 ИСПОЛЬЗОВАНИЕ: dd_rescue [options] infile outfile
 Параметры:
          -s ipos    начальная позиция в исходном файле (default=0),
          -S opos    начальная позиция в целевом файле (def=ipos),
          -b softbs  размер блока для операции копирования (def=65536),
          -B hardbs  размер блока при возникновении ошибок при копировании (def=512),
          -e maxerr  завершение работы после заданного количества ошибок (def=0=infinite),
          -m maxxfer максимальный объём копируемых данных (def=0=inf),
          -y syncfrq частота запросов fsync к целевому файлу (def=512*softbs),
          -l logfile имя файла для регистрации ошибок и вывода сводки (def=""),
          -o bbfile  имя файла для регистрации номеров сбойных блоков (def=""),
          -r         копирование в обратном направлении (def=forward),
          -t         очищать целевой файл перед записью (def=no),
          -d/D       использовать O_DIRECT для ввода/вывода (def=no),
          -w         завершение работы при возникновении ошибок (def=no),
          -a         запись файла с пустотами (def=no),
          -A         всегда записывать блоки, заполняя нулями сбойные (def=no),
          -i         интерактивный режим: спрашивать перед перезаписью данных (def=no),
          -f         принудительный режим: пропустить ряд проверок (def=no),
          -p         сохранять права доступа и владельца файла (def=no),
          -q         минимум подробностей,
          -v         максимум подробностей,
          -V         вывести номер версии и выйти,
          -h         вывести данную справку и выйти.

И уже на следующий день я получил копию диска sdb. Которую я попытался смонтировать, но результатов это не дало.
#losetup /dev/loop0 /home/night/sdb.img
#mount -o force /dev/loop0 /mnt/sdb/
Тут мне пришла на помощь утилита photorec.

Далее оказалось всё просто. Достаточно было скормить ей путь к устройству /dev/loop0 или путь к образу ~/sdb.img и указать папку, в которую будут восстанавливаться файлы.
#testdisk /dev/loop0

Комментариев нет:

Отправить комментарий