четверг, 6 декабря 2012 г.

dd - Примеры использования

  • Работа с CD/DVD-дисками и образами
  • Создать образ CD/DVD, используя большой размер блока. Игнорировать ошибки:
    dd if=/dev/cdrom of=backup.iso bs=65536 conv=noerror
    Записать ISO-образ «image.iso» на устройство sdb вместе с его загрузочным сектором и форматированием раздела в файловую систему образа (как правило, ISO 9660 или UDF):
    dd if=image.iso of=/dev/sdb
  • Работа с файлами
  • Скопировать файл foo в файл bar:
    dd if=foo of=bar
    Скопировать файл foo в файл bar, пропустив первые 10 КБ из файла foo:
    dd if=foo of=bar bs=1k skip=10
    Порезать 10-мегабайтный файл foo на 2 по 5 МБ:
    dd if=foo of=bar.0 bs=1M count=5
    dd if=foo of=bar.1 bs=1M skip=5
    Склеить четыре 100-мегабайтных файла в один:
    dd if=SMILE.001 of=SMILE  bs=1M seek=0
    dd if=SMILE.002 of=SMILE  bs=1M seek=100
    dd if=SMILE.003 of=SMILE  bs=1M seek=200
    dd if=SMILE.004 of=SMILE  bs=1M seek=300
    а можно и так:
    dd if=SMILE.001 > SMILE
    dd if=SMILE.002 >> SMILE
    dd if=SMILE.003 >> SMILE
    dd if=SMILE.004 >> SMILE
    или же (для сбора файла из большого количества кусков):
    for i in {1..4}; do 
       dd if=SMILE.00$i >> SMILE
    done
    Примеры выше показывают возможности dd, на практике, обычно, используется cat
    cat SMILE.00{1,2,3,4} > SMILE
    Вывести на экран (в /dev/stdout) первые 256 байт файла foo:
    dd if=foo of=/dev/stdout bs=128 count=2
    или:
    dd if=foo bs=128 count=2
    Предыдущая команда годится только для просмотра текстового файла. Содержимое бинарного файла рекомендуется смотреть так:
    dd if=foo bs=1 count=10 2>/dev/null | hexdump
  • Резервное копирование и удаление данных
  • Скопировать один раздел жёсткого диска на другой жёсткий диск, игнорируя ошибки ввода-вывода:
    dd if=/dev/sda1 of=/dev/sdb2 bs=4096 conv=noerror
    Сделать копию главной загрузочной записи (MBR) первого жёсткого диска:
    dd if=/dev/hda of=bootloader.mbr bs=512 count=1
    Просмотреть содержимое главной загрузочной записи (MBR) первого жёсткого диска:
    dd if=/dev/sda bs=512 count=1 | hexdump -C
    Копировать всё, кроме метки, с диска на магнитную ленту:
    (dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
    Копировать всё, не перезаписывая метку, с магнитной ленты на диск:
    (dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
    Уничтожить содержимое устройства /dev/sdg, заполнив его «нулями» из /dev/zero:
    dd if=/dev/zero of=/dev/sdg bs=65535
    Узнать статус выполнения операции:
    killall -USR1 dd
    или
    pkill -USR1 -n -x dd