Linux dd Command: що це таке і як його використовувати

Команда Linux dd офіційно не позначає дамп диска, але ви можете думати про це таким чином. І, незважаючи на скромну назву, це дуже корисна термінальна програма для Linux. Від створення резервних копій до написання USB-дисків, знання того, як використовувати dd, безумовно, є хорошим доповненням до вашої панелі інструментів Linux.

dd: команда «Disk Dump»

По суті, dd було створено для копіювання та перетворення файлів з одного формату в інший. Не такі формати, як Word або PDF, але дуже низькорівневі формати, які описують, як дані представлені на диску. Це було ще за часів мейнфреймів, коли різні системи мали свої власні власні формати, і вирішення проблем обміну було серйозним завданням.

Команда dd бере біти з одного файлу і переміщує їх в інший файл. Важливо розуміти, що dd просто пересуває біти звідси туди, незалежно від форматів файлової системи, тек або розширень. Це означає, що ви можете зробити багато чого дуже швидко, але це також означає, що ви повинні бути обережні при запуску.

Маючи це на увазі, розумні люди в спільноті Linux перенесли dd для іншої мети. Оскільки в Linux «все є файлом», dd забезпечує простий спосіб запису ISO-образу на флеш-диск. Він робить це, беручи файл образу і «копіюючи» його в файл, що представляє флеш-накопичувач. Існує безліч сценаріїв, в яких це корисно, але тут ми зосередимося на двох: написання знімного носія і створення резервної копії.

Основне використання команди dd

Основне використання dd використовує такий синтаксис:

дд варіант1 = значення 1 варіант2 = значення 2

Для dd доступно багато варіантів, але ось ті, які ви повинні знати, щоб почати:

  • bs: Розмір блоку описує, скільки даних буде прочитано і записано за один раз. Компроміс з цим параметром знаходиться між швидкістю завершення операції і тим, наскільки легко її відновити в разі збою. Блоки великих розмірів завершуються швидше, але їх важче відновити.
  • if: вихідний файл є джерелом даних.
  • з: Вихідний файл є місцем призначення для всіх даних, що зчитуються з вхідного джерела.
  • status: Це необов'язковий прапор, але корисний, який надасть вам деяку інформацію при виконанні вашої команди. Ми дамо цьому значення прогресу, щоб він знав, що команда все ще працює.

Використання dd для запису знімних носіїв

У цьому першому прикладі ми спробуємо один з найпоширеніших варіантів використання dd: запис знімних носіїв. Ви могли б зробити це, наприклад, щоб «записати» установчий образ Linux на флеш-накопичувач USB.

Багато установчих образів створюються у вигляді файлу. ISO, який призначено для запису на CD- або DVD-ROM, але ви можете записати образ. ISO на USB-накопичувач за допомогою команди, подібної до такої:

dd bs = 4M, якщо =/шлях/до/imagefilename.img з =/dev/sda status = прогрес

Вище ми беремо вміст файлу imagefilename.img і копіюємо його по 4 МБ за раз в/dev/sda. Це файл з файловою підсистемою/dev, який представляє наш USB-накопичувач. Ми використовуємо розмір блоку 4 МБ, тому що більшість установчих образів мають великий розмір, і якщо ми використовуємо менший розмір, це займе багато часу. У будь-якому випадку щось йде не так, це не має великого значення, просто переформатуйте ваш флеш-накопичувач і спробуйте ще раз.

Переконайтеся, що у вас є правильні значення для введення і виводу. Як вже згадувалося, dd призначений для переміщення бітів з одного місця в інше, і йому все одно, що він може перезаписати в процесі. Крім того, переконайтеся, що на цільовому диску немає нічого, що вам потрібно. У кращому випадку відновити його буде дуже складно, а в гіршому - назавжди.

Використання dd для резервування ПК з Linux

Ви також можете виконати описаний вище процес у зворотному порядку і записати вміст всього диска до файла образу. Це дуже зручний і ретельний спосіб резервування вашого жорсткого диска.

У цьому випадку ми можемо в основному поміняти місцями «in file» для одного з наших дисків і «out file» для образу: Drive

dd bs = 64k, якщо =/dev/nvme0n1 з =/home/aaron/nvmedrivebackup.img status = прогрес

Тут ми вибираємо один з розділів накопичувача NVMe нашого ноутбука як вхідні дані і вказуємо шлях і ім'я файлу для зображення як вихідні дані.

Ми використовуємо менший розмір байту, щоб уникнути будь-яких проблем з копією, так як це буде наш образ відновлення в разі катастрофи. Щоб відновити диск, просто поміняйте вхідні та вихідні файли.

Команда dd - потужна утиліта, тому використовуйте її з розумом

Команда dd є дуже потужною утилітою, і, якщо подумати над нею, ви, ймовірно, зможете виявити ще більше її застосувань. Тим не менш, це також дуже проста команда, тому переконайтеся, що ви або взяли свої опції у когось знаючого, або перевірили тричі, що ви не переплутали свої вхідні і вихідні файли. В іншому випадку ви можете записати всі порожні біти з будь-якого чистого носія на диск вашого ПК.