我正在尝试在我的计算机上安装 Linux 和 Windows 双引导。我对网络很感兴趣,所以在网上研究了一下之后,我想安装 Kali。
加载 Live USB 后,我按照以下所有说明进行操作这些 二页。
直到最后一切都很顺利。我重新启动并收到错误:
Welcome to GRUB!
error: file '/boot/grub/x86-64-efi/normal.mod' not found.
grub rescue>
由于我对Linux完全陌生,有人可以解释我在安装过程中做错了什么吗?
我安装了大包,验证了哈希值,将 ISO 写入 USB,并将 35GB 的 SSD 分配给 Kali。我完全按照帮助页面上的规定执行了所有步骤。
我在网上研究了一些关于人们遇到类似错误的信息,每个人似乎都遇到了“i386-pc”错误。另外,在我的 Live USB 中,install-grub 不是可用的命令(默认情况下)。
答案1
从Kali Linux 文档(强调我的):
Kali Linux 适合您吗?
作为该发行版的开发人员,您可能希望我们建议每个人都应该使用 Kali Linux。然而,事实是 Kali 是一个专门面向专业渗透测试人员和安全专家的 Linux 发行版,并且鉴于其独特的性质,它是如果您不熟悉 Linux,则不推荐使用该发行版或者正在寻找用于开发、网页设计、游戏等的通用 Linux 桌面发行版。
即使对于经验丰富的 Linux 用户来说,Kali 也会带来一些挑战。[...]
Kali 往往比主流发行版更“前沿”(即更新的东西,即使冒着偶尔出现故障的风险)。我认为,当您选择 Kali 作为您的第一个 Linux 安装时,您做出了错误的选择。
该错误消息表明您正在使用 UEFI 版本的 GRUB 引导加载程序,因此您必须拥有一个带有 UEFI 固件的相当现代的系统。您链接的安装说明不幸的是,仅涵盖传统 BIOS 式引导加载程序的情况(这也是所指i386-pc
的)。对于 UEFI 版本,步骤 #14 中的屏幕截图应该有所不同,因为“主引导记录”并不真正适用于 UEFI。
在您的 EFI 系统分区中,现在应该有一个目录\EFI\kali
(或可能\EFI\debian
),其中应包含多个文件,包括grubx64.efi
= 实际的 GRUB 引导加载程序,以及grub.cfg
= 它的初始配置文件。\EFI\Microsoft
如果 Windows 也使用 UEFI 引导方式,则还应该有一个包含 Windows 引导加载程序的目录。
该grub.cfg
文件应包含如下内容:
search.fs_uuid 12345678-9abc-def0-1234-56789abcdef0 root
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
该行中的 UUID 字符串search.fs_uuid
将引用您安装 Kali 的 GPT 分区的文件系统 UUID(Kali 根文件系统,或者/boot
如果您将其创建为单独的分区则为该文件系统),并且该set prefix
行应引用包含以下内容的目录: GRUB 模块目录(x86-64-efi
对于 UEFI 版本的 GRUB)以及该分区上的实际 GRUB 配置文件。所有这些都应该由安装程序根据您之前所做的选择自动确定,不幸的是,Kali 安装程序似乎由于某种原因出现了一些错误,或者未能正确填充实际的 GRUB 模块目录。要解决启动问题,您必须验证此信息是否与您的安装实际情况相符,并根据需要进行更正。
因此,除非您指定为 Kali 创建多个分区,并为其中一个分区指定了太小的大小,否则看起来您可能没有做错任何事情,并且不是因为您的过错而出现错误。
为了进行诊断,查看当前磁盘分区的视图(带有gparted
或类似的内容)非常重要。由gparted
Kali安装程序生成的任何分区的Partition
->菜单项显示的信息Information
也很有用,因为它包含应与放入 EFI 系统分区的文件UUID
中的内容相匹配的字段。grub.cfg
我没有具体检查 Kali Live USB,但通常安装 GRUB 的命令是grub-install
,而不是install-grub
。