如何从LiveCD运行update-grub?

好的,所以我做了一些愚蠢的事。 我试图清理我的Grub条目,并意外地从Grub中删除了所有Linux内核(它们仍然在硬盘上)。 所以现在很明显,Grub没有给我任何启动Ubuntu的方法; 我可以很好地启动Windows,但Ubuntu甚至没有列出。

所以我只想以某种方式运行“sudo upgrade-grub”将Ubuntu恢复到列表中。 我可以从LiveCD启动,但是一旦在那里我如何运行该命令? (顺便说一下,我的Ubuntu安装在sda5上。)

既然你说你的grub bootloader出现了,但是菜单是空的,我认为你不需要重新安装grub,而是按照你的要求运行update-grub。 为此,您可以使用Live CD,从硬盘安装相关分区,chroot到已安装目录,然后运行update-grub,它应该像在实际硬盘上运行一样工作。

使用Live CD启动,选择“不安装即可试用Ubuntu”。

一旦它启动,打开一个终端(ctrl-alt-t)并在/ mnt上安装你的Ubuntu分区。 我假设Ubuntu分区是/ dev / sda5,但你应该自己确定。 如果您需要帮助,请告诉我们:

sudo mount /dev/sda5 /mnt 

然后再安装一些所需的目录:

 sudo mount --bind /dev /mnt/dev sudo mount --bind /sys /mnt/sys sudo mount --bind /proc /mnt/proc 

此外,如果你有一个单独的Ubuntu启动分区(这些天非常罕见,但可能是这种情况):

 sudo mount /dev/sdaX /mnt/boot 

怎么知道你是否有启动分区?

安装完Ubuntu分区后,打开/mnt/etc/fstab 。 如果你看到/boot的条目,请注意它指向哪个设备( /dev/sda4可能?)。 这是你必须安装的那个。

安装完成后,执行chroot以开始使用已安装的目录作为根分区:

 sudo chroot /mnt 

你会得到一个#/提示。 首先要做的是确认您使用的是正确的/boot目录。 转到/boot/grub并查看那里的文件。 应该有一堆.mod文件和一个grub.cfg文件。 如果目录为空,请不要继续,因为这意味着这不是您的实际boot目录。 查看上面的内容,了解如何确定是否需要安装其他boot目录。

一旦确认/boot/包含正确的文件,意味着它正确的位置,请键入:

 sudo update-grub 

这应该使用菜单条目重建/boot/grub/grub.cfg文件。

然后退出chroot:

 exit 

此时,您可能需要检查事情是否已正确更新。 为此, cd /mnt/boot/grub并检查grub的文件是否存在,应该有一堆.mod文件和grub.cfg,后者应该有你的Ubuntu内核的条目。 如果你只看到grub.cfg而没有.mod文件,那就意味着这不是正确的启动目录,请看上面是如何挂载一个单独的启动分区。

卸载文件系统:

 sudo umount /mnt/dev sudo umount /mnt/sys sudo umount /mnt/proc sudo umount /mnt/boot #Only if you mounted it earlier sudo umount /mnt/ 

然后重新启动,希望您的Grub菜单将被恢复。

从Live CD启动。

按Alt + Ctrl + T打开终端并运行以下命令:

  sudo mount / dev / sda5 / mnt 

安装GRUB2引导加载程序:

  sudo grub-install --root-directory = / mnt / dev / sda 

那是/dev/sda – 硬盘本身,而不是Ubuntu分区 – /dev/sda5

卸载Ubuntu分区并重启计算机,如下所示:

  sudo umount / dev / sda5;  sudo重启 

如果您安装了多个操作系统,请重新检测操作系统,如下所示:

  sudo update-grub 

而已!

我对这个问题的解决方案是:

  1. 从http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/下载supergrub2disk
  2. 把它放在pendrive上http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. 从pendrive引导计算机与supergrub2disk上
  4. 登录到您的Ubuntu
  5. 从https://help.ubuntu.com/community/Boot-Repair获取Ubuntu的Boot-Repair

也许它不是最快的解决方案,但对我来说这是最简单的解决方案。

感谢所有的帮助! 但是,最终似乎没有任何工作,因为我有一个单独的/ home分区,我能够重新安装Ubuntu而不会丢失任何数据。 我仍然需要重新安装程序并进行一些配置,但此时一切似乎都很好。

roadmr和Basharat Sialvi的组合说明可以在这里找到: https : //askubuntu.com/a/88432/293759

有关Grub2的chainloader和多引导命令的说明 ,请参阅Community Help Wiki 。