Создание образа жесткого диска при помощи утилиты dd в Unix


Для создания образа жесткого диск не обязательно использовать утилиты на подобии Acronis True Image или Norton Ghost, достаточно простой утилиты dd, которая входит в состав большинства Unix-подобных операционных систем (Linux, FreeBSD, Solaris и т.д.)

В статье рассмотрен простой способ создания резервной копии образа жесткого диска при помощи dd.

Первым делом необходимо подготовиться к резервному копированию. В данной статье введем следующие обозначения:
/dev/sda - диск, образ которого необходимо создать;
/dev/sdb - диск на который будет записан образ.

При необходимости нужно подставить собственные значения.
Подготовка к созданию образа жесткого диска

Первым делом необходимо загрузиться с любого доступного Live-CD диска, имеющего утилиту dd, и войти в командную строку в качестве суперпользователя.

Создаем точку монтирования для проведения резервного копирования.
mkdir /mnt/backup

Монтируем жесткий диск на который необходимо сохранить образ.
mount /dev/sdb1
Создание образа жесткого диска
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
if=/dev/sda - копируем весь жесткий диск sda;
of=/mnt/backup/sda.img - копируем в /mnt/backup/sda.img;
bs=8M - задаем размер кэша жесткого диска для ускорения процедуры копирования (иначе данные будут сбрасываться малыми порциями по 512 байт);
conv=sync,noerror - указываем dd на необходимость копирования по типу бит-в-бит с игнорированием ошибок чтения.

Для сокращения размера образа жесткого диска его можно сжать любым архиватором.
dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img
Восстановление образа жесткого диска

Для восстановления образа жесткого диска необходимо проделать процедуру обратную процедуре создания этого образа.
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

При использовании сжатия параллельно необходимо разархивировать образ.
gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M
Миграция системы на другой жесткий диск

Для миграции всей системы на другой жесткий диск необходимо, в качестве цели назначения задать расположение нового диска.
dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror

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

Главный минус в dd — это отсутствие наглядного представления статистики выполнения процедуры копирования. Однако этот минус можно легко обойти.

Достаточно подключиться к другому терминалу.
Alt+Ctrl+F2

Определить номер процесса, под которым запущена dd.
pgrep -l '^dd$'

Периодически посылать данному процессу команду kill -USR1 номер_процесса_dd.
watch -n 5 kill -USR1 номер_процесса_dd
watch -n 5 - выполнять команду каждые 5 секунд;
kill -USR1 номер_процесса_dd - показать статистику копирования.

http://www.natalink.ru/articles/sozdanie_obraza_zhestkogo_diska_pri_pomoschi_utility_dd_v_unix

Обновлено: 13.03.2015