Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда dd

Автор: admin, 21 ноября, 2023
Команды

В Linux команда dd в основном используется для копирования и преобразования данных, поэтому она означает дубликатор данных.

Использование в Linux команды dd с примерами

Содержание

  • Возможности
  • Синтаксис
  • Операнды
  • Параметры
  • Использование в Linux команды dd
    • Резервное копирование одного диска в другой
    • Создание образа диска или файла
    • Создание сжатого образа диска
    • Резервное копирование раздела диска
    • Восстановление диска или раздела
    • Восстановление сжатого изображения
    • Создание загрузочного USB
    • Резервное копирование MBR в образ
    • Восстановление MBR из образа
  • Заключение

Возможности

Используя эту утилиту, мы можем:

  • выполнять резервное копирование и восстановление всего жёсткого диска или раздела;
  • создавать виртуальную файловую систему и резервные образы компакт-дисков или DVD-дисков, называемых файлами ISO;
  • копировать регионы необработанных файлов устройства, например, создавать резервную копию MBR (основной загрузочной записи);
  • преобразовывать форматы данных, таких как ASCII, в EBCDIC;
  • преобразовывать нижний регистр в верхний и наоборот.

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

Синтаксис

$ dd [ОПЕРАНД]…

или

$ dd ПАРАМЕТР

Операнды

bs=ЧИСЛО
Читать и писать до ЧИСЛА байт за раз (по умолчанию 512)
cbs=ЧИСЛО
Преобразовывать заданное ЧИСЛО байт за раз
conv=СПИСОК
Преобразовывать файл в соответствии со СПИСКОМ символов, элементы перечисляются через запятую
count=ЧИСЛО
Копировать только заданное ЧИСЛО входных блоков
ibs=ЧИСЛО
Считывать до ЧИСЛА байт за раз (по умолчанию 512)
if=ФАЙЛ
Читать ФАЙЛ, а не стандартный ввод
iflag=ФЛАГИ
Читать в соответствии со списком символов, элементы перечисляются через запятую
obs=ЧИСЛО
Записывать заданное ЧИСЛО байт за раз (по умолчанию 512)
of=ФАЙЛ
Записывать в ФАЙЛ, а не на стандартный вывод
oflag=ФЛАГИ
Записывать в соответствии со списком символов, элементы перечисляются через запятую
seek=ЧИСЛО (или oseek=ЧИСЛО)
Пропустить перед началом вывода заданное ЧИСЛО блоков размером obs
skip=ЧИСЛО (или iseek=ЧИСЛО)
Пропустить перед началом ввода заданное ЧИСЛО блоков размером ibs
status=ИНФО
Заданную ИНФОрмацию не выводить в stderr;
noxfer — не выводить статистику передачи
none — не выводить ничего
progress — показывать индикатор передачи

N and BYTES may be followed by the following multiplicative suffixes: c=1, w=2, b=512, kB=1000, K=1024, MB=1000*1000, M=1024*1024, xM=M, GB=1000*1000*1000, G=1024*1024*1024, and so on for T, P, E, Z, Y, R, Q.

Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

If N ends in 'B', it counts bytes not blocks.

Параметры

--help
Показать эту справку и выйти
--version
Показать информацию о версии и выйти

Использование в Linux команды dd

Базовое использование утилиты является довольно простым, так как она принимает всего два аргумента: if = входной файл и of = выходной файл.

Утилита весьма функциональна для клонирования жёсткого диска.

Нецелесообразно использовать этот инструмент для копирования файлов, ибо команда cp делает это намного проще.

Резервное копирование одного диска в другой

Утилита ничего не знает о файловой системе и разделах, она просто копирует все данные с одного диска на другой.

Второй диск должен быть того же размера или больше первого, иначе получим на нём обрезанные и бесполезные разделы.

Опции bs следует указывать размер копируемого блока (количество байтов записываемых за один раз), в противном случае утилита установит его по умолчанию в 512 байт.

Для примера копируем все данные с диска /dev/sda на диск /dev/sdb:

$ sudo dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync

Результатом явилось клонирование диска с теми же данными и в том же разделе.

Создание образа диска или файла

Резервное копирование диска или файла в образ будет быстрее, чем копирование точных данных. Помимо этого образ диска значительно упрощает восстановление.

Пример:

$ sudo dd if=/dev/sda of=/tmp/sdadisk.img

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

Создание сжатого образа диска

Для уменьшения размера образ диска можно сжать:

$ sudo dd if=/dev/vda | gzip -c >/tmp/vdadisk.img.gz

Оператор | превратил выходные данные левой команды во входные данные правой команды. Опция -c выполнила запись в стандартный вывод, а исходные файлы сохранились без изменений.

Резервное копирование раздела диска

Можно, помимо копирования всего диска, клонировать и раздел. Для этого просто нужно указать имя раздела во входном файле:

Следует обязательно убедиться, что размер копируемого раздела меньше резервного.

$ sudo dd if=/dev/sda1 of=/dev/sdb1 bs=4096 conv=noerror,sync

Можно, конечно, создать и образ раздела:

$ sudo dd if=/dev/sda1 of=/tmp/sda1.img

Восстановление диска или раздела

При возникновении каких-либо проблем с исходным диском или разделом его всегда можно будет восстановить из резервной копии.

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

$ sudo dd if=/tmp/sdadisk.img of=/dev/sda

Исходные данные восстановлены.

Восстановление сжатого изображения

Сначала указывается сжатый файл:

$ sudo gzip -dc /tmp/vdadisk.img.gz | dd of=/dev/vda

Опция -d здесь использовалась для распаковки.

Создание загрузочного USB

В этом случае всё выполняется предельно просто:

$ sudo dd if=~/store/distros/kali/kali-linux-2022.2-live-amd64.iso of=/dev/sdb bs=1M

Здесь указан путь к образу, записанному мной на USD-накопитель по пути /dev/sdb.

Резервное копирование MBR в образ

В связи с тем, что MBR (основная загрузочная запись) составляет первые 512 байт диска, нужно просто скопировать этот размер блока:

$ sudo dd if=/dev/sda of=/tmp/sdambr.img bs=512 count=1

При использовании count=1 и bs=512 будет скопировано только 512 байт, что соответствует размеру MBR.

Восстановление MBR из образа

Пример восстановления MBR:

$ sudo dd if=/tmp/sdambr.img of=/dev/sda

Заключение

В этой статье показаны лишь основные возможности команды Linux dd. Изучив эту удивительную и мощную как «лом» утилиту вы значительно повысите производительность и функциональность своей работы.

Последние материалы

  • Приложение scanimage
    51 minute 44 seconds ago
  • Утилита sensors
    4 days ago
  • Сканер Rkhunter
    1 week 4 days ago
  • Программа resize2fs
    2 weeks 3 days ago
  • Аудиопроигрыватель QMMP
    3 weeks 1 day ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru