ГлавнаяОперационные системыLinuxКак использовать команду dd в Linux

Как использовать команду dd в Linux

dd— одна из самых важных команд в Linux, чаще всего используемая для резервного копирования жестких дисков и разделов. При правильном использовании dd может стать мощным инструментом для записи данных из одного раздела в другой и выполнения различных задач с файлами. Здесь мы покажем вам, как эффективно использовать команду dd.

Также читайте: 5 дистрибутивов Arch Linux, которые проще установить и использовать

История ДД

Команда была первоначально разработана в AT&T Bell Laboratories в 1970-х годах ученым-компьютерщиком Кеном Томпсоном. Он был разработан для систем на базе Unix и получил имя, которое было выбрано в качестве ссылки на оператор, найденный в языке управления заданиями IBM, который назывался «DD». Можно отметить, что синтаксис команды очень похож н

История ДД

равления заданиями.

Команда изначально была разработана как утилита для преобразования ASCII в EBCDIC и наоборот. Впервые он был интегрирован с версией Unix в 1974 году, с выпуском 5-го издания операционной системы.

В сообществе Unix dd в шутку называли «разрушителем дисков» из-за его способности уничтожать данные на жестких дисках при неправильном использовании.

Читайте также: Как зашифровать ваши файлы в облаке с помощью Rclone

Основные операнды

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

Сначала просмотрите руководство, используя флаг --help:

dd --help
Руководство по Dd 01 Справка по Dd Print

У команды наиболее часто используются два операнда. Это ifи of, что означает «входной файл» и «выходной файл» соответственно. Операнд ifиспользуется для представления исходного местоположения, а операнд ofиспользуется для представления местоположения, в котором вы собираетесь сохранить данные из входного местоположения.

dd if=<input file> of=<output file>

Наиболее распространенными местами хранения и вывода данных являются жесткие диски, разделы и образы дисков.

Перед использованием команды может быть полезно использовать утилиту fdiskдля просмотра разделов вашей системы. Это легко сделать с помощью флага -lкоманды:

sudo 

Основные операнды

l
Dd Guide 02 Список разделов Fdisk

Читайте также: 4 способа клонировать весь жесткий диск в Linux

В этом случае ifиспользуется для обозначения диска «/dev/sda», а ofобозначает диск «/dev/sdb», где хранятся данные. из «/dev/sda» будет сохранено в:

dd if=/dev/sda of=/dev/sdb
Руководство по Dd 03 Дублирование устройства

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

Один из лучших вариантов использования этой команды — создание образов дисков в формате файла «.img». Это чрезвычайно полезно для резервного копирования данных в вашей системе Linux и, вероятно, это самый быстрый и простой способ резервного копирования всего жесткого диска.

В этом случае логика в основном та же самая: операнд ifпредставляет диск «/dev/sda», а операнд ofпредставляет диск «.img». ” файл, в котором данные с жесткого диска будут сохранены в:

dd if=/dev/sda of=/tmp/image.img
Dd Guide 04 Дамп раздела в Img

Читайте также: Полное руководство по командам Apt и Apt-Get

Сохранение образа диска в раздел

Создать образ диска с помощью этой команды довольно просто, но не менее проста и обратная версия этого процесса.

В этом сценарии наш файл образа диска действует как входной файл, а наш новый раздел — как выходной файл. Утилита сохраняет данные из образа диска в раздел «/dev/sdb»:

dd if=/tmp/image.img of=/dev/sdb
Dd Guide 05 Запись изображения на устройство

Читайте также: Как использовать команду ps в Linux для завершения процесса

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

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

Сжатый образ диска можно создать с помощью команды канала |. В этом случае он используется для получения содержимого входного файла и выполнения команды gzipс флагом -c, при этом содерж

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

». файл:

dd if=/dev/sda | gzip -c > /tmp/image.gz
Руководство по Dd 06. Создание сжатого дампа

