Grub2

引導期間無法在 LVM 上打開根 LUKS 設備

  • November 2, 2018

我有使用 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,以防使用以下步驟。

如何從 Red Hat 6、7 Linux 和變體中安全刪除 Luks 加密磁碟

引用自:https://unix.stackexchange.com/questions/474484