%20%E5%8A%A0%E5%AF%86%E5%97%8E%EF%BC%9F.png)
所以我有一台筆記型電腦,我想看看遷移到全盤加密有多難。我之前已經從全新安裝完成過一次,甚至寫了一份 HOWTO,不幸的是我無法再訪問它(企業維基)。我的期望是,從全新安裝中執行此操作可能非常自動化,因此遷移可能會困難得多。我一直在尋找指南,但它們似乎都標有“重複”、“需要更新”、“刪除候選”等的某種變體,因此現在很難判斷哪個是最合適的指南。
答案1
我已經做過一兩次這樣的遷移,但你必須能夠使用谷歌來解決出現的問題。這不是完整的答案,只是您需要做的粗略步驟。這些步驟必須從 Live CD 完成,並涉及 LUKS 和 LVM 的操作,因此您不妨取得包含最新版本的 KDE Partition Manager 3.0 的 Live CD,並將其用於 LUKS 和 LVM 操作。
如果你有足夠的可用空間(超過 50%),你可以
- 調整目前分割區的大小。
- 建立一個使用 LUKS 加密的新 LVM2 實體磁碟區 (PV)。
- 建立包含 LVM PV 的新磁碟區組。
- 為您的 rootfs 建立新的 LVM 邏輯磁碟區(可能還有交換分割區和您可能擁有的所有其他分割區...)。我自己使用 btrfs 和子卷,所以我只有 btrfs 和 swap。
- 將您的資料移至加密分割區
- 刪除未加密的分割區
- 停用 LVM 並停用您的 LUKS 容器
- 將 LUKS 容器移至磁碟的開頭(透過刪除未加密的資料釋放空間)
- 再次打開 LUKS 容器。
- 增大 LUKS 容器,使其填滿整個磁碟。
- 成長包含根檔案系統的 LVM LV。
然後,您必須更新 /etc/fstab 中的條目,建立 /etc/crypttab,chroot 到加密的 rootfs 中,更新 initramfs 和 grub 設定。
這仍然使 /boot 未加密。您也可以加密 /boot,但這會增加一些額外的步驟,因此首先確保上述所有內容都有效。為了加密啟動,您必須將 /boot 分割區資訊的內容移至 rootfs/boot/ 中。然後在 /etc/default/grub 中,您需要新增GRUB_ENABLE_CRYPTODISK=y
和刪除舊的未加密的 /boot。然後,您必須再次更新 /etc/fstab 中的條目,建立 /etc/crypttab,chroot 到加密的 rootfs 中,更新 initramfs 和 grub 設定。在這些步驟之後,grub 將在啟動前詢問密碼,但它不會在啟動時將其傳遞給 initramfs,因此 cryptsetup 將再次詢問。因此,您需要將 luks 金鑰檔案新增至 luks 容器中,並將其放入 initramfs 中。例如我的 /etc/crypttab 檔案包含
luks-MYUUID UUID=MYUUID /boot/crypto_keyfile.bin luks