Команда dd выполняет всего одну простую функцию: копирует данные из файла в другой файл. Но поскольку в Linux многие сущности представлены именно как файлы, то и применений у dd становится много. Рассмотрим наиболее полезные из них.
dd — это сокращение от data duplicator (копирование данных). Но из-за того, что в неумелых руках команда dd может привести к полной потере всех данных, программу часто в шутку называют disk destroyer (разрушитель диска). Попытаемся разобраться как не только не уничтожить свои данные, но и даже извлечь пользу из применения dd.
Синтаксис команды следующий:
dd if=$input_data of=$output_data [options]
Команда скопирует данные из файла $input_data в файл $output_data, учитывая опции option. Казалось бы все просто. А теперь рассмотрим какие возможности открывает это простое копирование.
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 права суперпользователя, когда без этих прав можно обойтись.
В комментариях с радостью принимаются ваши собственные примеры использования этой замечательной программы.
Использованы материалы с сайта LinuxCareer.com.
dd войдёт в НПП?
А почему у Вас возникают сомнения? dd давно является частью стандарта и многие программы предполагают наличие в системе dd. Удаление этой программы создаст много проблем, но не дает никаких преимуществ.