重新安装GRUB到分区?

最近我的BCD损坏了,所以我从一个LiveUSB重新初始化了它,并将我的Ubuntu分区添加回去。不幸的是,内核没有加载,所以我想重新安装GRUB。下面的结果显示了尝试这样做时发生的情况。
最初的错误是:
"Failed to get canonical path of /cow"
挂载-包括/dev的--bind-然后在chroot中解决了这个错误,但留下了一个问题:
"error: will not proceed with blocklists"
附注:这是我的boot-info日志:http://www.pastebin.ca/3134305

不要运行Boot-Repair的自动修复。这会将grub安装到每个驱动器的MBR中。您应该将grub安装到sdb的MBR中。您在那里显示了一个副本和sdb1的分区引导扇区,但是安装到分区引导扇区并不被grub推荐。而且也不需要,因为可以安装到sdb上。您还有很多内核需要整理。 - oldfred
我尝试了他们的自动修复功能,尝试将其安装到sdb的MBR,并尝试直接安装到我的Ubuntu分区。所有这些尝试都未能让我成功启动Ubuntu。具体而言,我希望BCD成为我的主要引导程序,并且grub(或类似的引导程序)安装在我的Ubuntu分区上。 - A T
我在这里不会使用命令grub-install,相反,可能只需要使用命令update-grub2就足够了。 - dschinn1001
这是什么BCD? - A.B.
3个回答

有时候,完全重新组织是最简单的解决方案,所以我建议:
完全重建您的磁盘布局,并尽量保持简单。 您应该将所有引导加载程序和操作系统放在一个磁盘上。
备份您想要保留的分区(推荐使用Clonezilla)。 在所有磁盘上创建新的分区表(推荐使用GParted)。 创建新的分区并为其准备恢复过程。 再次从Clonezilla启动介质引导,并恢复分区。 从Windows安装介质引导,并重建Windows BCD存储。 从Ubuntu安装介质引导,并重新安装GRUB引导加载程序。
如果您希望Windows引导加载程序成为默认选项,请交换步骤5和6。 在这种情况下,您必须将GRUB安装到Ubuntu操作系统的根分区。
然后,您可以使用bcdedit将Linux分区添加到BCD存储中。 假设您具有高级知识,我省略了更多细节!

首先,我修复了一堆可能与其它分区无关但也许挂载了`/boot`的磁盘错误。
sudo e2fsck -f -y -v -C 0 /dev/sda1

然后我创建了一个分区/dev/sda4,并在该分区上安装了一个引导程序[实际上是整个操作系统],位于/dev/sda上。
最后,我成功地重新启动了我的Ubuntu分区。

看起来您的内核已经损坏,需要修复,这里有您的解决方案正在等待着您 点我