Что значит dd – DD — это… Что такое DD?

Команда dd Linux | Losst

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

Для решения всех этих задач используется утилита dd linux, которая просто выполняет копирование данных из одного места в другое на двоичном уровне. Она может скопировать CD/DVD диск, раздел на диске или даже целый жесткий диск. В этой статье мы рассмотрим что из себя представляет команда dd linux, основные ее опции и параметры, а также как ею пользоваться.

Содержание статьи:

Как работает команда dd?

Сначала нужно понять как работает команда dd и что она делает. Фактически, это аналог утилиты копирования файлов cp только для блочных данных. Утилита просто переносит по одному блоку данных указанного размера с одного места в другое. Поскольку в 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 of=~/disk.img if=/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, для чего можно применять эту утилиту и насколько она может быть полезной. Это почти незаменимый инструмент системного администратора, поскольку с помощью нее можно делать резервные копии целой системы. И теперь вы знаете как. Если у вас остались вопросы, спрашивайте в комментариях!

losst.ru

MM-YYYY - это... Что такое DD-MM-YYYY?

  • YYYY — Four digit year date (Business » General) Four digit year date (Governmental » NASA) Four digit year date (Governmental » Military) Four digit year date (Academic & Science » Meteorology) Four digit year date (Academic & Science » Ocean Science)… …   Abbreviations dictionary

  • YYYY — abbr. Year (4 digit field indicator) …   Dictionary of abbreviations

  • DD/MM/YYYY — This article is about the band. For the date format, see Date and time notation by country. DD/MM/YYYY Left to right, Tomas Del Balso, Michael Rozenberg, Jordan Holmes, Matt King, Mike Claxtion Background information …   Wikipedia

  • Date format by country — This page gives an overview of date formats by country. Contents 1 Legends 2 Map 3 Listing …   Wikipedia

  • Serbian mafia — Territory European Union, Serbia, Bosnia Herzegovina, Croatia, Montenegro, Macedonia, Norway. Ethnicity Serbs, Montenegrins Criminal activities Arms trafficking, Assassinations, Assault, Attempted murder, Auto theft …   Wikipedia

  • Date and time notation by country — Different style conventions and habits exist around the world for dates and times in writing and speaking. Examples:*The order that a year, month, and day are written. *How weeks are identified. *The 24 hour clock and/or the 12 hour clock. *The… …   Wikipedia

  • ISO 8601 — Data elements and interchange formats – Information interchange – Representation of dates and times is an international standard covering the exchange of date and time related data. It was issued by the International Organization for… …   Wikipedia

  • Banco de Oro-Equitable PCI Bank merger — The Banco de Oro Equitable PCI Bank merger (2004 December 27, 2006) is a plan by the SM Group of Companies and Banco de Oro Universal Bank, the fifth largest bank in the Philippines, to merge with Equitable PCI Bank, the third largest bank… …   Wikipedia

  • Boris Tadić — Infobox President name = Boris Tadić Борис Тадић order = President of Serbia primeminister = Vojislav Koštunica Mirko Cvetković term start = 11 July 2004 term end = predecessor = Predrag Marković (Acting) successor = order2 = Minister of Defence… …   Wikipedia

  • EXIT (festival) — infobox music festival music festival name = EXIT festival location = flagicon|Serbia Novi Sad, Serbia years active= 2000 present founders = Dušan Kovačević and Bojan Bošković dates = Four days, starting on the first Thursday of July genre = Rock …   Wikipedia

  • Kosovan parliamentary election, 2010 — 2007 ← 12 December 2010 …   Wikipedia

  • dic.academic.ru

    Команда dd и все, что с ней связано / Habr


    В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
    Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.

    Начну с небольшого примера, наглядно иллюстрирующего основные параметры команды:

    # dd if=/dev/urandom of=/dev/null bs=100M count=5

    Параметры:

    • if: указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
    • of: указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
    • bs: количество байт, которые будут записаны за раз. Можно представлять этот аргумент как размер куска данные, которые будут записаны или прочитаны, а количество кусков регулируется уже следующим параметром.
    • count: как раз то число, которое указывает: сколько кусочков будет скопировано.

    Таким образом, описанная команда читает 5*100 мегабайт из устройства /dev/urandom в устройство /dev/null. Придавая этой команде смысловую нагрузку получается, что система сгенерирует 500 мегабайт случайных значений и запишет их в null устройство. Конечно, единственное, что сделает эта команда: нагрузит процессор на несколько секунд. Рассмотрим примеры из практики:

    Создание образа диска:

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

    Команда будет считывать из устройства данные и записывать в файл до тех пор, пока не достигнет окончания устройства. Если диск битый, можно попробовать его прочитать, игнорируя ошибки чтения:

    # dd if=/dev/cdrom of=image.iso conv=noerror

    Параметр «conv» позволяет подключать несколько фильтров, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать. Точно таким образом я спас данные со своей флешки Corsair, которую погнули: подобрал подходящее положение, когда контакт есть, и сделал дамп файловой системы.

    Подключить, кстати, такие образы можно при помощи команды mount с ключем "-o loop":

    # mount -o loop image.iso /mnt/image

    Если что-то не получается, процесс разбивается на 2 уровня:

    # losetup -e /dev/loop0 image.iso
    # mount /dev/loop0 /mnt/image

    Если и так не работает, значит файловая система образа полетела.

    Работа с носителями информации

    Очень простое, хоть и не оптимальное решение клонирования жесткого диска:

    # dd if=/dev/sda of=/dev/sdb bs=4096

    Все то же побайтовой копирование с размером буфера 4 Кб. Минус способа в том, что при любой заполненности разделов копироваться будут все биты, что не выгодно при копировании разделов с маленькой заполненностью. Чтобы уменьшить время копирования при манипуляции с большими объемами данных, можно просто перенести MBR на новый носитель (я ниже опишу как), перечитать таблицу разделов ядра (при помощи того же fdisk), создать файловые системы и просто скопировать файлы (не забыв сохранить права доступа к файлам).

    Как вариант, можно даже по расписанию делать бекап раздела по сети. Разрулив ключи ssh будет работать такая схема:

    # dd if=/dev/DEVICE | ssh [email protected] «dd of=/home/user/DEVICE.img».

    Когда-то читал исследование, согласно которому очень большая доля жестких дисков на барахолке подвергается восстановлению данных без привлечения чего-то специализированного, и содержит конфиденциальную информацию. Чтобы на носителе ничего нельзя было восстановить — можно забить его нулями:

    # dd if=/dev/zero of=/dev/DEVICE

    Думаю, понятно на что нужно заменить DEVICE. После проведения лекций по Linux, я очень тщательно стал следить за тем, что пишу.
    Проверить можно тем же dd, но преобразовав данные в hex:

    # dd if=/dev/sda | hexdump -C

    Должны посыпаться нули.

    Операции с MBR

    MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так:

    # dd if=/dev/sda of=mbr.img bs=512 count=1

    Восстановить можно проще:

    # dd if=mbr.img of=/dev/sda

    Причины этих махинаций с MBR могут быть разные, однако хочу рассказать одну особенность, взятую из опыта: после восстановления давней копии MBR, где один из разделов был ext3, а позже стал FAT и использовался Windows, раздел перестал видиться виндой. Причина — ID раздела, который хранится в MBR. Если UNIX монтирует файловые системы согласно суперблоку, то винды ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk, особенно если на компьютере есть винды.

    Генерация файлов

    При помощи dd можно генерировать файлы, а затем использовать их как контейнеры других файловых систем даже в зашифрованном виде. Технология следующая:
    При помощи dd создается файл, забитый нулями (случайными числами забивать не рационально: долго и бессмысленно):

    # dd if=/dev/zero of=image.crypted bs=1M count=1000

    Создался файл размером почти в гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выберу алгоритм blowfish. Подгрузка модулей:

    # modprobe cryptoloop
    # modprobe blowfish

    Ассоциация образа с блочным устройством со включенным шифрованием:

    # losetup -e blowfish /dev/loop0 image.crypted

    Команда запросит ввести пароль, который и будет ключем к образу. Если ключ введен не правильно, система не смонтируется. Можно будет заново создать данные в образе, используя новый ключ, но к старым данным доступа не будет.
    Создаем файловую систему и монтируем:

    # mkfs.ext2 /dev/loop0
    # mount /dev/loop0 /mnt/image

    Образ готов к записи данных. После завершения работы с ним, нужно не забыть его отмонтировать и отключить от блочного loop устройства:

    # umount /dev/loop0
    # losetup -d /dev/loop0

    Теперь шифрованный образ готов.

    Основные идеи я расписал, однако множество задач, которые можно решить при помощи маленькой программки, имя которой состоит из двух букв, намного шире. Программа «dd» — яркий пример того, что IT'шники называют «UNIX way»: одна программа — часть механизма, выполняет исключительно свою задачу, и выполняет ее хорошо. В руках человека, который знает свое дело, которому свойственен не стандартный подход к решению задачи, такие маленькие программки помогут быстро и эффективно решать комплексные задачи, которые, на первый взгляд, должны решать крупные специализированные пакеты.

    habr.com

    dd - это... Что такое dd?

    dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Dataset Definition) из языка JCL

    Введение

    Поскольку в UNIX очень многие объекты являются файлами, спектр применения dd гораздо шире, чем кажется на первый взгляд. Регулярно возникает необходимость не просто скопировать файл или несколько файлов (для чего предназначена утилита cp), а скопировать первые n байт файла, пропустить m байт от начала, прочитать файл с дефектного носителя, транслировать содержимое файла в ASCII, «развернуть» порядок байт в файле (Little-Endian vs. Big-Endian),[1] просто скопировать очень большой файл или все вместе взятое. Для этой цели и служит dd.

    Кроме всего прочего, данная утилита позволяет скопировать регионы из файлов «сырых» устройств, например, сделать резервную копию загрузочного сектора жёсткого диска, или прочитать фиксированные блоки данных из специальных файлов, таких, как /dev/zero или /dev/random.[2]

    Название утилиты dd иногда в шутку расшифровывают, как «disk destroyer», «data destroyer» или «delete data», так как утилита позволяет производить низкоуровневые операции на жёстких дисках — при малейшей ошибке, такой, как реверс параметров if и of, можно потерять часть данных на диске (или даже все данные)[1].

    Некоторые параметры

    При написании статьи были использованы материалы man dd, описывающие версию dd от GNU. Версии dd на других операционных системах могут отличаться.

    Базовые параметры

    dd [--help] [--version] [if=файл] [of=файл] [ibs=байты] [obs=байты] [bs=байты] [cbs=байты] [skip=блоки] [seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]

    • if=файл — читает данные из файла вместо стандартного ввода.
    • of=файл — пишет данные в файл вместо стандартного вывода.
    • bs=n — размер блока.
    • ibs=nn и obs=nn — задаёт, сколько байтов нужно считывать или записывать за раз.
    • count=n — сколько блоков скопировать.
    • seek=n — сколько блоков пропустить от начала в результирующем файле.
    • skip=n — сколько блоков от начала файла пропустить перед началом копирования.
    • conv=фильтр,фильтр — применить фильтры конвертации.
    • ascii — сконвертировать в ASCII из EBCDIC…
    • ebcdic — …и наоборот.
    • block — выравнивание блоков.
    • lcase — преобразовать к нижнему регистру.
    • ucase — преобразовать к верхнему регистру.
    • swab — менять местами пары байт.
    • noerror — игнорировать ошибки ввода-вывода.

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

    Работа с 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:

    Скопировать файл 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=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
    

    Узнать статус выполнения операции:

    Варианты dd, ориентированные на восстановление

    Программы с открытым исходным кодом для восстановления включают dd_rescue и dd_rhelp, которые работают вместе, savehd7 и GNU ddrescue.

    Antonio Diaz Diaz (разработчик GNU ddrescue) сравнивает[3] варианты dd для задач восстановления:

    Стандартная утилита dd осуществляет линейное чтение диска, и это может занять много времени или даже сжечь накопитель без восстановления чего-либо, если ошибки расположены вначале жесткого диска. dd_rescue делает то же самое, что и dd, только более эффективно. dd_rhelp — это сложный shell-скрипт, который запускает dd_rescue много раз, стараясь стратегически копировать накопитель, но это очень неэффективно.

    • dd_rhelp сначала извлекает все доступные к чтению данные и сохраняет их в файл, вставляя нули вместо байтов, которые не смог прочесть. Потом утилита пытается повторно прочитать некорректные данные и обновить этот файл.
    • GNU ddrescue может быть использована для копирования данных прямо на новый диск по необходимости, как и dd.

    См. также

    Примечания

    Ссылки

      Команды Unix
      Форматы архивов (сравнение по типу)
    Только архивирование
    Только сжатие
    Архивирование и сжатие
    Упаковка и распространение ПО

    dic.academic.ru

    dd — Что означает название команды «dd»?

    dd = "Дамп диска".

    Эта утилита исходит из исходной операционной системы UNIX System, где было реплицировано вторичную память (массовые устройства хранения в операционной системе «Виртуальная память»). dd может это сделать, бит для бит, байт для байта, сектор для сектора, трек для трека и т. д. Он также может переворачивать биты, преобразовывать EBCDIC в ASCII, изменять размеры блоков и выполнять практически любую другую двоичную операцию, необходимо перемещать /конвертировать /восстанавливать данные хранилища. Устройства хранения (все) в те дни были намного медленнее, менее плотными и гораздо менее надежными, чем сегодня. Нам приходилось постоянно заменять /восстанавливать магнитные запоминающие устройства произвольного доступа (например, дисковые накопители, гибкие и жесткие магнитные цилиндры и т. Д.).

    В случае сбоя в голове или других катастрофических сбоев устройства хранения, «dd» был (и остается) одной из моих любимых утилит для извлечения данных, которые я мог сделать для нового устройства. После установки нового устройства я мог бы использовать fsck (проверка файловой системы) и fsdb (отладчик файловой системы), чтобы восстановить /восстановить поврежденную файловую систему и, возможно, извлечь некоторые данные.

    Это была наша первая рудиментарная система резервного копирования. Процесс приложения (dd) может работать как «суперпользователь» и читать /записывать непосредственно через подсистему ввода /вывода (ядро) с помощью символьного (raw) или драйвера блока устройства [точек ввода], но полностью обходя файловую систему (ядро) реплицируя конструкцию файловой системы на новое устройство. dd (как и любая другая основная утилита UNIX) также имеет возможность читать со стандартного ввода и записывать на стандартный вывод, позволяя использовать его для других вещей в сценарии оболочки 🙂 ....

    ответил Dr. Dave 8 J000000Wednesday15 2015, 17:29:57

    sprosi.pro

    Dd - это... Что такое Dd?

    dd

    dd (англ. dataset definition — oпределение набора данных) — программа Unix, предназначенная как для копирования, так и для конвертации файлов.

    Введение

    Поскольку в Unix очень многие объекты являются файлами, спектр применения dd гораздо более широк, чем кажется на первый взгляд. Регулярно возникает необходимость не просто скопировать файл или несколько файлов (для чего предназначена утилита cp), а скопировать первые n байт файла, пропустить m байт от начала, прочитать файл с дефектного носителя, транслировать содержимое файла в ASCII, «развернуть» порядок байт в файле (Little-Endian vs. Big-Endian), просто скопировать очень большой файл или все вместе взятое. Для этой цели и служит dd.

    Некоторые параметры

    При написании статьи были использованы материалы man dd, описывающие версию dd от GNU. Версии dd на других операционных системах могут отличаться.

    Базовые параметры

    • if=файл — читает данные из файла вместо стандартного ввода.
    • of=файл — пишет данные в файл вместо стандартного вывода.
    • bs=n — размер блока.
    • ibs=nn и obs=nn — задаёт, сколько байтов нужно считывать или записывать за раз.
    • count=n — сколько блоков скопировать.
    • seek=n — сколько блоков пропустить от начала в результрующим файле.
    • skip=n — сколько блоков от начала файла пропустить перед началом копирования.
    • conv=фильтр,фильтр — применить фильтры конвертациии.
    • ascii — сконвертировать в ASCII из EBCDIC…
    • ebcdic — … и наоборот.
    • block — выравнивание блоков.
    • lcase — преобразовать к нижнему регистру.
    • ucase — преобразовать к верхнему регистру.
    • swap — менять местами пары байт.
    • noerror — игнорировать ошибки ввода-вывода.

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

    Распаковать ISO-образ "obraz.iso" в папку "/home/root/exISO":

        dd if=obraz.iso of=/home/root/exISO/
    

    Записать ISO-образ "obraz.iso" на раздел sdb1 вместе с его загрузочным сектором и форматированием раздела в файловую систему образа (как правило, ISO 9660(еще называют isofs) или UDF):

        dd if=obraz.iso of=/dev/sdb1
    

    Скопировать файл foo в файл 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
    


    Вывести на экран (в /dev/stdout) первые 256 байт файла foo:

        dd if=foo of=/dev/stdout bs=128 count=2
    

    или:

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

        dd if=foo bs=1 count=10 2>/dev/null|hexdump
    

    Сделать image компакт-диска/DVD, используя большой размер блока. Игнорировать ошибки:

        dd if=/dev/cdrom of=backup.iso bs=65535 conv=noerror
    

    Для создания образа компакт-диска/DVD, лучше использовать команду readcd из стандартного пакета cdrecord:

        readcd dev=/dev/cdrom f=backup.iso
    

    Уничтожить содержимое устройства /dev/sdg, заполнив его «нулями» из /dev/zero:

        dd if=/dev/zero of=/dev/sdg bs=65535
    

    Сделать копию главной загрузочной записи первого жёсткого диска:

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

    Копировать всё, кроме метки, с диска на ленту:

        (dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
    

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

        (dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
    

    Узнать статус выполнения операции:

    См. также

    Ссылки

    dic.academic.ru

    Что означает название команды «dd»? Ubuntu Linux

    Синтаксис был вдохновлен заявлением DD (определение данных) OS / 360 JCL. Источник: GNU

    Больше Чтения здесь

    Существует много теорий. Я помню, что в Unix v7 (когда dd впервые появился) на странице руководства говорилось, что это означает, что дамп диска (или это дамп данных ?), Поскольку он часто использовался в качестве утилиты резервного копирования и восстановления диска. Однако в архиве страницы руководства v7 нет этимологии или смысла. Возможно, я слышал это от кого-то в Bell Labs, так как у меня был случайный доступ в начале 1980-х.

    Другие теории :

    • разрушитель данных
    • деструктор данных
    • разрушитель диска
    • удалить данные
    • дублированные данные
    • первоначально для Copy and Convert , но был переименован, потому что компилятор C уже использовал cc (man dd из Unix-V7 на PDP-11)

    dd означает описание данных .

    dd = "Дамп диска".

    Эта утилита исходит из исходной операционной системы UNIX System, где было реплицировано вторичную память (массовые устройства хранения в операционной системе «Виртуальная память»). dd может это сделать, бит для бит, байт для байта, сектор для сектора, трек для трека и т. д. Он также может переворачивать биты, преобразовывать EBCDIC в ASCII, изменять размеры блоков и выполнять практически любую другую двоичную операцию, необходимо перемещать / конвертировать / восстанавливать данные хранилища. Устройства хранения (все) в те дни были намного медленнее, менее плотными и гораздо менее надежными, чем сегодня. Нам приходилось постоянно заменять / восстанавливать магнитные запоминающие устройства произвольного доступа (например, дисковые накопители, гибкие и жесткие магнитные цилиндры и т. Д.).

    В случае сбоя головы или другого аварийного сбоя устройства хранения данных «dd» был (и остается) одним из моих любимых утилит для извлечения данных, которые я мог сделать для нового устройства. После установки нового устройства я мог бы использовать fsck (проверка файловой системы) и fsdb (отладчик файловой системы), чтобы восстановить / восстановить поврежденную файловую систему и, возможно, извлечь некоторые данные.

    Это была наша первая рудиментарная система резервного копирования. Процесс приложения (dd) может работать как «суперпользователь» и читать / записывать непосредственно через подсистему ввода / вывода (ядро) с помощью символьного (raw) или драйвера блока устройства [точек ввода], но полностью обходя файловую систему (ядро) реплицируя конструкцию файловой системы на новое устройство. dd (как и любая другая основная утилита UNIX) также имеет возможность читать со стандартного ввода и записывать на стандартный вывод, позволяя использовать его для других вещей в сценарии оболочки 🙂 ….

    Всегда думал, что это означает «диск dupe» (дублирующий диск). Думайте, что это было в версии SCO Unix Sys V

    ubuntu.fliplinux.com

    Отправить ответ

    avatar
      Подписаться  
    Уведомление о