Blog.smart-admin.ru
Содержание:
Operands
bs=BYTES |
read and write BYTES bytes at a time (also see ibs=,obs=) |
cbs=BYTES |
convert BYTES bytes at a time |
conv=CONVS |
convert the file as per the comma separated symbol list. Each symbol may be one of the following, and represents a specific type of conversion: ascii from EBCDIC to ASCII ebcdic from ASCII to EBCDIC ibm from ASCII to alternate EBCDIC block pad newline-terminated records with spaces to cbs-size unblock replace trailing spaces in cbs-size records with newline lcase change upper case to lower case nocreat do not create the output file excl fail if the output file already exists notrunc do not truncate the output file ucase change lower case to upper case swab swap every pair of input bytes noerror continue after read errors sync pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs fdatasync physically write output file data before finishing fsync likewise, but also write metadata. |
count=BLOCKS |
copy only BLOCKS input blocks |
ibs=BYTES |
read BYTES bytes at a time (default: 512) |
if=FILE |
read from FILE instead of stdin |
iflag=FLAGS |
read as per the comma separated symbol list. Each symbol may be one of the following: append append mode (makes sense only for output; conv=notrunc suggested) direct use direct I/O for data directory fail unless a directory dsync use synchronized I/O for data sync likewise, but also for metadata fullblock accumulate full blocks of input (iflag only) nonblock use non-blocking I/O noatime do not update access time noctty do not assign controlling terminal from file nofollow do not follow symlinks. |
obs=BYTES |
write BYTES bytes at a time (default: 512) |
of=FILE |
write to FILE instead of stdout |
oflag=FLAGS |
write as per the comma separated symbol list |
seek=BLOCKS |
skip BLOCKS obs-sized blocks at start of output |
skip=BLOCKS |
skip BLOCKS ibs-sized blocks at start of input |
status=noxfer |
suppress transfer statistics |
Как использовать
Применение DD в Виндовс системах очень похоже на ее использование в командной строке Линукса.
Для открытия страницы с помощью следует зайти в каталог с нужным объектом, а после открытия консоли PowerShell ввести:
Если нужна запасная копия HDD вместе со всей хранящейся на нем информацией, пригодится такая строчка:
Демонстрация того, как создать образ диска F и перенести его на диск Е:
В результате получается:
Расшифруем запись:
- Строчка if=/dev/sda отвечает за копирование всего жесткого диска sda.
- Задать конкретный объем кэша на жестком диске, который позволит ускорить процесс копирования данных, поможет выражение bs=8M. В противном случае информация начнет переноситься мелкими размерами, примерно по 512 б каждый.
- Место, куда будет копироваться файл, указывается командой of=/mnt/backup/sda.img. Первые два выражения означают точку монтирования HDD для хранения образа, то есть папке mnt с подпапкой backup.
Обратите внимание: перед создание бэкапов надо убедиться, что на желаемом диске хватает незанятого пространства. Восстановить HDD из бэкапа поможет команда:
Восстановить HDD из бэкапа поможет команда:
К примеру:
В итоге получится:
Лучше всего делать резервные копии данных по установленному графику, тогда не придется переживать о том, что администратор забыл или не успел скопировать файлы. Работа полностью автоматизируется.
Обратите внимание: здесь создание бэкапов происходит один раз за 24 часа, все данные переносятся на диск, который удален территориально от самого сервера. Пользователю нет нужды самому настраивать резервное копирование, а хранение бэкапов происходит даже при сбоях на сервере
220140
Минск
ул. Домбровская, д. 9
+375 (173) 88-72-49
700
300
ООО «ИТГЛОБАЛКОМ БЕЛ»
700
300
Troubleshooting
Partial read
It is possible, but not guaranteed, that dd will warn you about the issue:
dd: warning: partial read (X bytes); suggest iflag=fullblock
The solution is to do as the warning says and add to the dd command. For example:
$ dd if=/dev/random of=bigsecret.img bs=1K count=1 iflag=fullblock $ dd if=/dev/urandom of=bigsecret.img bs=40M count=1 iflag=fullblock
Note: It is strongly recommended to always add the option to the dd command when the input file is or .
An alternative for is to specify a block size smaller than 32 MiB, but a larger copy count. For example:
$ dd if=/dev/urandom of=bigsecret.img bs=1M count=40
Примеры использования
Работа с 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:
dd if=foo of=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= 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=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,sync
Сделать копию главной загрузочной записи (MBR) первого жёсткого диска:
dd if=/dev/hda of=bootloader.mbr bs=512 count=1
Заполнить всё свободное место в текущем разделе нулями:
dd if=/dev/zero of=zerofill
Создать сжатый образ первого жёсткого диска со всеми разделами (рекомендуется сначала заполнить свободное место нулями для лучшего сжатия):
dd if=/dev/sda | xz -9 > MyFuBu.ISO.XZ
Cоздать разбитый на отрезки по 2Gb образ первого жёсткого диска со всеми разделами (со сжатием и без):
dd if=/dev/sda | xz -9 | split -b 2G --additional-suffix=.xz - MyFuBu.iso. dd if=/dev/sda | split -b 2G --additional-suffix=.iso - MyFuBu.
Просмотреть содержимое главной загрузочной записи (MBR) первого жёсткого диска:
dd if=/dev/sda bs=512 count=1 | hexdump -C
Копировать всё, кроме метки, с диска на магнитную ленту:
(dd bs=4k skip=1 count= && dd bs=512k) <$disk >$tape
Копировать всё, не перезаписывая метку, с магнитной ленты на диск:
(dd bs=4k seek=1 count= && dd bs=512k) <$tape >$disk
Уничтожить содержимое устройства , заполнив его «нулями» из :
dd if=/dev/zero of=/dev/sdg bs=65536
Узнать статус выполнения операции:
killall -USR1 dd
В некоторых случаях статус выполнения просматривается командой:
pkill -USR1 -x dd
В последних версиях статус выполнения можно выводить в консоль, задав команду dd с параметром status=progress
dd if=image.iso of=/dev/sdb status=progress
Что делает dd
Как уже было сказано ранее, выполняет преобразование и
копирование файла. Так как одной из основополагающих постулатов unix-систем является концепция
«всё есть файл», можно сделать вполне логичный вывод о том, что
может копировать и преобразовывать не только «обычные» файлы,
но и те файлы, которые представляют разнообразные устройства и располагаются в каталоге /dev.
У команды нет обязательных параметров, поэтому по
умолчанию она копирует данные с устройства стандартного ввода на устройство стандартного вывода. Это
говорит о том, что обладает свойствами фильтра, то есть,
использоваться внутри конвейеров команд (в отличие от той же вышеупомянутой ).
Формат параметров представляет собой пару «имя_параметра=значение», например,
if=/имя/входного/файла или of=/имя/файла/результата. Большинство
остальных параметров так или иначе осуществляют управление размерами и количеством блоков чтения и
записи, что и состоавляет главную отличительную особенность утилиты .
Размеры могут быть заданы в блоках (сам блок по умолчанию состоит из 512 байтов) или непосредственно в
байтах. Для числовых значений, обозначающих блоки и байты, возможно использование коэффициентов
k, b и w, обозначающих умножение на 1024, 512 и 2
соответственно. Вместо буквенных коэффициентов можно применять сами числоввые значения, при этом
количество блоков (байтов) от коэффициента отделяется буквой ‘x’, например, 25×1024. В
GNU-версии допускается также использование коэффициентов M (мега), G
(гига) и т.д., и дополнительного суффикса D, который делает значения коэффициентов не
степенями 2, а степенями 10, то есть, kD = 1000 (а не 1024) и тд.
Самый простой пример — копирование раздела жёсткого диска на другой, полностью свободный раздел
(следует особо отметить, что подобные команды требуют привилегий суперпользователя root,
поскольку представляют потенциальную опасность для системы):
dd if=/dev/sda of=/dev/sdb
Если в системе смонтирован dvd-диск, то можно создать его образ:
dd if=/dev/dvd of=dvd.iso
Если домашний каталог пользователя размещается, скажем, на разделе sdb, то
заархивировать полный образ этого раздела можно с помощью конвейера команд
dd if=/dev/sdb | bzip2 > sdb.img.bz2
Measuring Write Performance
Modern operating systems do not normally write files immediately to RAID systems or hard disks. Temporary memory that is not currently in use will be used to cache writes and reads (regarding this, see also ).
So that I/O performance measurements will not be affected by these caches (temporary memory), the parameter can be used. Thereby, the following two flags are interesting (for details, see and Dd using direct or synchronized I/O):
- direct (use direct I/O for data)
- dsync (use synchronized I/O for data)
- sync (likewise, but also for metadata)
For measuring write performance, the data to be written should be read from /dev/zero and ideally written it to an empty RAID array, hard disk or partition (such as using of=/dev/sda for the first hard disk or of=/dev/sda2 for the second partition on the first hard disk). If this is not possible, a normal file in the file system (such as using of=/root/testfile) can be written. For safety reasons we are using test files in the following examples. The write performance achieved thereby will be a little slower (because metadata will also be written to the file system).
Important: When writing to a device (such as /dev/sda), the data stored there will be lost. For that reason, you should only use empty RAID arrays, hard disks or partitions.
Note:
- When using if=/dev/zero and bs=1G, Linux will need 1GB of free space in RAM. If your test system does not have sufficient RAM available, use a smaller parameter for bs (such as 512MB).
Laptop Example
In this example, the test data will be written to /root/testfile. The test system (a Thinkpad T43 Type 2668-4GG) had 1.5 GByte of RAM and a Fujitsu MHT2060AH hard disk rotating at 5,400 rpm.
Laptop Throughput (Streaming I/O)
One gigabyte was written for the test, first with the cache activated (hdparm -W1 /dev/sda):
root@grml ~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 32.474 s, 33.1 MB/s root@grml ~ #
Then, with the cache deactivated (hdparm -W0 /dev/sda):
root@grml ~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 123.37 s, 8.7 MB/s root@grml ~ #
Laptop Latency
In this test, 512 bytes were written one thousand times, first with the cache activated (hdparm -W1 /dev/sda):
root@grml ~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=direct 1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 0.36084 s, 1.4 MB/s root@grml ~ #
Then, with the cache deactivated (hdparm -W0 /dev/sda): One thousand accesses required 11.18 seconds, meaning one access took 11.18 ms.
root@grml ~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=direct 1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 11.1865 s, 45.8 kB/s root@grml ~ #
Server with RAID10 Example
In this example, the test data was written to an empty partition. The test system was an 2HE Intel Dual-CPU SC823 Server with six 147 GB SAS Fujitsu MBA3147RC (15,000 rpm) hard disks and an Adaptec 5805 RAID controller with the cache activated and a BBU.
Server Throughput (Streaming I/O)
One gigabyte was written for the test:
test-sles10sp2:~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=dsync 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 5.11273 seconds, 210 MB/s test-sles10sp2:~
Server Latency
In this test, 512 bytes were written one thousand times. Thereby, the 0.084 seconds that were measured for one thousand accesses corresponded to precisely 0.084 ms for each access. This value is so low because of the RAID controller’s cache:
test-sles10sp2:~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=dsync 1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 0.083902 seconds, 6.1 MB/s test-sles10sp2:~ #
Утилита dd_rescue
Программа выполняет те же задачи, что и
, но делает это более эффективно и с меньшим риском. В общем
виде её выполнение выглядит так:
dd_rescue /dev/sda1 local_sda1.img
Следует обратить внимание на то, что здесь не используется формат параметров ,
то есть части и
не нужны. По умолчанию копирует стандартный ввод в
стандартный вывод, то есть, так же, как и , является фильтром и
может участвовать в конвейерах команд:
dd_rescue /dev/sda1 - | bzip2 > /dir/local_sda1.img.bz2
Ещё один пример, с передачей файла образа раздела диска по сети:
dd_rescue /dev/sda1 - | ssh user@remote.host "cat - > /remote/destination/my_sda1.img"
В целом операции и действия похожи на . Но главным
отличием от
является то, что эта утилита не прекращает работу при возникновении ошибок и не пытается выполнять чтение
(или запись) с ошибкой до бесконечности, а обрабатывает возникающие ошибки наилучшим возможным в
конкретной ситуации образом. Здесь можно определить обнуление «плохого» блока после определённого
количества попыток чтения/записи, фиксацию номеров «плохих» блоков в log-файле и запись либо отказ от
записи блоков, обнулённых при ошибках. Такой подход делает программу весьма полезной при извлечении
данных с устройств, при чтении которых возникает слишком много ошибок ввода/вывода.
Описание всех ключей можно получить, выполнив команду .
Утилита dd_rescue
Программа выполняет те же задачи, что и
, но делает это более эффективно и с меньшим риском. В общем
виде её выполнение выглядит так:
dd_rescue /dev/sda1 local_sda1.img
Следует обратить внимание на то, что здесь не используется формат параметров ,
то есть части и
не нужны. По умолчанию копирует стандартный ввод в
стандартный вывод, то есть, так же, как и , является фильтром и
может участвовать в конвейерах команд:
dd_rescue /dev/sda1 - | bzip2 > /dir/local_sda1.img.bz2
Ещё один пример, с передачей файла образа раздела диска по сети:
dd_rescue /dev/sda1 - | ssh user@remote.host "cat - > /remote/destination/my_sda1.img"
В целом операции и действия похожи на . Но главным
отличием от
является то, что эта утилита не прекращает работу при возникновении ошибок и не пытается выполнять чтение
(или запись) с ошибкой до бесконечности, а обрабатывает возникающие ошибки наилучшим возможным в
конкретной ситуации образом. Здесь можно определить обнуление «плохого» блока после определённого
количества попыток чтения/записи, фиксацию номеров «плохих» блоков в log-файле и запись либо отказ от
записи блоков, обнулённых при ошибках. Такой подход делает программу весьма полезной при извлечении
данных с устройств, при чтении которых возникает слишком много ошибок ввода/вывода.
Описание всех ключей можно получить, выполнив команду .
Типы файлов ISO
Ассоциация основного файла ISO
.ISO
Формат файла: | .iso |
Тип файла: | Disc Image File |
The iso file extension is the universal file format for optical media which include binary images of CD, DVD discs, Blu-ray Disc, HD DVD and UMD.International Organization for Standardization (ISO) published ISO 9660 standard at first which targets at supporting diverse operating systems like Microsoft Windows, Mac OS, and Linux.
Создатель: | Igor Pavlov |
Категория файла: | Файлы образов диска |
Ключ реестра: | HKEY_CLASSES_ROOT\.iso |
Программные обеспечения, открывающие Disc Image File:
7-Zip, разработчик — Igor Pavlov
Совместимый с:
Windows |
Android |
Linux |
WinRAR, разработчик — Eugene Roshal
Совместимый с:
Windows |
Mac |
Android |
Linux |
Corel WinZip 21, разработчик — Corel
Совместимый с:
Windows |
Mac | |
iOS |
Android |
VMware Fusion, разработчик — VMware
Совместимый с:
Mac |
PowerISO, разработчик — Power Software Ltd
Совместимый с:
Windows |
Roxio Creator NXT Pro 5, разработчик — Roxio
Совместимый с:
Windows |
Roxio Toast 15, разработчик — Roxio
Совместимый с:
Mac |
Nero 2017, разработчик — Nero AG
Совместимый с:
Windows |
RARLAB RAR, разработчик — Winrar
Совместимый с:
Mac |
Android |
Linux |
ISO Master, разработчик — Interscape
Совместимый с:
Windows |
Alcohol 120%, разработчик — Alcohol Soft
Совместимый с:
Windows |
EasyBCD, разработчик — Neosmart technologies
Совместимый с:
Windows |
Apple Disk Utility, разработчик — Apple
Совместимый с:
Mac |
Brasero, разработчик — Philippe Rouquier & Luis Medinas
Совместимый с:
Linux |
K3b, разработчик — KDE
Совместимый с:
Linux |
Ассоциации других файлов ISO
.ISO
Формат файла: | .iso |
Тип файла: | Arbortext IsoDraw Document |
расширение Жеребьевка файла Arbortext Iso является CAD чертеж, который был создан Arbortext программным обеспечением IsoDraw, что это программа, используемая для создания технических иллюстраций 2D, а также используется для сохранения рисунков для части каталогов, сервисные руководства и инструкции по сборке. Эта программа может быть использована для преобразования импортируемых 3D чертежей в 2D-формат для печати чертежей, то публикации.
Создатель: | PTC |
Категория файла: | Файлы CAD |
Программы, открывающие файлы Arbortext IsoDraw Document :
Creo Parametric 3D Modeling Software, разработчик — PTC
Совместимый с:
Windows |
Linux |
PTC Arbortext IsoDraw, разработчик — PTC
Совместимый с:
Windows |
.ISO
Формат файла: | .iso |
Тип файла: | PlayStation 2 ROM File |
Расширение файла ROM связан с Sony PlayStation игровой консоли эмулятор и включает в себя целый набор данных, извлеченных из игры в PlayStation 2. Это расширение файла также используется для создания резервных копий PS2 игр и может быть просмотрено и открыто с PlayStation 2 (PS2) эмулятором как PCSX2.
Создатель: | Open Source |
Категория файла: | Файлы образов диска |
Программы, открывающие файлы PlayStation 2 ROM File :
PCSX2, разработчик — Open Source
Совместимый с:
Windows |
Linux |
Использование параметров, управляющих размерами и количеством блоков
Важными параметрами команды являются
и .
Первый упрвляет размером блока, второй — количеством блоков, подвергающихся обработке. Например, можно
выполнить следующую команду
# dd if=/dev/zero of=/dev/null bs=1M count=32768 32768+0 записей считано 32768+0 записей написано скопировано 34359738368 байт (34 GB), 2,35194 c, 14,6 GB/c
дающую представленеие о скорости передачи данных «процессор-память».
Другое, более полезное применение параметров изменения размера и количества блоков — создание
образа MBR (Master Boot Record):
dd if=/dev/sda of=/home/user/archive/MBR.image bs=512 count=1
С помощью можно также при необходимости тестировать и
анализировать производительность жёсткого диска при выполнении операций последовательного чтения/записи
с блоками заданного размера, например, с блокми по 1024 байта
dd if=/dev/zero bs=1024 count=1000000 of=/home/user/tmp/1Gb.file dd if=/home/user/tmp/1Gb.file bs=64k | dd of=/dev/null
Утилита dcfldd
Программа является дальнейшим развитием клона
с расширенной функциональностью и множеством
дополнительных параметров, краткое описание которых можно получить с помощью команды
. В дополнение к типовым операциям
утилита
может выполнять следующие действия: хэширование копируемых данных «на лету», разделять вывод данных
в несколько различных файлов, осуществлять проверку соответствия создаваемого образа оргинальному
устройству «бит-в-бит». Кроме того, выводит индикатор
прогресса выполняемой работы, фиксирует свои действия в log-файле и, разумеется, может быть составной
частью конвейера, как и положено члену семейства .
Типичный пример использования программы на первый
взгляд может показаться несколько ошеломляющим, но при проходе по каждому параметру всё становится
гораздо проще:
dcfldd if=/dev/sdb4 hash=md5,sha256 hashwindow=10G md5log=md5.txt sha256log=sha256.txt \ hashconv=after bs=512 conv=noerror,sync split=10G splitformat=aa of=sdb4image.dd
Здесь считываются 10 Гб данных с устройства /dev/sdb4, и эти данные записываются в
файл sdb4image.dd.aa. При этом также вычисляется MD5-хэш и sha256-хэш для копируемого
фрагмента данных. Затем считываются следующие 10 Гб данных и записываются в файл
sdb4image.dd.ab и т.д. Вычисленные хэши сохраняются в файлах md5.txt и
sha256.txt соответственно. Само вычисление хэш-сумм выполняется после всех прочих
преобразований. Размеры блока хэширования и блока, записываемого в выходные файлы (различные),
совпадают. Размер блока копирования 512 байтов. После ошибок чтения выполнение команды не прерывается,
по умолчанию записывает в такие блоки нули.