dd if=источник_копирования of=место_назначения параметры
Параметры:
Сокращения для размера :
- Пример частичной очистки / заполнение нулями диска :
dd if=/dev/zero of=file.img bs=1M count=512
- Пример создания резервной копии локального диска на удаленной сервере через ssh:
sudo dd if=/dev/sda | gzip -9 - | ssh user@host “dd of=/tmp/sda.image.gz bs=8M status=progress”
- Пример востановления локального диска из резервной копии с удаленого серевера через ssh:
ssh user@host “sudo dd if=/tmp/sda.image.gz | gunzip -” | sudo dd of=/dev/sda bs=2M status=progress
- Пример прямого копирования удаленого диска на локальный через ssh:
ssh user@host “sudo dd if=/dev/sda | gzip -9 -" | gunzip - | dd of=/dev/sda bs=2M status=progress
Обрашаю внимание, что команды gzip и gunzip используемы для сжатия потока данных при прямом копирование можно и не использовать.
Иногда при использование sudo на удаленной машинке через ssh, возникает ошибка: “sudo: sorry, you must have a tty to run sudo” … для ее устранения достаточно в файл /etc/sudoers добавить строчку “Defaults:имя_пользователя !requiretty” для определеного пользователя … в некоторых случаях может потребоваться строка “Defaults!/path/to/bin !requiretty” с указвнием пути /path/to/bin расположения к исполняему файлу.
Стандартная справка -----------------------------------------------------------------------------------------------------------------------------------------------------------
# dd --help
Использование:
dd [ОПЕРАНД]…
или:
dd ПАРАМЕТР
Копирует файл, преобразует и форматирует в зависимости от операндов.
bs=ЧИСЛО читать и писать до ЧИСЛА байт за раз (по умолчанию 512)
cbs=ЧИСЛО преобразовывать заданное ЧИСЛО байт за раз
conv=СПИСОК преобразовывать файл в соответствии со СПИСКОМ символов, элементы перечисляются через запятую
count=ЧИСЛО копировать только заданное ЧИСЛО входных блоков
ibs=ЧИСЛО считывать до ЧИСЛА байт за раз (по умолчанию 512)
if=ФАЙЛ читать ФАЙЛ, а не стандартный ввод
iflag=ФЛАГИ читать в соответствии со списком символов, элементы перечисляются через запятую
obs=ЧИСЛО записывать заданное ЧИСЛО байт за раз (по умолчанию 512)
of=ФАЙЛ записывать в ФАЙЛ, а не на стандартный вывод
oflag=ФЛАГИ записывать в соответствии со списком символов, элементы перечисляются через запятую
seek=ЧИСЛО пропустить перед началом вывода заданное ЧИСЛО блоков размером obs
skip=ЧИСЛО пропустить перед началом ввода заданное ЧИСЛО блоков размером ibs
status=ИНФО заданную ИНФОрмацию не выводить в stderr;
«noxfer» — не выводить статистику передачи
«none» — не выводить ничего
«progress» — показывать индикатор передачи
После ЧИСЛА блоков и байт может стоять один из умножающий суффиксов:
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 и так далее для T, P, E, Z, Y.
Каждый символ СПИСКА может быть:
ascii из EBCDIC в ASCII
ebcdic из ASCII в EBCDIC
ibm из ASCII в альтернативную EBCDIC
block дополнять записи, заканчивающиеся переводом строки, пробелами до размера cbs
unblock заменять завершающие пробелы в записях размера cbs на перевод строки
lcase изменять регистр с верхнего на нижний
ucase изменять регистр с нижнего на верхний
sparse попытаться переместиться, а не записывать в вывод NUL входных блоков
swab переставить местами каждую пару входных байт
sync дополнять каждый входной блок NUL-ми до размера ibs; при использовании с block или unblock, дополнять пробелам, а не NUL
excl завершать с ошибкой, если выходной файл уже существует
nocreat не создавать выходной файл
notrunc не обрезать выходной файл
noerror продолжать после ошибок чтения
fdatasync физически записать выходной файл перед завершением
fsync аналогично, но записать также метаданные
Символ ФЛАГ может быть таким:
append режим добавления (имеет смысл для вывода; рекомендуется conv=notrunc)
direct использовать прямой ввод/вывод для данных
directory выдавать ошибку, если это не каталог
dsync использовать синхронизированный ввод/вывод для данных
sync то же, но так же и для метаданных
fullblock накапливать полные блоки входных данных (только iflag)
nonblock использовать неблокирующий ввод/вывод
noatime не обновлять время последнего доступа
nocache запрос на сброс кэша. Смотрите также oflag=sync
noctty не назначать управляющий терминал из файла
nofollow не следовать по символьным ссылкам
count_bytes считать «count=N» как счётчик байт (только с iflag)
skip_bytes считать «skip=N» как счётчик байт (только с iflag)
seek_bytes считать «seek=N» как счётчик байт (только с oflag)
Если послать работающему процессу «dd» сигнал USR1, он напечатает на стандартный поток ошибок статистику ввода/вывода и продолжит копирование.
Параметры:
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Страница справки по GNU coreutils: <https://www.gnu.org/software/coreutils/>
Об ошибках в переводе сообщений «dd» сообщайте по адресу <gnu@d07.ru>
Полная документация: <https://www.gnu.org/software/coreutils/dd> или доступная локально: info '(coreutils) dd invocation'