“Dd” - це інструмент CLI для Linux. Тепер поточна версія “dd” є частиною основних модулів GNU, тобто тією, що є у кожній системі UNIX / Linux. Основна мета цього інструменту - конвертувати та копіювати файли. Однак він зовсім інший, ніж інші засоби копіювання файлів, такі як “cp”.
dd особливості “Dd” може використовуватися для різних цілей:
Використовуючи “dd”, можна безпосередньо читати та / або писати з / у різні файли за умови, що функція вже реалізована у відповідних драйверах. Це дуже корисно для таких цілей, як резервне копіювання завантажувального сектору, отримання випадкових даних тощо. Перетворення даних, наприклад, перетворення ASCII в кодування EBCDIC. dd використання Ось деякі найпоширеніші та найцікавіші вживання “dd”. Звичайно, "dd" набагато спроможніший за ці речі. Якщо вам цікаво, я завжди рекомендую ознайомитися з іншими поглибленими ресурсами на “dd”.
Розташування
який дд
Як вказує результат, при запуску “dd” він запускається з “/ usr / bin / dd”.
Основне використання Ось структура, якої слідує “dd”.
dd якщо =
з = Наприклад, давайте створимо файл із випадковими даними. У Linux є деякі вбудовані спеціальні файли, які виглядають як звичайні файли, такі як “/ dev / zero”, що створює безперервний потік NULL, “/ dev / random”, що створює безперервні випадкові дані.
dd if = / dev / urandom of = ~ / Desktop / random.txt bs = 1M кол = 5
Найперші варіанти є зрозумілими. Це означає використовувати “/ dev / urandom” як джерело даних та “~ / Desktop / random.txt ”як пункт призначення. Які інші варіанти?
Тут "bs" означає "розмір блоку". Коли dd пише дані, він пише в блоки. За допомогою цієї опції можна визначити розмір блоку. У цьому випадку значення “1M” говорить про те, що розмір блоку становить 1 мегабайт.
“Count” визначає кількість блоків, які слід записати. Якщо це не виправлено, “dd” продовжить процес запису, якщо вхідний потік не закінчиться. У цьому випадку “/ dev / urandom” буде продовжувати генерувати дані нескінченно, тому цей параметр був головним у цьому прикладі.
Резервне копіювання даних За допомогою цього методу за допомогою “dd” можна скидати дані цілого диска! Все, що вам потрібно, це повідомити привід як джерело.
dd якщо = з =
Якщо ви йдете на такі дії, переконайтесь, що джерелом не є каталог. “Dd” не уявляє, як обробити каталог, тому все не буде працювати.
“Dd” знає лише, як працювати з файлами. Отже, якщо вам потрібна резервна копія каталогу, спочатку використовуйте tar для архівування, а потім використовуйте “dd”, щоб перенести його у файл.
tar cvJf демо.дьоготь.xz DemoDir /
dd if = демо.дьоготь.xz = = / Робочий стіл / резервна копія.img
У наступному прикладі ми виконаємо дуже делікатну операцію: резервне копіювання MBR! Тепер, якщо у вашій системі використовується MBR (Master Boot Record), то вона розташована на перших 512 байтах системного диска: 466 байт для завантажувача, інші для таблиці розділів.
Виконайте цю команду для резервного копіювання запису MBR.
dd if = / dev / sda of = ~ / Desktop / mbr.img bs = 512 кол = 1
Відновлення даних Для будь-якої резервної копії необхідний спосіб відновлення даних. У разі “dd” процес відновлення дещо відрізняється від будь-яких інших інструментів. Вам доведеться переписати файл резервної копії в подібну папку / розділ / пристрій.
Наприклад, у мене є ця “резервна копія.img ”, що містить файл“ demo.дьоготь.xz ”. Щоб витягти його, я використав таку команду.
dd if = резервна копія.img of = демо.дьоготь.xz
Знову ж таки, переконайтеся, що ви записуєте вихідні дані у файл. Пам’ятайте, що “dd” погано справляється з каталогами?
Подібним чином, якщо для створення резервної копії розділу було використано “dd”, то для його відновлення потрібна буде наступна команда.
dd якщо = з =
Наприклад, як щодо відновлення MBR, який ми створили раніше?
dd якщо = mbr.img of = / dev / sda
Опції “dd” У якийсь момент у цьому посібнику ви зіткнулися з деякими параметрами "dd", такими як "bs" та "count", вірно? Ну, їх більше. Ось короткий список того, що вони собою являють і як ними користуватися.
obs: визначає розмір даних, які слід записувати за раз. Значення за замовчуванням - 512 байт.
cbs: визначає розмір даних, які потрібно перетворити за раз.
ibs: визначає розмір даних, які слід читати за раз. count: Скопіюйте лише N блоків
шукати: Пропустити N блоків на початку виводу
skip: Пропустити N блоків на початку введення
conv = ascii: Перетворює введення файлу з EBCDIC на ASCII
conv = ebcdic: Перетворює введення файлу з ASCII на EBCDIC
conv = ibm: перетворює вхідний файл із ASCII на альтернативний EBCDIC
conv = lcase: перетворює введені дані з верхнього регістру в малі
conv = ucase: перетворює введення файлу з нижнього регістру у верхній регістр
conv = swab: поміняйте місцями кожну пару введення
Додаткові опції:
nocreat: Не створюйте вихідний файл notruc: Не усікайте вихідний файл noerror: продовжуйте операцію, навіть після помилки fdatasync: Запишіть дані у фізичну пам’ять до завершення процесу fsync: схожий на fdatasync, але також пише метадані iflag: Налаштуйте операцію на основі різних прапорів. Доступні прапори включають: додавання до Додавання даних до виводу
Додаткові опції:
directory: Зіткнення з каталогом не вдасться виконати операцію dsync: синхронізоване введення / виведення даних синхронізація: схожа на dsync, але включає метадані nocache: Запити на видалення кешу. nofollow: не слідкуйте за будь-яким символічним посиланням
Додаткові параметри:
count_bytes: Подібно до “count = N” search_bytes: Подібно до “шукати = N” skip_bytes: Подібно до “skip = N” Як ви вже бачили, можна скласти кілька прапорців та опцій в одній команді “dd”, щоб змінити поведінку операції.
dd if = демо.txt = demo1.txt bs = 10 count = 100 conv = ebcdic iflag = додати, nocache, nofollow, sync
Заключні думки Робочий процес “dd” досить простий. Однак, щоб “dd” справді сяяв, це вирішувати вам. Існує безліч способів, за допомогою яких творчі способи «dd» можна використовувати для розумних взаємодій.
Для отримання детальної інформації про “dd” та всі її варіанти, зверніться до людини та на інформаційну сторінку.
людина dd