Читайте также: Как использовать cURL для передачи данных из командной строки и многого другого

Указание размера блока

Вы также можете поиграть со скоростью работы команды dd. Это можно сделать с помощью операнда bs, который используется для представления размера блока. Размер блока представляет собой количество байтов, копируемых в выходной файл за один экземпляр. Он представлен кратными 1024 байтам, а значение по умолчанию установлено равным 512 байтам. Чем больше размер блока, тем быстрее данные будут сохранены в выходной файл.

В данном случае мы устанавливаем размер блока 2048:

dd if=/dev/sda of=/tmp/image.img bs=2048

Размер блока также можно указать в килобайтах:

dd i

Сохранение образа диска в раздел

da of=/tmp/image.img bs=2K
Dd Guide 07 Img Dump Изменение размера блока

Читайте также: Как использовать команду lsof в Linux для вывода списка открытых файлов

Очистка жесткого диска

dd также можно использовать для очистки жесткого диска. Это достигается путем чтения нулей или случайных символов из «/dev/zero» или «/dev/urandom» и сохранения их на жестком диске/разделе, при этом данные на нем перезаписываются. Это чрезвычайно полезно, если вы хотите убедиться, что ваши данные невозможно будет легко получить после того, как вы продали или иным образом избавились от жесткого диска.

Перезапись жесткого диска нулями:

dd if=/dev/zero of=/dev/sdb
Создание сжатого образа диска05/dd-guide-08-zeroing-disk.png" alt="Руководство по Dd 08. Обнуление диска">

Вы также можете перезаписать устройство, используя случайные символы:

dd if=/dev/urandom of=/dev/sdb
Dd Guide 09 Случайный диск

Читайте также: Как запускать команды Bash в фоновом режиме в Linux

Создание загрузочного USB-накопителя

Создать загрузочный USB-флешки с использованием файлов «.iso» с помощью команды очень просто:

dd if=os.iso of=<USB drive location>
Руководство по Dd 10. Запись образа на устройство

Клонирование определенных разделов с помощью dd

Еще одно блестящее применение dd— клонирование активных разделов в вашей системе Linux. В отличие от файла IMG, клонирование позволяет создать точную копию определенного раздела и немедленно использовать ее. Это может быть полезно, если у вас многодисковая система и вы хотите создать резервные разделы для своей системы.

Чтобы клонировать раздел из «/dev/sda4» в «/dev/sdd1».

Указание размера блока

>/
dev/sda4 of=/dev/sdb1 conv=noerror,sync

Параметр convпозволяет вам включить дополнительные параметры для изменения поведения dd. Это может быть как простое преобразование имени файла в верхний регистр, так и что-то более сложное, например изменение свойства блока. В данном случае я использую noerrorи sync:

  • Опция «noerror» указывает dd продолжать копирование файла устройства, даже если он сообщает об ошибках устройства. Это может быть полезно, если устройство, на котором находится ваш раздел, уже неисправно, поскольку «noerror» гарантирует, что dd скопирует все восстанавливаемые данные в этот раздел.
  • Опция «sync» указывает dd дополнять каждый входящий блок данных в буфер копирования. Это означает, что dd будет следить за тем, чтобы каждый бит данных, которые он может скопировать, был абсолютно одинаковым между источником и местом назначения. Это необходимо для обеспечения целостности данных клонируемого раздела.
Dd Guide 11 Строгое клонирование раздела

Читайте также: Как использовать команду lp в Linux для печати файлов из терминала

Сохранение содержимого компакт-диска с помощью dd

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

dd if=/dev/cdrom of=/tmp/dum

Очистка жесткого диска

,sync

Эта команда сообщит dd загрузить устройство CD-ROM и скопировать его содержимое в файл ISO.

Dd Guide 12 Дамп компакт-диска

После этого вы можете использовать команду file, чтобы проверить, является ли файл дампа изображением ИСО 9660 :

file /tmp/dump.iso

Запись дампа ISO на компакт-диск

