这不完全是一个“双启动”问题,因为我没有在内部驱动器上安装 Kali Linux。情况是,我使用Ventoy从 USB 棒将 Kali 安装在外部/可移动硬盘上。我已将 BIOS 启动优先级设置为首先循环浏览 USB 附件,然后再从装有 Windows 11 副本的内部驱动器启动。因此,只要我不在插入设备时启动 Win11,一切就都正常了。在启动 Win11 之前移除驱动器,可防止 Win11 删除 GRUB 数据,该数据可使其保持稳定的启动配置,并将 GRUB 安装在可移动驱动器上。但是,只要 Win11 启动,它就会进入我的 USB 驱动器并弄乱它,这是它不应该做的,但这不是重点……我该如何修复它,我应该忘记拔掉它吗,这样我就不必继续使用 Ventoy 重新安装整个东西?
作为参考,这篇文章最能反映当前的情况:在与 Windows 的双启动中,使用 GNU Grub 解决 Kali Linux 启动问题 很遗憾它有这么多反对票。如果他们能够进入 initramfs 提示符,显然他们做对了。深入研究了 GRUB 命令以及如何重新设置它,从工作系统中复制了命令行参数,并得出了以下结论:
grub> linux (hd0,gpt2)/boot/vmlinuz-6.8.11-amd64 BOOT_IMAGE=/boot/vmlinuz-6.8.11-amd64 root=UUID=[uuid-of-drive] ro quiet splash
grub> inirtrd (hd0,gpt2)/boot/initrd.img-6.8.11-amd64
这让我看到了这个屏幕:
这让我看到了那篇关于 kali/win 双启动的帖子,并启发我创建了这篇文章:人们从这里该去哪里?是否有启动参数或我遗漏了什么?如何让它从 GRUB 再次正常启动?
您的问题中细节太少,无法说明您遗漏了什么。但由于您似乎在这个阶段陷入了困境,我会尝试提供一些指示,帮助您了解自己处于什么位置以及要寻找什么。 这种类型的问题是我们经常说 Kali 是渗透测试人员并且通常需要 Linux 专家的原因之一。
你被困在哪儿了?
BIOS --> EFI 存根 --> Grub --> Initramfs --> 运行系统 (systemd)
这些步骤中的每一个步骤都可以在笔记本电脑和台式机上配置。有些嵌入式硬件没有以同样方式配置的 BIOS。
grub.cfg
。配置文件足以告诉 grub 在哪里找到其主配置文件。/boot/grub
正在运行的系统的文件系统中。因此,实际上,如果您没有专用分区,那就是主 Kali 分区/boot
。要检查什么?
嗯,有很多事情需要检查。
仅仅因为您设法进入 initramfs,并不意味着它是使用所有正确的参数启动的,也不意味着系统按照预期布局。
对于可移动驱动器,您可能有两个 EFI 分区:一个在装有 MS Windows 的驱动器上,另一个在装有 Kali 的可移动驱动器上。
检查您是否只有一个 EFI 分区中只有一个 grub 存根。我从未见过 MS Windows “干扰”其他安装,但我见过它完全擦除并重写 EFI。如果您有两个 grub 存根,一个配置正确,另一个损坏,那么 Windows 可能会擦除 EFI 并只留下损坏的那个。
必须配置 Grub stub 才能找到正确的驱动器。
检查EFI 中的是否
grub.cfg
正确指向了 驱动器,/boot/grub
并注意prefix
。这取决于您是否有单独的启动分区。如果没有单独的分区,它应该看起来像这样:从 Grub 中,查看是否可以手动运行该配置。例如,输入:
这可能会给你带来更明显的错误。
您可以阅读的内容来了解和
(hd0,gpt2)/boot/grub
的正确参数是什么。linux
initramfs
在 initramfs 中,检查当您尝试使用 手动挂载分区时会发生什么。使用您在问题中提到的
mount
相同方法进行挂载。检查您挂载的文件系统是否确实是您想要的文件系统。 检查它是否具有。UUID=[uuid-of-drive]
/usr/sbin/init
我非常确定情况并非如此。实际情况是,您的 UEFI 系统看到两个不同的支持 UEFI 的引导加载程序,您选择 Windows,但在下次启动时,内部顺序不同,而且由于您的 grub 和 initrd 未设置为无论设备编号如何都能找到设备,因此系统停止运行。
解决方案就是不要那样做:这里简单的部分是确保您的 initrd 的 fstab 不包含 /dev/sda1 之类的内容,但使用不受内部设备排序影响的 UUID。
我认为您所指的帖子与您的情况在技术上没有太多相似之处(他们在 MSDOS 分区的 MBR 启动系统上使用 GRUB,您在 GPT 分区的 EFI 系统上使用 GRUB2,但中间却有一个陌生人,这个 ventoy 东西)。
我认为如果您不使用 ventoy,直接安装到外部介质就有可能起作用。
无论如何,这听起来根本不是 Windows 的错误。
我没有使用过 Windows 11,但我之前见过 Windows 10 似乎删除了 GRUB。它不会删除它,而是更改启动顺序。您需要从 Windows 中修复它,Microsoft 在此处解释了如何修复:
https://support.microsoft.com/en-au/windows/windows-11-and-secure-boot-a8ff1202-c0d9-42f5-940f-843abef64fad