我有 Ubuntu 18.04,带有两个分区的全盘加密:EFI ESP 和 LUKS1 加密根分区(没有单独的 /boot)。安装 grub 并重新启动后,它只显示正常grub >
提示,而不是询问 LUKS 密码并启动 Ubuntu。内核通过使用/etc/luks/boot_os.keyfile
.
Grub 配置文件中/boot/efi/EFI/ubuntu/grub.cfg
不包含cryptomount
命令,因此它甚至不会尝试解锁根分区:
search.fs_uuid ee03828b-76bc-4143-a2fb-f86719a90fca root cryptouuid/88251fdb112a4924a9c69892f17322e8
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
如果我手动编辑此文件添加:
cryptomount -u 88251fdb112a4924a9c69892f17322e8
作为第一行,grub 要求输入密码,系统启动正常。
我如何才能说服grub-install
将 cryptomount 包含在grub.cfg
ESP 内部,以便系统升级不会破坏我的系统?
其他配置文件:
/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT=1
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=true
GRUB_ENABLE_CRYPTODISK=y
GRUB_PRELOAD_MODULES="luks cryptodisk"
/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/nvme0n1p2_crypt / ext4 errors=remount-ro 0 1
/swapfile none swap sw 0 0
UUID=6225-46A9 /boot/efi vfat defaults 0 1
/etc/crypttab
# <target name> <source device> <key file> <options>
nvme0n1p2_crypt UUID=88251fdb-112a-4924-a9c6-9892f17322e8 /etc/luks/boot_os.keyfile luks,discard
/etc/cryptsetup-initramfs/conf-hook
KEYFILE_PATTERN=/etc/luks/*.keyfile
分区:
lsblk -e7 -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat SYSTEM E463-AB68
├─sda2
├─sda3
└─sda4 ntfs WinRE_DRV B27667B5766778CD
nvme0n1
├─nvme0n1p1 vfat 6225-46A9 /boot/efi
└─nvme0n1p2 crypto_LUKS 88251fdb-112a-4924-a9c6-9892f17322e8
└─nvme0n1p2_crypt ext4 ee03828b-76bc-4143-a2fb-f86719a90fca /
另外,我现在不关心双启动,所以我禁用了/etc/default/grub
.