Собственно, команда:
/dev/cdrom - файл-устройство компакт-дисковода
cdimage.iso - имя файла образа. Если указан не полный (или относительный) путь, то будет создан в текущем каталоге
2048 - размер кластера на компакт-диске. При указании bs=2048 считывание данных с диска и запись в файл будет производиться блоками по 2048 байт (2 килобайта). По умолчанию ibs = obs = bs = 512 и в данном конкретном примере его можно было вообще не указывать.
Также с помощью простой команды dd можно сделать массу полезных вещей. Например:
MBR занимает первые 512 байт жёсткого диска. В первых 446 байтах находится системный загрузчик, остальные байты - разметка диска (первичные разделы).
Копирование таблицы разделов с диска /dev/sda на диск /dev/sdb (может быть полезно при создании RAID):
Резервное копирование MBR с диска /dev/sda в файл mbr_sda.iso:
или, что по сути то же самое:)
Удаление MBR (затирание нулями):
Удаление MBR (затирание произвольными значениями, сложнее восстанавливать):
Восстановление из файла mbr_sda.iso (с полной копией MBR) только загрузчика на диск /dev/sda:
Здесь стоит обратить внимание, что чем больше значение bs, тем быстрее происходит копирование. При слишком большом bs для операций может не хватить памяти.
Резервное копирование всего раздела /dev/sda1 в образ sda1.iso (размер образа будет равен размеру партиции!):
Резервное копирование всего раздела /dev/sda1 в образ sda1.iso.gz со сжатием gzip:
Восстановление партиции /dev/sda1 из сжатого образа sda1.iso.gz:
Затирание раздела /dev/sda1 нулями (остаётся небольшая возможность восстановления содержимого):
Затирание раздела /dev/sda1 нулями и единицами в случайном порядке (практически без шансов на восстановление):
Кстати, /dev/random и /dev/urandom - это два разных устройства. Первое - качественнее, второе - быстрее.
При встрече с ошибкой чтения программа dd по умолчанию прекращает работу. Поэтому, если диск начал «сыпаться» и на нём содержатся ошибки, есть смысл воспользоваться ключом conv=sync,noerror. При этом dd будет игнорировать ошибки чтения блока (заданного параметром bs), и в пункт назначения вместо него будет записывать нули. bs должен быть меньше либо равен размеру кластера диска, чтобы не потерять неиспорченные данные.
Все перечисленные команды годятся для работы не только с разделами (/dev/sda1), но и с целыми дисками (/dev/sda)
Восстановление намагниченности поверхности диска (актуально, если файлы у вас хранятся годами без перезаписи):
Варианты расшифровки команды dd: disk dump, direct data, destroy disk.
dd не выводит прогресс операции. Для его просмотра надо ввести в другой консоли:
Или в другой же консоли автоматизировать процесс вывода, например, выводить информацию раз в минуту:
При восстановлении раздела жёсткого диска и если вы уверены, что на разделе нет ошибок - используйте ключ bs и присвойте ему какое-либо большое значение. Копирование большими блоками может на порядок ускорить операцию.
По умолчанию ibs = obs = bs = 512.