Що саме робить команда dd?


8

Кілька днів тому я із задоволенням дізнався, що не все так складно написати ізо-образ на USB без допомоги сторонньої програми, явно призначеної для цього. Але команда (або програма), яка полегшує це - dd - мене спантеличує.

Згідно з Вікіпедією, він призначений для копіювання та перетворення необроблених даних, але, чесно кажучи, я вважаю це визначення дуже однозначним і розпливчастим. Я розумію, що це дозволяє перетворити один фрагмент даних на інший, але що станеться, якщо вказаний вихідний файл занадто малий, щоб перетворити його у вказаний вхідний файл?

dd if=giant_file of=tiny_file

Крім того, коли я створюю завантажувальний USB з файлом зображення, USB отримує тип файлової системи isofs , але якщо я записую на накопичувач архів або виконуваний файл, він зберігає свій звичайний тип файлової системи.

Будемо дуже вдячні за будь-яке роз'яснення того, що насправді робить команда dd або як вона працює на нижчому рівні. Дякую!

Відповіді:


8

ddробить байт-байт копію від джерела до місця призначення, з необов'язковим перетворенням, визначеним convаргументом. Він виконує операції читання і запису , як зазначено *bsі *flagопцій, з діапазоном , визначеної count, skipі seekваріанти.

що станеться, якщо вказаний вихідний файл занадто малий, щоб перетворити його на вказаний вхідний файл?

Якщо ofїх занадто мало, ifто дані обрізаються, щоб вони вмістилися. Зауважте, що якщо ofзвичайний файл, то він перезаписується.


1
ofперезаписується, навіть якщо це не файл - це дуже приємний спосіб (випадково?) знищити розділ / диск! Ось чому дуже важливо подвоїти та, можливо, потричі перевірити місце призначення, якщо це диск / розділ, щоб переконатися, що у вас є правильний.
Боб

1
Технічно він записує в об’єкт, а не перезаписує його.
Ігнасіо Васкес-Абрамс

Дякую за відповідь. Що робити, якщо ви не включаєте жодних аргументів, але робите щось на зразок dd if=executable of=archive.tar, припускаючи, що вони обидва однакового розміру. Чи буде бездоганно перетворений архів у виконуваний файл?
ICoffeeConsumer

1
Він буде робити байт-в-байт копію з executableдо archive.tar512 байт в той час. Він не перетворить двійкове в архів.
Ігнасіо Васкес-Абрамс

5

Я навіть не намагаюся підсумувати те, що є в цих посиланнях, але ви можете здати їх корисними (або занадто багато інформації ) ... Вони обоє з Unix та Linux (stackexchange)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.