Команда Linux dd: що це таке і як нею користуватися

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

dd: Команда «Disk Dump».

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

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

Маючи це на увазі, розумні люди у спільноті Linux перенесли dd з іншою метою. Оскільки в Linux «все є файлом», dd пропонує простий спосіб

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

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

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

dd параметр1=значення1 параметр2=значення2

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

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

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

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

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

dd bs=4M if=/path/to/imagefilename.img of=/dev/sda status=progress

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

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

Використання dd для резервного копіювання ПК з Linux

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

Запуск команди Linux dd

У цьому випадку ми можемо поміняти місцями «вхідний файл» на один із наших дисків, а «вихідний файл» на зображення: диск.

dd bs=64k if=/dev/nvme0n1 of=/home/aaron/nvmedrivebackup.img status=progress

Тут ми вибираємо один із розділів на нашому ноутбуці Диск NVMe як вхідні дані, а як вихідні дані – шлях та ім’я файлу для зображення.

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

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

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