Как записать iso-образ дистрибутива на флешку из терминала в Ununtu и производные. Резервное копирование системы Что такое dd образ диска

Команда dd выполняет всего одну простую функцию: копирует данные из файла в другой файл. Но поскольку в Linux многие сущности представлены именно как файлы, то и применений у dd становится много. Рассмотрим наиболее полезные из них.

А что значит dd?

dd - это сокращение от data duplicator (копирование данных). Но из-за того, что в неумелых руках команда dd может привести к полной потере всех данных, программу часто в шутку называют disk destroyer (разрушитель диска). Попытаемся разобраться как не только не уничтожить свои данные, но и даже извлечь пользу из применения dd.

Общий случай использования dd

Синтаксис команды следующий:

Dd if=$input_data of=$output_data

Команда скопирует данные из файла $input_data в файл $output_data, учитывая опции option. Казалось бы все просто. А теперь рассмотрим какие возможности открывает это простое копирование.

Примеры использования dd

1. Уничтожение всех данных на диске без возможности восстановления:

Dd if=/dev/urandom of=/dev/sda bs=4k

2. Полное побайтное копирование одного диска на другой (клонирование):

Dd if=/dev/sda of=/dev/sdb bs=4096

3. Копирование одного раздела в другой:

Dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror

4. Отображение списка доступных файловых систем:

Dd if=/proc/filesystems | hexdump -C | less

5. Копирование данных на устройствах с разным размером блока (1Кб у источника и 2 Кб у приемника):

Dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1

6. Создать загрузочную флешку:

Dd if=/home/$user/bootimage.img of=/dev/sdc

7. Проверить диск на сбойные сектора:

Dd if=/dev/sda of=/dev/null bs=1m

8. Создание резервной копии MBR диска и сохранение на дискету

Dd if=/dev/sda of=/dev/fd0 bs=512 count=1

9. Снятие образа ISO с компакт-диска:

Dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync

10. Проверка файла на вирусы (разумеется, потребуется ClamAV):

Dd if=/home/$user/suspicious.doc | clamscan -

11. Сохранение содержимого ОЗУ в файл:

Dd if=/dev/mem of=/home/$user/mem.bin bs=1024

12. Конвертация образа из формата Nero NRG в стандартный образ ISO:

Dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k

13. Просмотр содержимого MBR:

Dd if=/dev/sda count=1 | hexdump -C

А где же обещанный миллион применений?

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

В комментариях с радостью принимаются ваши собственные примеры использования этой замечательной программы.

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

  • /dev/sda - диск, образ которого необходимо создать;
  • /dev/sdb - диск на который будет записан образ.

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

Подготовка к созданию образа жесткого диска

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

mkdir /mnt/backup

Монтируем жесткий диск на который необходимо сохранить образ.

Создание образа жесткого диска

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 - это отсутствие наглядного представления статистики выполнения процедуры копирования. Однако этот минус можно легко обойти. Достаточно подключиться к другому терминалу.

Определить номер процесса, под которым запущена dd.

Периодически посылать данному процессу команду kill -USR1 номер_процесса_dd .

watch -n 5 kill -USR1 номер_процесса_dd

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

Будьте внимательны так как при ошибке в название флешки в команде dd можно повредить винчестер хоста.

Выведем обозначение разделов всех устройств

и найдем среди них флеш накопитель:

Sudo fdisk -u -l /dev/sd?

Так же, для определения разделов на всех устройства, можно воспользоваться командой:

Sudo cat /proc/partitions

Синтаксис команды dd

dd if=/AAAA of=/BBBB bs=CCCC count=DDDD conv=noerror
  • if : (input file) указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
  • of : (output file) указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
  • bs : количество байт, которые будут записаны за раз. То есть размер куска данных, которые будут прочитаны и записаны за раз. рекомендуют ставить bs= размеру кеша винчестера т.е. 8M 16M 32M
  • count : сколько кусков bs будет скопировано.
  • conv: позволяет подключать фильтрs, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения.

Примеры

Полное стирание диска

Чтобы на носителе ничего нельзя было восстановить - можно забить его нулями, эта команда всегда закончиться ошибкой "на носителе кончилось место"

Dd if=/dev/zero of=/dev/sdX

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

dd if=/dev/cdrom of=image.iso conv=noerror

так же можно в систему

Mount -o loop /PathToImageFile/image.iso /mnt/FolderMount

Если что-то не получается, процесс разбивается на 2 уровня:

Losetup -e /dev/loop0 /PathToImageFile/image.iso mount /dev/loop0 /mnt/FolderMount

Операции с MBR

MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так:

