Grub2
引導期間無法在 LVM 上打開根 LUKS 設備
我有使用 LUKS 加密的 LVM 分區。我的根分區是
/dev/HDD/root
:LVM group "HDD" (at /dev/HDD): Encrypted LUKS device "root" at /dev/HDD/root
我正在嘗試通過 grub 參數對其進行解密
GRUB_CMDLINE_LINUX
:dolvm crypt_root=/dev/HDD/root root=/dev/mapper/root root_keydev=UUID=<usb-uuid> root_key=hdd.key
LUKS 的密鑰位於 USB 設備上
/hdd.key
但是當它載入時,它會顯示錯誤消息:
>> Scanning for and activating Volume Groups Reading all physical volumes. This may take a while... Found volume group "HDD" using metadata type lvm 3 logical volume(s) in volume group "HDD" now active >> Using key device /dev/sdc2. >> Removable device /dev/sdc2 mounted. >> hdd.key on device /dev/sdc2 found No key available with this passphrase. !! Failed to open LUKS device /dev/HDD/root !! Could not find the root in /dev/HDD/root. !! Please specify another value or: !! - press Enter for the same !! - type "shell" for a shell !! - type "q" to skip...
根據日誌找到卷組,成功掛載帶密鑰的設備,找到設備上的密鑰,但使用LUKS打開失敗。
然後我使用
shell
選項手動修復它。帶有密鑰的設備已安裝到/mnt/key
,所以我可以在這裡找到它並使用此密鑰打開 LUKS 設備:cat /mnt/key/hdd.key | cryptsetup luksOpen /dev/HDD/root root
此命令在 處打開 LUKS 設備
/dev/mapper/root
,因此我可以退出 shell 並按下q
以跳過此錯誤。之後系統啟動成功。我的 grub 配置似乎有問題,因為可以打開 LUKS 設備並使用我的密鑰手動安裝它,所以我的問題是如何修復它以使用 grub2 在啟動時自動打開 LUKS 設備?
問題是我使用密鑰作為 LUKS 的密碼,而不是密鑰文件。要將其轉換為密鑰文件,需要通過添加密鑰文件
cryptsetup
並為其刪除密碼:cat /bood/hdd.key | cryptsetup luksAddKey -d /bood/hdd.key /dev/root cat /bood/hdd.key | cryptsetup luksRemoveKey /dev/root
這裡有一篇解釋清楚的文章來設置 LUKS 分區。
在 Red Hat Enterprise Linux 7 和變體中創建加密文件系統
此外,我們可能需要刪除 LUKS,以防使用以下步驟。