Использовать dd я бы КРАЙНЕ не советовал, т.к. оно может неадекватно отнестись к дефектам на диске. Для работы с неисправными дисками нужно пользоваться из имеющегося ddrescue, а при некотором везении можно снять при помощи утилит из пакета partclone карту занятого места и копировать только его. Можно скачать с
http://clonezilla.org образ загрузочного CD и работать в нём, можно в консоли ubuntu, если подключить неисправный диск и диск под образ вторым и третьим. В ubuntu нужно поставить соответствующие пакеты:
sudo apt-get install gddrescue partclone sfdisk
В clonezilla всё это уже есть. Поехали: (дано: диск под образ не меньшего, чем пациент, размера -- /dev/sdb, диск неисправный с дефектами -- /dev/sdc, расположение разделов -- как у вас, три раздела NTFS)
Пробуем сделать карты занятых секторов для каждого раздела:
for i in 1 2 3; do sudo partclone.ntfs -D -s /dev/sdc$i -O ~/part$i.domain; done
Следим за выводом: если для какого-то из разделов не удаётся сделать карту, то его придётся копировать целиком! Признак успеха -- файл partX.domain ненулевой длины и сообщение "Successfully created domain "или что-то там. Также карта не создастся, если раздел не был правильно размонтирован, есть ключик, чтоб это проигнорировать, но я б не советовал.
Если получились карты, то делаем так: сперва копируем расположение разделов: (подразумевается разбиение MBR, не GPT!)
sudo sfdisk -d /dev/sdc > ~/parts.txt
sudo sfdisk /dev/sdb < ~/parts.txt
Затем для тех разделов, для которых есть карты, делаем:(предположим, что есть для 2 и 3)
for i in 2 3; do sudo ddrescue -d -f --domain-logfile=~/part$i.domain /dev/sdc$i /dev/sdb$i ~/part$i.log; done
Для первого раздела командная строка проще, т.к. нет карты, делаем образ целиком:
sudo ddrescue -d -f /dev/sdc1 /dev/sdb1 ~/part1.log
Если карта не создалась ни для одного раздела, проще пытаться копировать весь диск целиком:
sudo ddrescue -d -f /dev/sdc /dev/sdb ~/disk.log
-- или, если известно, что важные данные лежат только на каких-то разделах, то копировать их (сперва или перенести таблицу разделов с исходного диска на диск под образ (см. выше), или создать раздел чем угодно, тем же fdisk, важно, чтоб он был не меньшего размера. Если нам важно знать, какие файлы прочлись с дефектами, по завершении образа заполняем непрочитанные куски неким паттерном, например: (заполняем "дырки" от дефектов на третьем разделе с созданной картой паттерном "BAD!BAD!")
echo -n "BAD!" > ~/bad_pattern
sudo ddrescue -f --fill=-*/? --domain-logfile=~/part3.domain ~/bad_pattern /dev/sdb3 ~/part3.log
Главное -- не перепутать диски, поэтому проверять надо десять раз каждую строку. Надеюсь, поможет.