dd – майстер копіювання даних

dd – старенька консольна утиліта в Linux-системах (хоча є і для Windows, але це зовсім інша історія), яка призначена для копіювання інформації. З її допомогою ми можемо:

[tds_info]

  • зробити дзеркальну копію диска та відновити дані з неї;
  • зробити .iso образ;
  • зберегти mbr-розділ диска;
  • зробити бекап розділу чи диска на віддалений сервер (налаштувати щось на зразок резервного копіювання за розкладом);

[/tds_info]

 

Але про все по порядку.

Для початку, мабуть, розберемо важливі параметри. І так:

[ads_color_box color_background=”#eee” color_text=”#444″]

if= джерело копіювання (може бути диск, флешка, файл)

of= призначення копіювання (так само може бути блоковий пристрій або файл)

bs= розмір блоку даних, які ми будемо читати або писати за один раз (можна користуватися модифікаторами, наприклад 512k, 5M, 2G), за замовчуванням використовується 512k count= кількість блоків, які будуть записані чи прочитані

[/ads_color_box]

І ще одним важливим, як на мене, параметром є status = ‘progress’. Без нього ми не зможемо бачити статус копіювання, так як за замовчуванням dd нічого не виводить і можна довго вирячитися в порожній чорний екран. Є й інші параметри, але використовуються досить рідко. Почитати про них можна у довідковій документації. Розглянемо приклади використання утиліти.

Клонуємо жорсткий диск: dd if=/dev/sda of=~/disk.img bs=4096 status=’progress’ . Отримуємо приблизно таку картину

При копіюванні у такий спосіб є невеликий нюанс. Так як dd скопіює всі блоки, то при низькій заповненості диска ми витратимо місце марно. Тут якраз можна скористатися параметром count і вказати, скільки блоків потрібно скопіювати. Якщо нам потрібний образ “як він є”, то count вказувати не потрібно.

Знімаємо дамп mbr запису диска: MBR – це код, який потрібний для завантаження системи. Він розташований у першому секторі диска та має розмір 512 байт. Він містить виконуваний код та таблицю розділів диска. Якщо цей запис затерти, наприклад, встановивши операційну систему Windows поверх Linux на одному диску, то Linux ми вже не зможемо завантажити. Саме для таких випадків ми можемо зробити дамп перших 512 байт і відновитися у разі потреби.

За аналогією робимо .iso образ з диска CD і записуємо його на флешку, наприклад:

[ads_color_box color_background=”#eee” color_text=”#444″]

dd if=/dev/cdrom of=image.iso

dd if=image.iso of=/dev/sdc1

[/ads_color_box]

Ще однією цікавою особливістю dd є те, що вона вміє занулювати жорсткі диски. А як відомо, якщо забити поверхню диска нулями (0), інформацію відновити не вийде. Для цього робимо наступне:

[ads_color_box color_background=”#eee” color_text=”#444″]dd if=/dev/zero of=/dev/sda (замість sda вкажіть свій розділ)[/ads_color_box]

Ну і нарешті розглянемо ще один приклад використання dd, саме копіювання на віддалений сервер.


Тут необхідно попередньо налаштувати авторизацію по ключу, щоб не було непотрібних питань про введення пароля, особливо при автоматизації цього процесу скриптом. Звичайно, можна попередньо підключити по NFS або sshfs розділ для бекапів і не морочитися або замість цього використовувати той же rsync, але такий спосіб може стати в нагоді, коли потрібно мати під рукою вже готовий образ диска і у разі виходу з ладу фізичного диска, залити готовий образ новий диск.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *