最初,Ubuntu 安装在另一个分区(sda5 或 sda4)上。
有时我确实手动将根分区移动到 sda2。
现在,问题是每当安装新内核时,自动再生都会menu.lst
使用旧的 Linux 分区。所以我必须手动更改以下menu.lst
行:
root (hd0,5)
进入
root (hd0,1)
如何配置update-grub
以使用当前 Linux 根分区自动生成menu.lst
?我假设 (hd0,5) 在安装时写在某处,但我找不到它。
答案1
自从 grub2 以来,menu.lst
它就不再被使用了,所以如果您遇到 grub 问题,您可能需要去其他地方寻找。
然而,menu.lst
有时仍与Ubuntu 的云版本。如果这适用于您,请继续阅读。
自动生成的root (hd0)
条目实际上是通过修改/boot/grub/menu.lst
文件来配置的。您需要找到如下行:
## default grub root device
## e.g. groot=(hd0)
# groot=(hd0)
并将最后一行更改为指向新的根,例如:
## default grub root device
## e.g. groot=(hd0)
# groot=(hd0,5)
请注意,该groot=…
行仍然以 开头#
。不要取消注释已改变的行!我不知道哪个天才想到在注释行中包含配置参数,但这就是它的工作原理。
完成更改后,menu.lst
通过运行重新生成:
sudo update-grub-legacy-ec2
现在应该更新所有root
条目menu.lst
以指向(hd0,5)
(或您将其配置为的任何内容)。
答案2
我选择的一种可能性是告诉 grub 安装在主引导分区上
sudo fdisk -l # where you get the disk
sudo grub-install /dev/hda # in my computer it is /dev/sda
然后使用以下命令更新所有内容:
update-grub2
希望你成功,你最好等待专家的回答。