我在带有 EFI BIOS 的 Lenovo X280 笔记本上安装了双启动 Windows 10 和 Kali Linux x64(基于 Debian 9 x64 的 Linux 发行版)。 Windows 10 使用带有密码的 BitLocker(不是 TPM)。 Linux 使用 LUKS 加密。我单独创建了 Kali /boot 分区。我不得不更换正在使用的主板。此后仅 Windows 启动。格鲁布不见了。所以我尝试从 Live 系统(从 USB 闪存驱动器)重新安装 grub:
- 我手动加密了 LUKS 分区:
cryptsetup luksOpen /dev/nvme0n1p4 disk
- 我安装了分区:
mount /dev/mapper/sk1-system /mnt mount /dev/nvme0n1p5 /mnt/boot mount /dev/nvme0n1p1 /mnt/boot/efi for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done
- 安装并更新 grub:
chroot /mnt grub-install /dev/nvme0n1 update-grub
grub 安装成功后,但在笔记本开机后,我看到黑屏并显示 LUKS 密码,当我输入正确的密码时,我在 Grub 菜单中只看到 Windows Boot Manager,而不是 Kali Linux。
我的驱动器是这样分区的:
nvme0n1:
nvme0n1p1: EFI
p2: MS Reserved Partition
p3: Windows 10 (BitLocker)
p4: crypto_LUKS partition it contains:
LVM:
/dev/mapper/sk1-system
/dev/mapper/sk1-swap
p5: Kali /boot partition (ext4)
p6: DATA (NTFS)
p7: WinRE_DRV
我的grub配置文件
我的系统表文件
请问如何为 Kali Linux 添加启动项?我该如何在 grub 屏幕之前跳过带有 LUKS 密码请求的黑屏? (在更换主板之前,我直接看到 grub 屏幕)。
答案1
读取您的grub.cfg
文件,第一个 LUKS 密码请求的直接原因部分是:
cryptomount -u 99cc765bd11945e7a922436c76cfd505
set root='lvmid/vlNbhc-Fecj-bwew-vg7J-nnuy-3aCy-zl395m/Co88vm-3aMx-939B-ehD7-ijFW-Hw7p-z3gWUW'
因此,看起来update-grub
正准备从基于 LVM 的文件系统读取某些内容。那可能是什么?
font="/usr/share/grub/unicode.pf2"
哦,它想直接从/usr/share/grub 读取字体文件。
根据评论,这部分来自/etc/grub.d/00_header
文件。如果 GRUB 内部功能测试变量feature_default_font_path
设置为y
,则将跳过整个块,避免此处出现 LUKS 密码提示。
另一个类似的块紧接在### BEGIN /etc/grub.d/05_debian_theme ###
评论之后:它还确保将安装加密磁盘,以便......
if background_image /usr/share/desktop-base/kali-theme/grub/grub-16x9.png; then
set color_normal=white/black
set color_highlight=black/white
...从 加载 GRUB 菜单的背景图像/usr/share/desktop-base/
。
其余的块(以及 中的相应配置片段文件/etc/grub.d/
)似乎不依赖于对加密磁盘的访问。
因此,要摆脱 GRUB 菜单之前额外的 LUKS 提示,您需要禁用图形菜单并退回到 GRUB 的更简单的外观,或者查看/etc/grub.d/00_header
和/etc/grub.d/05_debian_theme
,找出它们提供的配置选项。然后,您可以复制适当的文件并使用适当的选项,/etc/default/grub
使 GRUB 从另一个位置找到必要的字体和图像,这样 GRUB 就不需要仅仅为了显示菜单而读取加密磁盘。
看起来您可以将字体文件从/usr/share/grub/unicode.pf2
复制到 例如/boot/grub/unicode.pf2
,然后设置GRUB_FONT=/boot/grub/unicode.pf2
为/etc/default/grub
.
同样,您可以将背景文件从/usr/share/desktop-base/kali-theme/grub/grub-16x9.png
复制到/boot/grub/grub-16x9.png
,然后设置GRUB_BACKGROUND=/boot/grub/grub-16x9.png
为/etc/default/grub
。
完成这些配置后,您可以运行update-grub
并验证重新生成的 GRUB 配置现在应该更加简单,并且不再包含任何cryptmount
命令。