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

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

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

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

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



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

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


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

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


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


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


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

Будьте внимательны так как при ошибке в название флешки в команде 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, которая просто выполняет копирование данных из одного места в другое на двоичном уровне. Она может скопировать CD/DVD диск, раздел на диске или даже целый жесткий диск. В этой статье мы рассмотрим что из себя представляет команда dd linux, основные ее опции и параметры, а также как ею пользоваться.

Сначала нужно понять как работает команда dd и что она делает. Фактически, это аналог утилиты только для блочных данных. Утилита просто переносит по одному блоку данных указанного размера с одного места в другое. Поскольку в Linux все, в том числе, устройства, считается файлами, вы можете переносить устройства в файлы и наоборот.

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

Команда dd

Синтаксис утилиты достаточно необычен, но в то же время очень прост, после того как вы его запомните и привыкнете:

$ dd if= источник_копирования of= место_назначения параметры

С помощью параметра if вам нужно указать источник, откуда будут копироваться блоки, это может быть устройство, например, /dev/sda или файл - disk.img. Дальше, с помощью параметра of необходимо задать устройство или файл назначения. Другие параметры имеют такой же синтаксис, как if и of.

Теперь давайте рассмотрим дополнительные параметры:

  • bs - указывает сколько байт читать и записывать за один раз;
  • cbs - сколько байт нужно записывать за один раз;
  • count - скопировать указанное количество блоков, размер одного блока указывается в параметре bs;
  • conv - применить фильтры к потоку данных;
  • ibs - читать указанное количество байт за раз;
  • obs - записывать указанное количество байт за раз;
  • seek - пропустить указанное количество байт в начале устройства для чтения;
  • skip - пропустить указанное количество байт в начале устройства вывода;
  • status - указывает насколько подробным нужно сделать вывод;
  • iflag, oflag - позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них: nocache, nofollow.

Это были все основные опции, которые вам могут понадобиться. Теперь перейдем ближе к практике и рассмотрим несколько примеров как пользоваться утилитой dd linux.

Как пользоваться dd?

Обычные пользователи используют команду dd чаще всего для создания образов дисков DVD или CD. Например, чтобы сохранить образ диска в файл можно использовать такую команду:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror

Фильтр noerror позволяет отключить реагирование на ошибки. Дальше, вы можете создать образ жесткого диска или раздела на нем и сохранить этот образ на диск. Только смотрите не сохраните на тот же жесткий диск или раздел, чтобы не вызвать рекурсию:

dd if=/dev/sda of=~/disk.img

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

dd if=~/disk.img of=/dev/sda

Очень важная и полезная опция - это bs. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:

  • с - один символ;
  • b - 512 байт;
  • kB - 1000 байт;
  • K - 1024 байт;
  • MB - 1000 килобайт;
  • M - 1024 килобайт;
  • GB - 1000 мегабайт;
  • G - 1024 мегабайт.

Команда dd linux использует именно такую систему, она сложная, но от этого никуда не деться. Ее придется понять и запомнить. Например, 2b - это 1 килобайт, и 1k, это тоже 1 килобайт, 1М - 1 мегабайт. По умолчанию утилита использует размер блока - 512 байт. Например, чтобы ускорить копирование диска можно брать блоки размером по 5 мегабайт. Для этого применяется такая команда:

dd if=/dev/sda of=~/disk.img bs=5M

Следующий параметр - это count. С помощью него можно указать сколько блоков необходимо скопировать. Например, мы можем создать файл размером 512 мегабайт, заполнив его нулями из /dev/zero или случайными цифрами из /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M count=512

Обратите внимание, что этот параметр указывает не размер в мегабайтах, а всего лишь количество блоков. Поэтому, если вы укажите размер блока 1b, то для создания файла размером 1Кб нужно взять только два блока. С помощью этого параметра также можно сделать резервную копию таблицы разделов MBR. Для этого скопируем в файл первые 512 байт жесткого диска:

sudo dd if=/dev/sda of=mbr.img bs=1b count=1

Для восстановления используйте обычную команду развертывания образа на диск.

Если образ диска слишком большой, можно перенаправить весь вывод нестандартный поток вывода утилиты gzip:

dd if =/dev/sda2 | bzip2 disk.img.bz2

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

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

Как вы знаете, команда dd linux пишет данные на диск непосредственно в двоичном виде, это значит, что записываются нули и единицы. Они переопределяют то, что было раньше размещено на устройстве для записи. Поэтому чтобы стереть диск вы можете просто забить его нулями из /dev/zero.

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

Такое использование dd приводит к тому что весь диск будет полностью стерт.

Выводы

В этой статье мы рассмотрели как пользоваться dd linux, для чего можно применять эту утилиту и насколько она может быть полезной. Это почти незаменимый инструмент системного администратора, поскольку с помощью нее можно делать резервные копии целой системы. И теперь вы знаете как. Если у вас остались вопросы, спрашивайте в комментариях!

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

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