Далее вы можете использовать dd для создания дубликатов только что созданного ISO-файла. Для этого вам нужно вставить чистый диск в привод и использовать «/dev/cdrom» в качестве выходного файла dd. После этого вы можете запустить следующую команду, чтобы правильно записать ISO-файл на диск:

dd if=/tmp/image.iso of=/dev/cdrom obs=32k seek=0

Эта команда не пытается использовать какие-либо обходы ошибок или проверки целостности. Вместо этого он устанавливает две опции, специфичные для записи на компакт-диски:

  • Опция «obs» задает размер блоков, которые dd будет записывать на диск. В этом случае команда использует 32 килобайта в качестве базового значения для передачи оптических носителей.
  • С другой стороны, опция «seek» указывает dd установить начало передачи на определенный блок данных. Для правильной передачи на CD-ROM важно установить значение 0, чтобы dd немедленно записывал в первый сектор диска.
Руководство по Dd 13. Запись компакт-диска

Создание загрузочного USB-накопителя

ntist.ru/2021/09/29/8-poleznyh-i-interesnyh-podskazok-bash/" title="8 полезных и интересных команд Bash">8 полезных и интересных команд Bash

Часто задаваемые вопросы

Можно ли увидеть ход операции dd?

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

dd if=/dev/sda4 of=/dev/sdd1 conv=noerror,sync status=progress

Опция «прогресс» указывает dd печатать блоки, которые он в данный момент копирует, на стандартный вывод, что позволяет

Клонирование определенных разделов с помощью dd

мо параметра «прогресс», параметр статуса также принимает два дополнительных значения:

  • Noxfer : значение «noxfer» похоже на «прогресс», но оно не выводит общую информацию о передаче в конце команды. Это может быть полезно, если вы используете команды dd как часть большого канала UNIX.
  • Нет : значение «нет» указывает dd не выводить никакой информации, кроме ошибок, во время работы. Это полезно, если вы выполняете запланированные задачи dd, такие как создание резервных файлов IMG для активных в данный момент разделов.

Можно ли всегда устанавливать большой размер блока для ускорения передачи данных?

Нет. Хотя установка большого размера блока, безусловно, ускорит скорость передачи данных dd, это не гарантирует правильную инициализацию устройства, на которое вы записываете. Например, установка большого размера блока для оптических носителей, таких как CD-ROM или DVD-ROM, может привести к тому, что диски станут нечитаемыми при воспроизведении на проигрывателе дисков.

Хорошее практическое правило — использовать блоки большого размера только при выгрузке с таких носителей, как диски и флэш-накопители. Кроме того, рекомендуется устанавливать максимальный размер блока только на уровне 2048 килобайт. Это гарантирует, что вы сможете поместить обратно содержимое диска на CD или DVD.

Я пытался создать загрузочный USB-накопитель, но он не загрузился. Дд не работает?

Нет! Наиболее вероятная причина, по которой он не загрузился, заключается в том, что файл, скопированный dd на USB-накопитель, не является загрузочным. Например, запись установочного компакт-диска на USB-накопитель не установит правильные флаги, чтобы сделать его загрузочным.

Один из способов убедиться, что он является загрузочным, — проверить его свойства с помощью программы file. Например:

file /Downloads/ubuntu-21.10.iso

Оттуда вам нужно будет просмотреть свойства, которые выводятся в стандартном выводе. Загрузочный файл должен представлять собой либо образ диска, либо гибридный файл ISO.

Изображение предоставлено: Unsplash

Сохранение содержимого компакт-диска с помощью dd

Запись дампа ISO на компакт-диск

Часто задаваемые вопросы

Можно ли увидеть ход операции dd?

Можно ли всегда устанавливать большой размер блока для ускорения передачи данных?

Я пытался создать загрузочный USB-накопитель, но он не загрузился. Дд не работает?

ПОХОЖИЕ СТАТЬИ

Популярные записи