Grub 不尝试解锁 LUKS 分区

Has*_*shi 5 ubuntu grub2 luks

我有 Ubuntu 18.04,带有两个分区的全盘加密:EFI ESP 和 LUKS1 加密根分区(没有单独的 /boot)。安装 grub 并重新启动后,它只显示正常grub >提示,而不是询问 LUKS 密码并启动 Ubuntu。内核使用 LUKS 密钥文件解锁根文件系统/etc/luks/boot_os.keyfile.

\n

Grub 配置文件中/boot/efi/EFI/ubuntu/grub.cfg不包含cryptomount命令,因此它甚至不会尝试解锁根分区:

\n
search.fs_uuid ee03828b-76bc-4143-a2fb-f86719a90fca root cryptouuid/88251fdb112a4924a9c69892f17322e8 \nset prefix=($root)'/boot/grub'\nconfigfile $prefix/grub.cfg\n
Run Code Online (Sandbox Code Playgroud)\n

如果我手动编辑此文件添加:

\n
cryptomount -u 88251fdb112a4924a9c69892f17322e8\n
Run Code Online (Sandbox Code Playgroud)\n

作为第一行,grub 要求输入密码,系统启动正常。

\n

我如何说服grub-install将 cryptomount 包含在grub.cfgESP 内部,以便系统升级不会破坏我的系统?

\n

其他配置文件:

\n

/etc/default/grub

\n
GRUB_DEFAULT=0\nGRUB_TIMEOUT_STYLE=hidden\nGRUB_TIMEOUT=0\nGRUB_HIDDEN_TIMEOUT=1\nGRUB_HIDDEN_TIMEOUT_QUIET=true\nGRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`\nGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"\nGRUB_CMDLINE_LINUX=""\n\nGRUB_DISABLE_OS_PROBER=true\n\nGRUB_ENABLE_CRYPTODISK=y\nGRUB_PRELOAD_MODULES="luks cryptodisk"\n
Run Code Online (Sandbox Code Playgroud)\n

/etc/fstab

\n
# <file system> <mount point>   <type>  <options>       <dump>  <pass>\n/dev/mapper/nvme0n1p2_crypt /                         ext4    errors=remount-ro  0       1\n/swapfile                                 none            swap    sw                 0       0\nUUID=6225-46A9  /boot/efi       vfat    defaults      0       1\n
Run Code Online (Sandbox Code Playgroud)\n

/etc/crypttab

\n
# <target name> <source device>     <key file>  <options>\nnvme0n1p2_crypt UUID=88251fdb-112a-4924-a9c6-9892f17322e8 /etc/luks/boot_os.keyfile luks,discard\n
Run Code Online (Sandbox Code Playgroud)\n

/etc/cryptsetup-initramfs/conf-hook

\n
KEYFILE_PATTERN=/etc/luks/*.keyfile\n
Run Code Online (Sandbox Code Playgroud)\n

分区:

\n

lsblk -e7 -f

\n
NAME                FSTYPE      LABEL     UUID                                 MOUNTPOINT\nsda                                                                            \n\xe2\x94\x9c\xe2\x94\x80sda1              vfat        SYSTEM    E463-AB68                            \n\xe2\x94\x9c\xe2\x94\x80sda2                                                                         \n\xe2\x94\x9c\xe2\x94\x80sda3                                                                         \n\xe2\x94\x94\xe2\x94\x80sda4              ntfs        WinRE_DRV B27667B5766778CD                     \nnvme0n1                                                                        \n\xe2\x94\x9c\xe2\x94\x80nvme0n1p1         vfat                  6225-46A9                            /boot/efi\n\xe2\x94\x94\xe2\x94\x80nvme0n1p2         crypto_LUKS           88251fdb-112a-4924-a9c6-9892f17322e8 \n  \xe2\x94\x94\xe2\x94\x80nvme0n1p2_crypt ext4                  ee03828b-76bc-4143-a2fb-f86719a90fca /\n
Run Code Online (Sandbox Code Playgroud)\n

另外,我现在不关心双启动,所以我禁用了/etc/default/grub.

\n