加密單獨的根分區和主分區
所以我正在嘗試使用單獨的根分區和主分區(以及交換和引導 ofc)安裝 Arch Linux。基本上我已經對它們進行了分區,我已經安裝了它們,並且我已經加密
/
和/home
(使用cryptsetup luksFormat
)。它看起來像這樣lsblk
:現在我正在努力實現以下目標:
- 我想在系統啟動時解密所有分區,而不必為每個分區輸入密碼(順便說一下,我已經使它們相同)
- 我想為加密分區配置 GRUB,但到目前為止我只看到了配置,
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdXY:cryptroot"
並且我有兩個,所以我真的不知道我應該在這裡放什麼(也許只有/
一個?)所以現在我被困在我想執行的地方
mkinitcpio
,grub-install/grub-mkconfig
但我不能,因為如果沒有正確的 GRUB 配置,我可能無法啟動我的系統。你們知道我將如何實現這一目標嗎?第二個更重要,因為有關於第一個問題的文件,只是想把它放在那裡作為一個單行建議,我猜這是我在過去兩個小時裡一直在摸索的第二個。
歡迎來到 Unix 和 Linux StackExchange!
生成的initramfs文件的
mkinitcpio
作用只是解鎖和掛載根文件系統;在根文件系統解鎖並掛載之後,安裝其他文件系統/home
會在引導過程的稍後時間發生。GRUB 不需要知道有關/home
文件系統的任何資訊。該
cryptdevice
選項為 initramfs 文件中的腳本提供資訊,用於解鎖根文件系統的加密。如果您的系統配置稍後發生更改,這允許您輕鬆更改假定保存加密根文件系統的設備的名稱。為了在系統配置發生意外更改時保持穩健性,您實際上可能希望使用UUID=<UUID_of_sda3>
語法來代替設備名稱。因此,您可以配置
/home
使用儲存在根文件系統中某處的密鑰文件的加密。由於密鑰文件將位於加密分區內,因此在系統未執行時將受到保護。並且在根文件系統可訪問後,/etc/crypttab
將能夠引用該文件,因此/home
文件系統的加密可以自動解鎖。根據Arch wiki 的 crypttab 段落,
/home
您的文件系統的條目/etc/crypttab
可能如下所示:crypthome /dev/sda4 /etc/cryptsetup-keys.d/crypthome.key
您可能還想使用
UUID=<UUID of sda4>
此處而不是設備名稱。您將確保
/etc/cryptsetup-keys.d/
只能由 root ( ) 訪問,並將文件系統chmod 700
的密碼寫入文件中。如果入侵者可以閱讀此內容,則意味著入侵者俱有有效的 root 訪問權限,因此他們可以例如將您的命令替換為通過電子郵件將任何密碼片語發送給入侵者的命令,無論它們是輸入的還是從文件中讀取的,所以此時您反正會有更大的煩惱。/home``crypthome.key``cryptsetup