Dd if=/dev/sda of=mbr.img bs=512 count=1

Восстановить можно проще:

Dd if=mbr.img of=/dev/sda

Копируем с архивированием

(используя gzip) данные с флешки на винчестера.

Dd if=/dev/sdX conv=sync,noerror bs=8M | gzip -c >/PathToSave/sdX.img.gz

и обратно

Gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync,noerror bs=8M

Копируем по сети

dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c blowfish [email protected] "dd of=sdX.img.gz bs=8M"

и обратно

Dd if=sdX.img.gz | ssh -c blowfish [email protected] "dd of=/dev/sdX bs=8М"

Итак, предположим у вас загружен ISO-файл с образом дистрибутива и подготовлена флешка.

Терминальная команда для записи iso-образа дистрибутива выглядит следующим образом:

sudo dd if=путь к.iso of=/dev/sdb

Где вместо путь к.iso нужно указать путь к iso-файлу из вашей папки Загрузки .
sdb в конце команды, это флешка на которую будет записан образ. Чтобы определить вашу флешку, выполните в терминале:



И если у вас флешка определилась по-другому, измените в команде.

Чтобы правильно ввести в команду путь к файлу, откройте папку с файлом, откройте рядом терминал и перетащите в него файл:


В терминале отобразится путь к файлу и сам файл.iso. Скопируйте его без кавычек и вставьте в команду, а в терминале нажмите сочетание клавиш Ctrl+C для сброса и отображения новой строки приглашения.

Проще всего создавать команду в текстовом редакторе.
У меня получилась следующая команда:


Теперь вставьте флешку в порт компьютера, скопируйте полученную команду из текстового редактора, введите в терминал и выполните (нажмите Enter):


Курсор терминала будет моргать и кажется что ни чего не происходит, но на самом деле идёт запись. Дождитесь окончания записи образа и по окончании вы должны увидеть в терминале примерно следующее:


Вот и всё. Ваша флешка стала загрузочной и вы можете теперь производить установку дистрибутива на любом компьютере.

Решил на днях создать образ своих рабочих, загрузочных флешек с разными операционными системами. Как создавать эти мульти-загрузочные флешки, я уже в одной из своих статей. Поможет нам, в создании образов, старая и проверенная временем программа dd . Насколько я знаю, то утилита dd должна быть установлена в системе по умолчанию. Для создания образа Вашей «флешки», выполним в Терминале следующую команду:

sudo dd if=/dev/sdc of=image.iso

/dev/sdc — это Ваша флешка,

image.iso — это образ с именем image и расширением .iso, который появится в Вашей домашней папке.

Чтобы узнать, как обозначается Ваша флешка в системе, можно к примеру запустить утилиту Диски, или программу GParted и посмотреть в них, а если через Терминал, то поможет команда:

sudo fdisk -l

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

sudo apt-get install dcfldd

Сотрудники лаборатории DoD Computer Forensics Laboratory (DCFL) внесли некоторые изменения в команду dd, тем самым улучшив ее и применяя в своих исследовательских работах. В итоге на свет появилась команда dcfldd, которая обеспечивает хеширование копируемых данных через некоторые промежутки времени для их аутентификации. Более того, dcfldd работает гораздо быстрее, чем dd. Теперь, если Вы хотите именно видеть прогресс копирования, либо создания образа, Вам нужно выполнить команду:

sudo dcfldd if=/dev/sdc of=image.iso

Теперь, когда образ готов, можно создать новую, загрузочную флешку. Вставим вместо флешки с системами, новую, пустую. Думаю, что она определится системой так же, как и первая — sdc, но лучше перепроверить. Теперь команда будет такой:

sudo dd if=image.iso of=/dev/sdc

Ну а если у Вас пустая флешка имеет тот же размер, что и носитель с нужными Вам данными, то можно просто скопировать все содержимое первой флешки сразу на вторую, минуя создание образа на жесткий диск. В этом случае команда будет следующей:

sudo dd if=/dev/sdb of=/dev/sdc

По этой схеме можно копировать, создавать образы не только флешек, но и жестких дисков целиком, либо их разделов, CD/DVD дисков и т.д. Но об этом в следующей статье.

Выбор flash-накопителей остается только за вами. Можно записать загрузочный образ на обычные флешки, от известных брендов: Transcend, Kingston, Apacer, Silicon Power и других производителей, а можно немного отличиться и выбрать для себя ювелирные флешки со стразами, бриллиантами и другими украшениями. Хотя это конечно же будет выбор прекрасной половины человечества. Хотя на работу, записанного образа, внешний вид устройства не влияет абсолютно.