我在装有EFI BIOS的Lenovo X280笔记本电脑上安装了双引导Windows 10和Kali Linux x64(基于Debian 9 x64的Linux发行版)。Windows 10使用带密码(不是TPM)的BitLocker。Linux使用LUKS加密。我有单独创建的Kali / boot分区。我必须在使用中更换主板。之后,只有Windows启动。Grub不见了。所以我尝试从Live系统(从USB闪存驱动器)重新安装grub:
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
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.cfg
我的fstab文件
我也可以通过哪种方式为Kali Linux添加启动项?怎样在grub屏幕之前跳过带有LUKS密码请求的黑屏?(在更换主板之前,我直接看到grub屏幕)。
读取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
更加简单,并且不再包含任何命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句