
我讀了很多關於 LUKS/dm-crypt/cryptsetup 的教程,特別是關於如何建立加密檔案容器的教程。
第一步是使用dd
.
然後,一些教程將文件映射到/dev/loop0
循環設備並對其進行格式化,其他教程直接格式化文件,而不將其映射到循環設備中。
我的問題:循環設備步驟是否必要?有什麼不同?
答案1
您可以使用dd
或fallocate
(或head
或一些其他工具)建立一個檔案來充當容器。然後,正如 Vincent Yu 所說,cryptsetup
可以為您處理循環設定/拆卸。
fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
在調試輸出中sudo losetup
,記下AUTOCLEAR = 1
條目的filecontainer
。你可以相反,要瘋狂loopdev=$(sudo losetup -f); mount -o loop <etc>
,但cryptsetup
要順其自然方式更好。
關鍵是你要確保你首先使用它來預設cryptsetup luksOpen containerfile mappedname
安裝(你可以給它一個完整的路徑,我相信它會安裝在那裡,然後格式化目標並確保你沒有觸及直接,否則您將繞過加密引擎並僅建立未加密的環回檔案。/dev/mapper/mappedname
/
/dev/mapper/mappedname
filecontainer
答案2
如果您自己不管理循環設備,cryptsetup
則會自動設定循環設備並在不再需要時將其關閉。所以兩者沒有差別;cryptsetup
始終在循環設備上工作。看man cryptsetup
:
環回設備使用注意事項
Cryptsetup 通常直接在區塊設備(磁碟分割或 LVM 磁碟區)上使用。但是,如果設備參數是一個文件,cryptsetup 會嘗試分配一個環回設備並將其對應到該文件中。此模式需要 Linux 核心 2.6.25 或更高版本,支援循環自動清除標誌(循環裝置在上次關閉時自動清除)。當然,您始終可以手動將文件映射到循環設備。有關範例,請參閱 cryptsetup 常見問題。
當設備映射處於活動狀態時,您可以在狀態命令輸出中看到循環支援檔案。另請參閱 losetup(8)。