使用 Grub

使用 Grub

所以我用最新的内核升级了 Ubuntu。但是升级后,我重启了 Ubuntu,结果只剩下 GRUB。如果我只有 GRUB,我该如何再次加载 Ubuntu?

我使用 wubi 安装了 Ubuntu。

非常感谢你的帮助

答案1

使用 Grub

如果您看到grub提示符,并且系统和内核仍安装在分区上,则可以“手动”启动系统 - 即无需使用有效的 grub.cfg。这也适用于从实时媒体运行的 grub。为此,grub 包含一个基本的命令行,您可以使用它来查找分区并启动系统。

find /vmlinuz

这应该会给你一个像 (hd0,0) 这样的分区。你也可以使用这个ls命令来查看分区,看看哪些内核可用。该search命令的工作原理类似。你也可以使用Tab 补全

set root=(hd0,1)

当然,用向find您显示的任何内容替换分区标识符。

linux /vmlinuz root=/dev/sda1
initrd /initrd.img

选择内核映像和 initrd 映像,这两个映像总是需要一起使用。幸运的是,Ubuntu 在根目录中创建了一对符号链接,它们指向工作映像和 initrd。请注意,您需要用/dev/sda1Linux 内核使用的方案中的分区表示替换 。大致来说,(hd0,1)对应于/dev/sda1(hd0,2) corresponds to/dev/sda2 ;(hd1,1) 对应于/dev/sdb1

boot

这将从所选分区启动所选内核。一旦您成功启动系统,您就可以使用它来恢复 grub,详情如下这里

使用 Wubi 的 Grub

以上内容的前提是 Ubuntu 已定期安装,即安装在其自己的单独分区中。正如您所写,您使用了 Wubi,这意味着您将其安装到较大的文件grub.cfg在 Windows (NTFS) 分区上使用一种称为“Lupin”的技术。我认为从原则上讲,这没有理由行不通,尽管过程更复杂。以下是基于 Wubi 安装的内容:

insmod part_msdos
insmod ntfs
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set be300f9c300f5ab3
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz root=/dev/sda1 loop=/ubuntu/disks/root.disk
initrd /boot/initrd.img

您需要根据具体情况进行调整。在此代码片段中,取自 10.10 安装,该search命令使用文件系统 UUID 或标识符查找根分区,您可能不知道;您可以改用--file --set /ubuntu/disks/root.disk这里这是官方文档)。此 grub 配置会创建一个虚拟磁盘 - 一个“环回设备” - 名为,loop0它代表 NTFS 分区上的“分区文件”的内容/ubuntu/disks/root.disk。经过一些尝试和错误,您应该能够完成此操作。

相关内容