Я узнал, что такие инструменты, как , clonezilla
не могут исключать свободные блоки, когда диск зашифрован, что является огромной проблемой, поскольку резервный диск всегда должен иметьпо меньшей меретого же размера, что и исходный диск - даже если последний содержит большую часть свободного места! Это непрактично и не так должно работать резервное копирование.
Предположим, что у нас стандартная установка Linux со структурой разделов, например:этот(зашифровано, LUKS на LVM). Как создать загрузочную резервную копию на основе файлов?
Идея:Используется cp -a
для копирования всех файлов с исходного диска на резервный диск.
=>Как воспроизвести структуру разделов из терминала? Есть ли встроенные инструменты Linux для этой работы? И будут ли cp
копироваться файлы, которые в данный момент открыты/используются (горячая передача)?
Идея, очевидно, состоит в том, чтобы создать тонкий и изящный скрипт Bash, который в идеале можно было бы запустить непосредственно из любой работающей исходной системы:
- Creating backup -
1.) Mount empty USB flash drive to running source system
2.) Run Bash script (hot transfer of all files and partition structure)
3.) Bootable, file-based backup is created
- Restoring backup -
1.) Mount backup USB flash drive to empty host machine
2.) Boot the backup system
3.) Run Bash script (partitioning of host drive, hot-transfer of all files)
...finished! Reboot, remove backup USB flash drive, enjoy restored system.
Примечание: Если я прав, то полученная резервная копия будетнетбыть зашифрованы. Но это, кажется, необходимый компромисс для использования cp
изнутри разблокированной системы и, таким образом, избежания создания этих гигантских побитовых образов/клонов. Плюс, шифрование всегда можно добавить впоследствии.
решение1
Оказывается, чтоrsync
является идеальным инструментом выбора. Он поддерживаетполныйигорячийперенос всей файловой системы из работающей системы:
rsync -avxHAX / /dev/[backup_drive]/
Проблема шифрования/дешифрования заключается в следующем.решенопредварительно разблокировав зашифрованный диск:
cryptsetup luksOpen /dev/[source_drive] && rsync -avxHAX / /dev/[backup_drive]/
Осталась задача все воспроизвести.снаружиобласть применения rsync
, т.е.вне файловой системы, то есть загрузочный сектор (= первые 512 байт на диске), содержащий загрузчик и таблицы разделов. Для этого можно использовать dd
или :ddrescue
cryptsetup luksOpen /dev/[source_drive] && rsync -avxHAX / /dev/[backup_disk]/ && dd if=/dev/[source_drive] of=/dev/[backup_drive] bs=446 count=1
Здесь bs=446
используется вместо bs=512
в предположении, что резервный диск и разделы будут иметь разный размер, поэтомуопускаятаблица разделов и байты сигнатуры.
Это должно привести кполный,горячепереносимый(из работающей системы),загрузочный,редкий(на основе файлов)Резервное копирование диска Linuxделается с терминала.
Необходимо сделать: зашифровать резервную копию!