Команда dd — это универсальная и мощная утилита для преобразования и копирования данных. Она работает путем чтения из входного файла или потока данных и записи в выходной файл или поток данных, что делает ее незаменимым инструментом dd для многих задач системного администрирования.
Понимание команды dd
По своей сути, dd копирует данные побайтово. Рассмотрим следующую команду:
dd if=/home/pete/backup.img of=/dev/sdb bs=1024
Эта команда копирует содержимое файла backup.img на блочное устройство /dev/sdb. Она выполняет эту операцию, копируя данные блоками по 1024 байта до тех пор, пока весь входной файл не будет прочитан.
Основные опции dd
Поведение команды dd контролируется несколькими ключевыми опциями:
if=file: Указывает входной файл.ddбудет читать из этого файла вместо стандартного ввода.of=file: Указывает выходной файл.ddбудет записывать в этот файл вместо стандартного вывода.bs=bytes: Устанавливает размер блока.ddсчитывает и записывает это количество байтов за раз. Вы можете использовать суффиксы для больших единиц, таких какkдля килобайтов (1024 байта),Mдля мегабайтов иGдля гигабайтов. Например,bs=1M.count=number: Копирует только указанное количество блоков.
Использование bs и count вместе
Опция count полезна, когда вам нужно скопировать определенный объем данных. Общий объем скопированных данных будет равен bs, умноженному на count. Например, если вы выполните следующую команду для 10-мегабайтного файла:
dd if=/home/pete/backup.img of=/dev/sdb bs=1M count=2
Несмотря на то, что backup.img имеет размер 10M, эта команда предписывает dd скопировать 2 блока размером 1M каждый. В результате будет скопировано только 2M данных, что приведет к неполной передаче. Хотя count ценна в определенных сценариях, вы часто можете опустить ее, если ваша цель — скопировать весь файл. Оптимизация bs может значительно повысить скорость передачи, но настроек по умолчанию часто бывает достаточно.
Мощь и опасность dd
Команда dd linux чрезвычайно мощна. Вы можете использовать ее для создания резервных копий целых дисков, восстановления образов дисков и безопасного удаления данных. Однако эта мощь сопряжена с риском. Небольшая ошибка, например, перепутывание значений if и of, может привести к необратимой потере данных. Всегда дважды проверяйте свои команды перед их выполнением, особенно при записи на такое устройство, как /dev/sda.