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

dd Linux 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 - показать статистику копирования.
06 Апр 2011 14:30 -- Юрий Акимов