我有一台 MacBook Pro,它设置了 rEFIt 和 GRUB 的三重启动。(我必须通过 GRUB 才能启动 Windows 7,但这是可以忍受的。)我升级到了 Lion,它为恢复功能添加了一个新分区。这也导致 GRUB 启动到救援提示符。运行 set 显示:
prefix=(hd0,gpt5)/boot/grub
root=hd0,gpt5
如果我运行以下命令:
set prefix=(hd0,gpt6)/boot/grub
set root=(hd0,gpt6)
insmod normal
normal
常见的 GRUB 菜单出现,我可以启动到我想要的任何操作系统。我进入 Ubuntu 分区并检查文件grub.cfg
,它将根目录设置为 gpt5。我运行了命令sudo update-grub
。这会将 cfg 文件中的值更改为 gpt6。但是 GRUB 仍然启动到救援提示符,并且设置仍然显示初始根目录和前缀值。我如何使它永久生效?
答案1
Grub 可能转到控制台,因为分区布局自首次安装 grub 以来发生了变化。既然您已经更新了 grub.cfg,重新安装 grub 应该可以解决这个问题。按照与运行 update-grub 相同的方式启动 ubuntu 系统。从那里执行 grub-install:
grub-install /dev/sdX
(用您的设备替换 X,在您的情况下它看起来可能是 /dev/sda。)
答案2
我有同样的问题。grub rescue 修复了 sda1 上的分区,而不是 sda6。系统启动成功。但如果我重新启动系统,root=(hd0,msdos1) 会变回 msdos6。
grub-install /dev/sd1 使系统永远停留在启动菜单上。
问题,grub 究竟从哪里获得 root 设置?