如何通过一个错误永久修复 GRUB 分区?

Che*_*Ze5 3 grub multi-boot refit macbook-pro

我有一台 MacBook Pro 设置为使用 rEFIt 和 GRUB 进行三重引导。(我必须通过 GRUB 才能启动 Windows 7,但这是可以忍受的。)我升级到 Lion,它为恢复功能添加了一个新分区。这也会导致 GRUB 引导至救援提示。运行集显示:

prefix=(hd0,gpt5)/boot/grub
root=hd0,gpt5
Run Code Online (Sandbox Code Playgroud)

如果我运行以下命令:

set prefix=(hd0,gpt6)/boot/grub
set root=(hd0,gpt6)
insmod normal
normal
Run Code Online (Sandbox Code Playgroud)

通常的 GRUB 菜单出现,我可以启动到我想要的任何操作系统。我进入 Ubuntu 分区并检出grub.cfg文件,它将根设置为 gpt5。我运行了sudo update-grub命令。这将 cfg 文件中的值更改为 gpt6。然而 GRUB 仍会引导至救援提示,并且 set 仍会显示初始根值和前缀值。我如何使这个永久?

sco*_*res 5

Grub 可能会进入控制台,因为自首次安装 grub 以来分区布局已更改。现在您已经更新了 grub.cfg,重新安装 grub 应该可以修复它。以与运行 update-grub 相同的方式启动到您的 ubuntu 系统。从那里,执行 grub-install:

grub-install /dev/sdX
Run Code Online (Sandbox Code Playgroud)

(用您的设备替换 X,在您的情况下,它看起来可能是 /dev/sda。)