Создание образа

Предположим, что у нас есть два диска:

/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 — показать статистику копирования.

Минусы использования dd для создания образов диска

У всего есть плюсы и минусы. dd является бесплатным и очень гибким инструментом, однако с его помощью можно сделать только полное копирование тома. Специальные программы умеют копировать только данные которые хранятся на диске.

Таким образом, объем образа диска, созданный с помощью dd будет равен объему самого диска — вне зависимости, сколько на диске данных.