我已经安装了好几次 Kali Linux,但我都是启动到 grub。然后我必须使用以下代码进入操作系统;
set prefix=(hd0,gpt2)/boot/grub
set boot=(hd0,gpt2)
insmod normal
normal
由于这很不方便,我在谷歌上搜索了如何更改启动配置,找到了以下解决方案:
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
根据需要找到并设置引导参数。如果您需要使用“insmod”加载模块,您可以这样做GRUB_CMDLINE_LINUX_DEFAULT="安静"
然后
sudo update-grub
我尝试添加前缀和引导命令,并用分号分隔,但我最终再次进入 grub,不得不手动引导。值得庆幸的是恢复有效。然后我还添加了 insmod 正常和正常命令,但它无法启动(即使在恢复中)。
所以我想知道我哪里出错了,是否有人为我提供了正确的代码字符串?
我尝试重新安装,但没有成功,我注意到 BIOS 中的启动分区一直显示为 Ubuntu,不确定这是否重要,因为它可以从 grub 手动启动。
我只忘记了我的代码是什么样子,但我认为它在安静的括号中。
答案1
听起来 grub 没有正确安装。 Grub已经配置清楚了,不然normal
没啥帮助。所以update-grub
不会对你有太大帮助,因为它所做的只是重写配置。
假设您使用 EFI 引导,则 grub 需要与存根配置文件一起安装到 ESP (EFI) 分区中,或者将该配置文件预先打包到 grub 二进制文件本身中。
您说您仍然可以进入操作系统,因此要解决此问题,请启动 Kali。
然后,假设您的系统使用 EFI 而不是旧版启动,首先确保/etc/fstab
包含将 ESP (EFI) 分区挂载到 的条目/boot/efi
。如果不存在,则添加它。
然后还要检查您的系统是否确实安装了该分区:
mount | grep /boot/efi
重新安装grub试试...
一旦您知道您的 ESP 分区已正确安装,那么您应该能够不带grub-install
参数运行以将正确的grub.cfg
文件添加到您的 ESP 分区:
grub-install
否则手动安装配置...
如果这不起作用,那么您可能需要手动执行此操作。我对 Kali 的了解有点有限,所以我不确定确切的目录是什么。您需要确保同一目录中有 grub 的配置文件。例如:如果引导加载程序是/boot/efi/EFI/debian/grubx64.efi
,那么还应该有/boot/efi/EFI/debian/grub.cfg
配置文件。
您可以编辑此配置文件并复制您在问题中提到的确切命令:
set prefix=(hd0,gpt2)/boot/grub
set boot=(hd0,gpt2)
insmod normal
normal
更好的,您可以并且应该找到根文件系统的 UUID(或包含 /boot 目录的文件系统)并使用search
。您可以用来blkid
发现 UUID。例如,配置文件最终可能如下所示:
search --fs-uuid 917afb23-5bb6-4537-b985-3bc2a6416de0 --set boot
set prefix=${boot}/boot/grub
insmod normal
normal