Найти тему
Новости мира IT

Восстановление данных с жесткого диска при помощи ddrescue

Оглавление
Сгенерировано при помощи Kandinsky 2.2
Сгенерировано при помощи Kandinsky 2.2

В Linux есть мощнейшая утилита по восстановлению данных с неисправных накопителей, под названием ddrescue. При чем на самом деле есть две версии этой программы - dd_rescue и GNU ddrescue. Нас интересует последний вариант, потому что при его использовании шансы на восстановление выше. Подробнее об отличиях двух этих утилит можно прочитать в статье на Хабре.

Подготовка к восстановлению

Первым делом нам понадобится какой-нибудь Live дистрибутив Linux, загружаемый с флешки и содержащий в себе саму утилиту GNU ddrescue. Я рекомендую использовать для этих целей LiveUSB сборку DogLinux от gumanzoy. Скачать ее можно здесь. Процесс записи на флешку этого дистрибутива описан в файле install_ru.txt. Можно использовать совместно с Ventoy.

Подготавливаем флешку, загружаемся в Live систему и запускаем терминал.

Определение установленных накопителей и их разделов

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

fdisk -l

В результате будет выведен список все накопителей и разделов на них. В Linux наименование накопителей начинается с букв sd, после которых отображается буква диска - a, b, c и т. д. Таким образом полное название дисков будет иметь следующий вид - sda, sdb, sdc и т. д. После буквенного обозначения диска уже следуют номера разделов, например, 1, 2, 3.

Disk /dev/sda: 50 GB, 53687091200 bytes, 104857600 sectors
51200 cylinders, 64 heads, 32 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type
/dev/sda1 * 1,0,1 100,63,32 2048 206847 204800 100M 83 Linux
/dev/sda2 101,0,1 1023,63,32 206848 8595455 8388608 4096M 82 Linux swap
/dev/sda3 1023,63,32 1023,63,32 8595456 104857599 96262144 45.9G 83 Linux

Запись такого вида означает, что в системе установлен накопитель sda объемом 50 Гб, содержащий 3 раздела sda1, sda2 и sda3, объемом 100 Мб, 4096 Мб и 45,9 Гб соответственно.

На этом этапе необходимо определить сбойный накопитель и разделы, которые необходимо восстановить.

Как пользоваться ddrescue

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

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

ddrescue -r3 /dev/sda2 image.img logfile.log
  • /dev/sda2 - имя раздела, который будем сканировать
  • image.img - имя файла образа, в который будем сохранять данные неисправного накопителя
  • logfile.log - название файла журнала, где будет фиксироваться процесс считывания данных
  • -r3 - ключ запуска, указывающий на то, что необходимо будет предпринять 3 попытки прочитать сбойный сектор, прежде чем перейти к следующему

Набираемся терпения и ждем завершения процесса.

Просмотр созданного образа и восстановление данных

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

mkdir /mnt/disk
mount -o loop image.img /mnt/disk

Теперь данные образа можно посмотреть в файловом менеджере по пути /mnt/disk. В конце отключим образ командой:

umount /mnt/disk

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

ddrescue -f image.img /dev/sdb2 logfile.log
  • image.img - имя файла образа, который будем развертывать на новом накопителе
  • /dev/sdb2 - имя раздела, куда будем восстанавливать
  • logfile.log - название файла журнала, где будет фиксироваться процесс записи данных
  • -f - ключ принудительной записи данных

Возможные проблемы в процессе создания образа

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

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

Мы в социальных сетях: VK | Telegram