Ubuntu 12.04 升级:更新后 Grub update-grub 失败

the*_*dow 3 grub2 11.10 12.04

在此先感谢您的帮助。

我在带有大存储驱动器的单独分区上运行 Ubuntu 和 Windows 7,以便在它们之间共享文件。

fdisk -l 显示:

Device Boot         Start         End      Blocks   Id  System
/dev/sda1   *        2048   209717247   104857600    7  HPFS/NTFS/exFAT
/dev/sda2       209717248   419432447   104857600   83  Linux
/dev/sda3       419432448  3907028991  1743798272    b  W95 FAT32
Run Code Online (Sandbox Code Playgroud)

还有第二个 GPT 备份磁盘,但这应该不是问题。

Device Boot         Start         End      Blocks   Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT
Run Code Online (Sandbox Code Playgroud)

我刚刚将我的 11.10 Ubuntu 升级到 12.04,在升级过程中我收到一个关于 grub 安装在分区上的错误,我从安装 11.10 中识别出来并忽略了它。

但是,完成升级后,所有 Ubuntu 条目都从 grub 中消失了。有一些 linux 3 条目不起作用,而我的 Windows 7 条目我没有尝试,但我认为仍然有效。

我已经启动了 11.10 live cd,并尝试了以下操作:

http://opensource-sidh.blogspot.com/2011/06/recover-grub-live-ubuntu-cd.html

但是当我到达我跑步的那部分时

update-grub
Run Code Online (Sandbox Code Playgroud)

我得到

/etc/grub.d/00_header: 28: .: Can't open /usr/share/grub/grub-mkconfig_lib
Run Code Online (Sandbox Code Playgroud)

我在安装 11.10 时遇到了类似的问题,但我不记得我是如何修复它们的 >_<

关于下一步尝试什么有什么建议吗?

小智 5

这显然是 Ubuntu 中的一个错误。包 grub-common 包含丢失的文件,但位于另一个位置。我添加了一个符号链接以允许找到该文件。

我运行了这个命令:

ln -s /usr/lib/grub/grub-mkconfig_lib /usr/share/grub/grub-mkconfig_lib
Run Code Online (Sandbox Code Playgroud)

后来update-grub成功了。