Ошибки при записи DVD и как с ними бороться Восстановление данных с сильно повреждённых CD
Создано: 04-06-2009 15:29:51  Метки: dd sysadmin partition backup
Источник

Для того, чтобы сделать резервную копию (файл-образ) винчестера для последующего восстановления вовсе не нужны коммерческие, проприетарные утилиты - есть старый, как мир, dd. Всё, что нужно сделать -
просто правильно его использовать.

Эпиграф
Только зануды делают резервные копии:
 настоящие мужчины просто
закачивают все важное на ftp,
 позволяя остальным отзеркалировать это.
Линус Торвальдс



Утилита dd есть в любом дистрибутиве, и даже в Knoppix, который можно использовать для восстановления данных. Для этого так же потребуется любой архиватор, в данном примере это gzip. Приведён вариант с архивированием на другую машину по сети с использованием SSH или netcat.


1. Приготовления

Загружаемся с любого LiveCD диска с Линукс / BSD, залогиниваемся под root-аккаунтом.
Убеждаемся, написав в консоли df, что ни один из тех разделов,  что мы собираемся копировать, не примонтирована на запись. Решаем, куда будем архивировать данные: это может быть другой раздел на винчестере, внешний жёсткий диск или по сети.


2. Создаём резервную копию

В данном примере /dev/hda это винчестер, который архивируем, а /dev/sda1 - это раздел внешнего винчестера или другая партиция, на которую архивируем, hda.img.gz - получившийся сжатый файл-образ.

2.1 Внешний винчестер или другой раздел диска

Монтируем устройство, куда мы будем архивировать данные
# mount -t vfat /dev/sda1 /mnt/sda1
Перегоняем данные с одного винчестера на другой. Так как данных много, полезно их сжать - и никс-системы позволяют это делать "на лету". В примере использван GZip, но подойдёт и любой другой (например, bzip2 или p7zip).
Для этого:
# dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.img.gz
Здесь происходит архивирование с одновременным сжатием, результат чего записывается в файл hda.img.gz
Параметр "conv=sync,noerror" указывает dd не читать блок, если при этом происходит ошибка, но записать в архивируемый файл-образ данные, чтобы размер блока не менялся.
Параметр "bs=64K" это размер блока в килобайтах - использование такого большого размера блока ускоряет процесс копирования. Выходной поток передаётся по конвейеру для сжатия gzip, результат выводится в файл на другом диске.

2.2 Удалённо по сети
Всё то же самое, что в п.2.1, но с добавлением в конвейер SSH:
# dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c | ssh -c blowfish user@hostname "dd of=hda.img.gz bs=64k"
Архивный файл появится в домашней директории пользователя user на машине hostname. Если сеть маленькая, лучше вместо hostname использовать просто ip-адрес. Опция -c blowfish заставляет SSH выбрать алгоритм шифрования Blowfish, который быстрее остальных шифрует данные.

Вариант с netcat, если данные копируются по локальной сети и шифрование не нужно:
# dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c | nc 192.168.1.1 3333
На удалённой машине должен быть запущен netcat:
# nc -l -p 3333 >  hda.img.gz
Вариант с SAMBA, если копирование производится на оффтопичную машину: примонтировать удалённо сетевой ресурс
smbmount //192.168.1.100/shared /mnt/remoteshare -o username=имяпользователя,password=пароль

и далее всё то же, что и в п.2.1.



3. Восстанавливаем данные из резервной копии
Пример тот же: /dev/hda это винчестер, который архивируем, hda.img.gz - архивный сжатый файл-образ, а /dev/sda1 - это раздел внешнего винчестера или другая партиция, с которого восстанавливаем данные.

3.1 Внешний винчестер или другой раздел диска

Копируем и распаковываем файл-образ одновременно:
# gzip -x /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
Все параметры в п.2 уже объяснены.


3.2 Удалённо по сети
Сетевой вариант с восстановлением из файл-образа:

dd if=hda.img.gz | ssh -c blowfish user@deadhost "gunzip -c | dd of=/dev/hda1 bs=64k"

Следует помнить, что в данном случае не следует использовать опцию conv=sync,noerror в опциях dd - если вы всё-таки включите эту опцию, в большинстве случаев это исказит записываемые данные (это заставляет dd не дожидаться данных, приходящих по сети, если целый блок недоступен).


Ссылки
Этот пост является переводом этой замечательной статьи, дополненной и расширенной этой и этой статьями. Так же это применимо к утилитам восстановления данных, описанных здесь.

1347 просмотров комментировать

Ошибки при записи DVD и как с ними бороться Восстановление данных с сильно повреждённых CD