加密 Linux 系統基於檔案的備份?

加密 Linux 系統基於檔案的備份?

我了解到,clonezilla當磁碟加密時,諸如此類的工具無法省略空閒區塊,這是一個大問題,因為備份磁碟機始終需要有至少與來源磁碟機大小相同 - 即使後者包含大部分可用空間!這是不切實際的,也不是備份應該如何運作的。

我們假設標準 Linux 安裝具有以下分區結構(加密,LVM 上的 LUKS)。如何建立可啟動的、基於檔案的備份?

主意:用於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磁碟備份從終端完成。

要做的事:加密備份!

相關內容