Кое-что про dd


065_1

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

Программа предназначена побайтного копирования данных из одного места в другое. DD может создать образ жесткого диска целиком, какого-то определенного раздела, скопировать содержимое CD/DVD диска, создать образ флешки и многое другое. Итак приступим.

dd if=/dev/hda of=/dev/sda

Данной командой мы сделали полную копию одного жесткого диска на другой.

Ключ if= указывает носитель, с которого мы хотим скопировать данные либо сделать образ этого носителя, а ключ of= указывает носитель, на который мы должны перенести данные, либо создаваемый образ.

dd if=/dev/sda of=/home/user/image

Данная команда копирует диск в определенную папку, в нашем случае в директорию image.

dd if=/dev/hda of=/dev/hdb conv=noerror,sync

Эта команда скопировала жесткий диск (hda) на другой диск (hdb). Обозначения Ваших устройств (жестких дисков, флешек) могут отличаться, к примеру могут обозначаться как sda. Но добавились новые параметры. Рассмотрим их:

— параметр noerror — указывает на то, что нужно продолжать копирование если будут попадаться bad-блоки и другие ошибки
— параметр sync — говорит о том, что поврежденные либо отсутствующие данные копируемого объекта (тот носитель, с которого мы хотим скопировать данные) на выходе будут заменены нулями. Данный параметр замедляет работу программы, но для лучшего результата лучше его использовать.

dd if=/dev/hda3 of=/home/user/backup/hda3.img



Эта команда копирует раздел /dev/hda3 в файл-образ hda3.img. Есть один минус у dd — утилита копирует данные по секторам и поэтому ей абсолютно все равно сколько данных на копируемом носителе, главное для нее это размер объекта! Другими словами, если раздел диска /dev/hda3 имеет объем в 10 Гб, а данных на нем всего лишь 1 Гб, то образ hda3.img будет иметь размер тоже 10 Гб.

Теперь с легкостью восстановим созданный образ командой:

dd if=/home/user/backup/hda3.img of=/dev/hda3

Как видите, в данной команде просто поменялись пути из первой команды.

Можно создать копию CD/DVD диска, команда будет такой:

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

В Вашей системе, DVD привод может иметь другое имя, к примеру — /dev/sr0. Хотя если диск имеет дефекты, то лучше воспользоваться другими программами, например этими.

Есть еще такой параметр —bs. Он указывает размер блока, который будет считывать программа за один проход. По умолчанию он равен 512 байт. Поэтому если не указывать данный параметр, то копирование может идти крайне долго, поэтому иногда можно пробовать поэкспериментировать с размером данного ключа.

dd if=/dev/hda bs=64K of=/dev/sda

В данном примере параметр «bs=64K» говорит нам о том, что размер блока равен 64 килобайтам. Используя такой большой размер блока ускоряется процесс копирования. Поэтому, если Вы знаете, что Ваш копируемый носитель не имеет «бэдов», то параметр bs можно сделать ещё больше. Можно сделать его равным размеру кеша копируемого жесткого диска (например bs=16m, что равно 16 Мб), это в свою очередь очень ускорит общий процесс.

Еще имеется параметр count=n(блоков). Он указывает программе сколько блоков нужно скопировать. Если Вы захотите сохранить загрузочный сектор жесткого диска, который расположен первым на диске, то команда будет следующей:

sudo dd if=/dev/hda of=backup.mbr bs=512 count=1

Из этой команды видно, что мы сохраним с жесткого диска hda всего один сектор (count=1), который будет равен 512 байт в файл backup.mbr.

Теперь о том, как я создавал загрузочную флешку из образа. Образ находился на другом жестком диске и путь к нему /dev/sdb3/dm/image.iso не хотел срабатывать. Поэтому я поступил следующим образом. Захожу через Nautilus на данный жесткий диск, в папку с образом. Теперь мне нужно определить точный путь к образу. Кликаю правой кнопкой мыши по образу — Свойства. В открывшемся окне копируем путь к нему.

 

Свойства «image.iso»_638

В итоге у меня получился такой путь к образу — /media/938eb7e4-1e03-48c9-a9d2-4b7a5f263b01/dm/image.iso

Подставим этот путь в команду для копирования образа на флешку и получим следующий результат:

sudo dd if=/media/938eb7e4-1e03-48c9-a9d2-4b7a5f263b01/dm/image.iso of=/dev/sdc

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

 

dm@dm-System-Product-Name: ~_639

Ну вот в принципе и все. Я постарался описать самые распространенные команды, хотя на самом деле их существует очень большое множество. Удачи и дружите с Google, он знает очень много )))

p.s. Существует графическая (GUI) оболочка к dd. Это программа GDiskdump.


Кое-что про dd: 6 комментариев

  1. А можно ли как-нибудь образ, размером с DVD (4,7 GB), закачать на флешку 4 GB, чтобы с неё загрузиться из под биоса для установки системы в режиме live-usb? Как можно его сжать без потери работоспособности?

    1. Скорее всего никак, потому что если Вы внимательно читали статью, то для dd важен размер, точный размер. А сжать образ флешки с программами и системами думаю не реально, это же не фильм, который можно сжать с небольшой потерей качества.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *