我已经知道如何从“grub救援”中恢复,我不会询问它。
我几乎没有一个硬盘,并且我出于多种目的更改其分区。但每次我这样做时,我都会得到“grub救援”,我可以处理,但这很烦人。有什么办法可以预防吗grub rescue
? (例如用另一个加载器替换 grub、安装我自己的脚本等)
更新:添加更多细节
我不使用分区作为
/boot
但仅/
我的根分区是更大的扩展分区的一部分
我的根分区不是
/dev/sda1
但是/dev/sda5
。我使用双启动(Windows 处于/dev/sda1
)我想当我更改扩展分区的一部分时,它的地址/名称(即
(hd0,msdosX)
,我不知道这是什么)会发生变化,因此在仍然使用 grub 的同时避免“grub救援”可能是不可能的。可能更改引导加载程序是唯一的解决方案在“grub救援”中,我看到grub知道有多少个分区以及分区是否是ext2/3/4(通过
ls
和ls (hdX,msdosY)
),所以如果我能让grub扫描分区并启动第一个找到的ext分区,问题就解决了!
答案1
这取决于 grub 进入救援模式的原因。
发生这种情况可能是因为 grub 无法找到自身的早期加载部分。对于传统的PC分区表,这些部件通常安装在分区表和第一个分区之间的伪安全点。在这种情况下,请勿通过安装不同的引导加载程序或完全擦除磁盘并重建其分区来干扰该区域。对于 GPT 分区,这些部分安装在专用的 BIOS 启动分区中。在这种情况下,请勿干扰/移动该分区。
或者它可能会发生,因为 grub 无法找到其自身或模块或其配置的后期加载部分。它们位于/boot
文件系统上(如果有的话),否则位于根文件系统上。
- 如果您使用
/boot
隔断,请不要打扰或移动该隔断,这样您应该是安全的。 - 如果您不使用
/boot
分区,并且发现自己使用根文件系统的分区的方式干扰了 grub 查找它的能力,请考虑使用 grub 能够找到的/boot
分区(该分区很小并且您永远不会碰触)更可靠。
答案2
一旦你启动到kali打开终端并输入:
sudo apt-get update
sudo apt-get install --reinstall grub-pc
sudo grub-install /dev/sda
sudo update-initramfs -u
sudo update-grub