Меню
Бесплатно
Главная  /  Интернет  /  Создание образа жесткого диска при помощи утилиты dd. Как записать iso-образ дистрибутива на флешку из терминала в Ununtu и производные Dd копирование

Создание образа жесткого диска при помощи утилиты dd. Как записать iso-образ дистрибутива на флешку из терминала в Ununtu и производные 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 UserName@HostName "dd of=sdX.img.gz bs=8M"

и обратно

Dd if=sdX.img.gz | ssh -c blowfish UserName@HostName "dd of=/dev/sdX bs=8М"

Команда 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 права суперпользователя, когда без этих прав можно обойтись.

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

    Rufus - бесплатное программное обеспечение с открытым исходным кодом для форматирования съемных USB-носителей данных и создания загрузочных дисков с различными операционными системами. Программа отличается простотой использования, высокой скоростью работы и поддерживает многоязычный интерфейс.

Скачать программу можно на сайте разработчика . На странице размещены ссылки для скачивания стандартной версии Rufus , и переносимой Rufus portable , которые ни чем не отличаются, кроме имени исполняемого файла и места хранения настроек. Настройки программы включают в себя используемый язык и параметры проверки обновлений. Стандартная версия хранит эти параметры в реестре, а переносимая – в файле rufus.ini каталога программы. Rufus не требует установки в системе – просто скачайте исполняемый файл и запустите его. Интерфейс программы очень прост:

В целом, программа Rufus не является чем-то уникальным в области средств для создания загрузочных носителей и главное ее достоинство – простота использования. Для того, чтобы создать загрузочную флэшку с ее помощью, достаточно иметь исходный образ загружаемой системы и уметь нажать на кнопку ”Старт”. Все выбираемые параметры и настройки, по умолчанию уже рассчитаны на использование программы для работы на компьютере стандартной конфигурации.

Наиболее просто и удобно использовать Rufus для создания загрузочной флэшки (загрузочного USB-диска) из ISO-образов установочных дисков Windows или Linux, а также дисков аварийного восстановления системы и средств диагностики.

При создании загрузочной флэшки Windows достаточно выбрать устройство, на которое будет выполняться запись и файл загрузочного iso-образа. Прочие параметры программа подставит сама.

Если в наличии нет файла с образом ISO, то его можно создать на базе физического компакт-диска (или из набора файлов дистрибутива) с помощью программ для записи CD/DVD, таких как известные Nero, Alcohol, или свободно распространяемых CDBurnerXP или ImgBurn .

Порядок создания загрузочной флэшки с Windows следующий:

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

  • выбрать схему раздела и тип системного интерфейса. Rufus позволяет создавать флэшки для загрузки в интерфейсе обычного BIOS и для загрузки в среде UEFI, создавать загрузочные записи для томов MBR и томов GPT. По умолчанию принят режим "MBR для компьютеров с BIOS или UEFI" – наиболее распространенный на сегодняшний день режим для загрузочных флэшек.

  • выбрать файловую систему, которая будет использоваться на создаваемой загрузочной флэшке. По умолчанию, для загрузочных флэшек с Windows, используется файловая система FAT32 , но при необходимости, можно выбрать NTFS , если требуется использование файлов размером более 4 ГБ.

  • задать размер кластера. Размер кластера выбирается программой исходя из данных образа и типа файловой системы, но при необходимости, его можно изменить.

  • указать метку тома, которая будет задана для создаваемой флэшки.

  • задать параметры форматирования. Данные параметры лучше всего оставить по умолчанию и просто выбрать файл образа ISO. Для образов, созданных программой dd в Linux, нужно выбрать параметр DD-образ .

    После нажатия кнопки Старт программа выполнит форматирование флэшки, установит признак активного раздела, запишет главную загрузочную запись и загрузочную запись раздела, а также данные загрузочного носителя из ISO-образа. После завершения работы Rufus можно выполнять загрузку с использованием полученной загрузочной флэшки.

    Использование технологии виртуализации для тестирования загрузочных флэшек. Ссылки для скачивания бесплатных и удобных программ для упрощения процесса создания, отладки и проверки создаваемых загрузочных носителей.

    dd — простая утилита, которая входит в состав большинства Unix-подобных операционных систем — Linux, FreeBSD, Solaris и т.д.
    Ее предназначение — чтение данных из одного устройства или файла и запись в другой.

    dd можно эффективно использовать для создания образа жесткого диска, при этом обойдясь без коммерческих утилит вроде Acronis True Image или Norton Ghost.

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

    • /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 для создания образов диска

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

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

    Создадим с помощью утилиты dd образ флешки с архивацией свободного места. Резервный образ пригодится, если вдруг внезапно перестанет работать оригинал с важной информацией. Например, флешка с закрытыми ключами электронных подписей руководства организации. Итак, у нас есть флешка /dev/sdd объемом 4ГБ, информация на которой занимает около 90МБ.
    du - sh / run / media / aleksey / Transcend

    89M /run/media/aleksey/Transcend

    Все команды выполняются от имени пользователя root . Или в соответствующих дистрибутивах перед командами добавляйте sudo .
    fdisk - l / dev / sdd

    Disk /dev/sdd: 3.7 GiB, 3904897024 bytes, 7626752 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xc653eaa4 Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 7628543 7626496 3.7G b W95 FAT32

    Disk /dev/sdd: 3.7 GiB, 3904897024 bytes, 7626752 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disklabel type: dos

    Disk identifier: 0xc653eaa4

    Device Boot Start End Sectors Size Id Type

    /dev/sdd1 2048 7628543 7626496 3.7G b W95 FAT32

    Создав простой образ командой
    dd if = / dev / sdd of = sdd . iso bs = 4M conv = noerror ,
    мы обрекаем себя на хранение файла 4ГБ. А если бы флешка была емкостью 64ГБ? И не одна? Эту проблему нам поможет решить обычный архиватор, возьмем стандартный gzip .
    dd if = / dev / sdd bs = 4M conv = noerror | gzip - c > sdd . iso . zip
    где ключ -c позволяет работать со стандартным выводом.
    После завершения работы посмотрим на получившийся файл. ls - al sdd*

    Получился файл размером примерно 25МБ. Реальная экономия места на диске даже по сравнению с 4ГБ файлом!
    Для восстановления флешки из образа используем обратный порядок команд.
    gunzip - c sdd . iso . zip | dd of = / dev / sdd conv = noerror bs = 4M

    Также можно архивировать образы жестких дисков, где объемы на порядок больше.

    Кстати! Для наглядности процесса из-за отсутствия у dd своего прогресс-бара предлагаю использовать небольшую утилитку progress — Coreutils Progress Viewer. Установить её в Fedora не составит труда.
    dnf install progress
    Для других дистрибутивов нужный репозиторий можно найти по ссылке https://pkgs.org/download/progress .
    Установив и запустив утилиту командой watch progress во втором терминале (в первом у нас работает архиватор и dd) от имени того же пользователя, увидим примерно такую картину.

    man progress покажет Вам различные полезные ключи этой утилиты.