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

Команда dd используется для выполнения многих важных задач. Чаще всего команда dd используется для создания загрузочных USB-накопителей из файла образа ISO или IMG . . Я часто использую его для создания загрузочных USB-накопителей различных дистрибутивов Linux. Но есть и другие варианты использования команды dd . Например, команду dd можно использовать для создания резервной копии таблицы разделов, преобразования текстов и файлов, установки загрузчика на жесткий диск, SSD или USB-накопитель. Команду dd также можно использовать для проверки производительности устройств хранения, таких как задержка жесткого диска, скорость чтения и записи жесткого диска и т. Д.

В этой статье , Я покажу вам некоторые из общих применений команды dd в Linux. Я буду использовать Debian 9 Stretch для демонстрации. Но он должен работать с любым другим дистрибутивом Linux. Приступим.

Сделать загрузочный USB-накопитель вашей любимой операционной системы с помощью команды dd очень просто. Все, что вам нужно, это USB-накопитель и ISO или IMG образ операционной системы, которую вы хотите сделать загрузочным USB.

Предположим, вы загрузили ISO образ Alpine Linux, и файл сохранен в каталоге ~/Downloads как alpine-standard-3.8.0-x86_64.iso

Теперь вы можете перечислить все подключенные устройства хранения или блочные устройства с помощью следующей команды:

$ sudo lsblk

Как видите, перечислены все подключенные хранилища или блочные устройства. Здесь /dev/sdb — мой USB-накопитель. Он имеет два раздела: /dev/sdb1 и /dev/sdb2 . Но когда вы делаете загрузочные USB-накопители, вы должны использовать /dev/sdb , все блочное устройство, а не какие-либо разделы.

Теперь сделайте загрузочный USB-накопитель Alpine Linux с помощью следующей команды:

$ sudo dd if = ~/Downloads/alpine-standard-3.8.0-x86_64.iso of =/dev/sdb bs = 1M

Здесь if = ~/Downloads/alpine-standard-3.8.0-x86_64.iso используется, чтобы сообщить dd , что входной файл находится по пути ~/Downloads/alpine-standard-3.8.0-x86_64.iso и of = /dev/sdb используется, чтобы сообщить dd , что выходной файл находится по пути /dev/sdb . Bs = 1M указывает dd читать из ~/Downloads/alpine-standard-3.8.0-x86_64.iso и записывайте в /dev/sdb по 1 мегабайту данных за раз.

Как видите, файл ISO копируется на блочное устройство /dev/sdb . Теперь вы можете использовать его для установки Alpine Linux..

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

Отображение индикатора выполнения:

По умолчанию команда dd не показывает индикатор выполнения. Но вы можете указать dd показать его с помощью параметра status = progress .

Например, чтобы скопировать данные из /dev/sda на /dev/sdb по 1 мегабайту за раз с отображением индикатора выполнения, выполните следующую команду:

$ sudo dd if =/dev/sda of =/dev/sdb bs = 1M status = progress

Как видите, отображается индикатор выполнения. Вы можете увидеть, какой объем данных копируется и с какой скоростью они копируются.

Измерение производительности чтения и записи устройства хранения с помощью dd:

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

Во-первых, вы должны смонтировать раздел или запоминающее устройство в вашей файловой системе. Если у вас нет раздела на вашем устройстве хранения, вы всегда можете создать его с помощью команды fdisk и отформатировать его в нужную файловую систему (например, FAT32 , EXT4 , NTFS , XFS и т. д.). Здесь я предполагаю, что у вас есть раздел /dev/sdb1 , и он отформатирован как EXT4 .

Скажем, , вы хотите смонтировать раздел /dev/sdb1 в каталог /mnt , затем выполните следующую команду:

$ sudo mount/dev/sdb1/mnt

Как видите, раздел /dev/sdb1 смонтирован в каталоге /mnt .

$ df -h

Теперь давайте создадим файл размером 1 ГБ testrw в каталоге /mnt с помощью dd :

$ sudo dd if =/dev/zero of =/mnt/testrw bs = 1G count = 1 oflag = direct

Здесь count = 1 означает, что вы прочитали bs = 1G , что составляет 1 гигабайт, из /dev/zero и запишите его в /mnt/testrw .

Файл oflag = direct используется для отключения кэширования диска. Если кэширование диска включено, вы не получите очень точных результатов.

ПРИМЕЧАНИЕ. Помните, что для этой операции у вас должен быть не менее 1 ГБ свободной памяти или ОЗУ. на вашем компьютере. Если вы не можете позволить себе столько свободной оперативной памяти, уменьшите размер BS. Например, установите bs = 128M или даже меньше, bs = 64M

Как видите, скорость записи моего USB-накопителя составляет около 6,1 МБ в секунду.

Вы также можете проверить скорость чтения вашего устройства хранения с помощью следующей команды:

$ sudo dd if =/mnt/testrw of = ~/Downloads/test bs = 1G count = 1 oflag = direct

Как видите, я могу читать со скоростью 4,3 МБ в секунду.

Тестирование задержки устройства хранения с помощью dd:

Задержка устройства хранения — это время, принимает для доступа к устройству. Это важный параметр, который мы можем определить с помощью dd .

Чтобы проверить задержку, мы можем записывать или читать небольшие фрагменты данных (около 512 байт за раз) X раз и посмотреть, сколько времени это займет. Затем мы можем очень легко подсчитать, сколько времени требуется для чтения или записи отдельного фрагмента данных. Это называется задержкой устройства хранения.

Например, предположим, вы хотите рассчитать задержку записи. Теперь выполните следующую команду, чтобы записать фрагмент размером 512 байт примерно 1000 раз:

$ sudo dd if =/dev/zero of =/mnt/testX bs = 512 count = 1000 oflag = direct

Как видите, для записи 1000 блоков данных размером 512 байтов требуется около 16,4541 секунд. Теперь, чтобы записать один фрагмент данных, требуется около (16,4541 с/1000 = 0,0164 с) 0,0164 секунды. Таким образом, задержка записи для этого устройства хранения составляет около 0,0164 секунды.

Таким же образом можно рассчитать задержку чтения.

Вот как вы используете dd и тестируете с его помощью производительность устройства ввода-вывода. Спасибо, что прочитали эту статью.

Оцените статью
nanomode.ru
Добавить комментарий