dd копирует данные из входного потока в выходной, применяя заданные размеры блоков и преобразования. Она не понимает файловые системы, границы разделов и ценность данных назначения. Поэтому полезна для образов и сырых устройств — и немедленно разрушительна при неверной цели.
Устройства · Урок 7
dd
Узнайте, как `dd` копирует потоки блоков и как избежать разрушительных ошибок источника, назначения и размера.
Вход, выход и размер блока
Общий вид:
$ dd if=input.img of=output.img bs=4M status=progress
if=выбирает вход; без него читается стандартный ввод.of=выбирает выход; без него используется стандартный вывод.bs=задаёт размер входного и выходного блока обычного копирования.status=progressпросит GNUddпериодически показывать прогресс.
dd копирует блоки, а не обязательно по одному байту. Больший bs может сократить число системных вызовов, но оптимум зависит от устройств, выравнивания, кеша и нагрузки. Логические данные от него не меняются.
Какой операнд выбирает назначение записи dd?
Ограничение копирования
count= ограничивает число обработанных входных блоков. Для обычного файла:
$ dd if=source.img of=prefix.img bs=1M count=2 status=progress
Запрашиваются два блока до 1 MiB, то есть не больше 2 MiB. Короткие чтения усложняют умножение для потоков вроде каналов; GNU dd предлагает iflag=fullblock, когда нужны полные входные блоки. Различайте двоичные единицы и суффиксы локальной реализации.
Какой максимум запрашивает для обычного файла bs=1M count=2?
Запись образа на блочное устройство
Сырое восстановление может выглядеть так:
$ sudo dd if=backup.img of=/dev/sdX bs=4M status=progress conv=fsync
/dev/sdX — намеренно заполнитель, а не готовая команда. Перед заменой:
- Имейте проверенную копию всех ценных данных.
- Определите цель по модели, серийному номеру, размеру, транспорту и постоянной ссылке через
lsblk,udevadmили аналоги. - Убедитесь, что её разделы не смонтированы, не используются как swap, RAID или LVM и не открыты службой.
- Повторно проверьте после отключения, перезагрузки или изменения топологии.
- Убедитесь, что образ помещается и запись целого устройства действительно нужна.
Выход перезаписывается с начала. Переставленные if/of, системный диск или целый диск вместо раздела могут уничтожить данные без вопроса.
Зачем перед сырой записью проверять модель, serial, размер и использование?
Создание согласованного образа
Чтение живого устройства при изменяющейся файловой системе может дать внутренне несогласованный образ. Предпочитайте размонтированную систему, согласованный снимок приложения или документированный freeze/snapshot. Базы данных и виртуальные машины могут требовать собственную остановку изменений.
Сырой образ копирует блоки, включая метаданные и свободные области, поэтому может быть намного больше файловой копии и воспроизводить идентификаторы, которые нужно изменить перед одновременным подключением клона и оригинала.
Почему образ смонтированной изменяющейся файловой системы может быть ненадёжным?
Завершение и проверка
Отсутствие ошибки ввода-вывода не доказывает правильность источника и цели или пригодность образа. Запишите личности и размеры, убедитесь в сбросе буферов на носитель, сравните ограниченное обратное чтение или хеши и проверьте восстановление по плану.
Не обещайте гарантированное стирание через перезапись dd для SSD, flash translation layers, thin provisioning, снимков или переназначенных секторов. Используйте поддерживаемую устройством санитарную очистку и явную политику уничтожения данных.
Чего сам по себе нулевой код dd не доказывает?
Тренируйтесь только на обычных файлах или одноразовых виртуальных дисках. Лаборатория Управление разделами и файловыми системами Linux даёт нужный контекст.
Урок завершён
Вы завершили dd
Теперь вы умеете рассматривать dd как сырой копировщик блоков без понимания намерений.
Отличать
if,of,bsиcount.Проверять постоянную личность цели и всех активных потребителей.
Создавать образы из согласованного состояния.
Сбрасывать данные, проверять и тестировать восстановление.
Считать каждый сырой выход потенциально разрушительным.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт