Использование dd для клонирования диска с шифрованием LUKS

Вопрос или проблема

Мы хотим скопировать содержимое одного диска на другой, но с усложнением: на исходном диске данные находятся в разделе, зашифрованном с помощью LUKS, а на целевом диске LUKS использоваться не будет.

Обычно мы бы использовали “dd” для копирования содержимого диска, но будет ли dd читать зашифрованные или расшифрованные данные с исходного диска? Если он “увидит” зашифрованные данные и скопирует их на целевой диск, то это не сработает, потому что на целевом диске LUKS использоваться не будет. Думаю, в таком случае нам придется использовать инструмент более высокого уровня, например, rsync, для копирования данных.

Чтобы объяснить подробнее, наш исходный диск — sdb, который имеет раздел sdb2, зашифрованный с помощью LUKS и представлен как /dev/mapper/bricks. Поверх /dev/mapper/bricks была создана файловая система XFS. Заранее спасибо.

Если вы использовали cryptsetup, чтобы смонтировать LUKS-зашифрованный /dev/sdb2 на /dev/mapper/bricks, тогда вы можете просто использовать

dd if=/dev/mapper/bricks of=<target partition>

для копирования незашифрованных данных на целевой раздел.

Ответ или решение

Теория

При копировании данных с одного диска на другой, важно учитывать, в каком виде данные хранятся на исходном диске. В вашем случае, исходный диск имеет LUKS-зашифрованный раздел, что добавляет некоторую сложность, так как дублирование данных в зашифрованном виде с помощью dd приведет к следующей проблеме: на целевом диске получится набор зашифрованных данных, которые без LUKS невозможно будет прочитать. В связи с этим, ключевой задачей является извлечение данных в незашифрованном виде перед копированием на новый диск.

Пример

В вашем случае, зашифрованный раздел /dev/sdb2, после расшифровки посредством cryptsetup, монтируется как /dev/mapper/bricks. На этом маппере создана файловая система XFS, которая содержит все необходимые данные. Чтобы эффективным образом скопировать данные на новый диск, необходимо использовать dd не на самом зашифрованном разделе, а именно на расшифрованной его версии.

Пример команды:

dd if=/dev/mapper/bricks of=<целевая_раздел>

Здесь if (input file) указывает на источник, с которого происходит чтение данных. Это расшифрованная версия вашей файловой системы, доступная как /dev/mapper/bricks. of (output file) указывает на целевой раздел, куда будут скопированы данные. Эта команда копирует данные в незашифрованном виде, сохраняя их целостность.

Применение

Важно проверить несколько этапов перед тем, как начинать процесс копирования:

  1. Подготовка целевого диска: Убедитесь, что целевой диск разбит на разделы и имеет файловую систему. Можно использовать инструменты вроде fdisk, gdisk для разметки и mkfs для создания файловой системы на разделах.

  2. Мониторинг процесса: Команда dd не предоставляет оперативной информации о процессе копирования. Для удобства за ним стоит следить с помощью команды pv или ключа status=progress в dd, чтобы понимать, как идет процесс:

    dd if=/dev/mapper/bricks of=<целевая_раздел> status=progress
  3. Контроль завершения: После окончания процесса рекомендуется проверить целевой диск на ошибки. Это можно сделать с использованием утилиты, например fsck для проверки целостности файловой системы, в нашем случае XFS.

  4. Права и доступ: После копирования, проверьте, чтобы все разрешения и владельцы файлов были корректными. Это можно сделать через chown и chmod, при необходимости, или использовать rsync с параметрами, которые сохраняют метаданные файлов.

  5. Тестирование доступности данных: Перед тем как начать использовать новый диск в полноценной работе, рекомендуется провести тестирование доступности всех данных. Это можно сделать вручную, открыв несколько файлов или скриптом, который автоматически проверит заданные папки и файлы.

Использование dd предоставляет низкоуровневый доступ к данным, обходя большинство мета- и файловых данных. Однако, в случае необходимости копирования конкретных данных или сохранения структуры файлов, можно рассмотреть использование rsync. Этот инструмент позволяет более гибко управлять процессом копирования, сохраняя права доступа, символические ссылки и другие важные атрибуты файлов.

Копирование данных с зашифрованного LUKS-раздела с этой методикой обеспечит надлежащую миграцию данных без потери информации и с соблюдением всех системных норм и требований.

Оцените материал
Добавить комментарий

Капча загружается...