当我只有 Grub 时,如何加载 Ubuntu?

Jos*_*ogi 11 upgrade grub2 wubi kernel

所以我用最新的内核升级了 Ubuntu。但是在升级和重新启动 Ubuntu 之后,我得到的只是 GRUB。当我只有 GRUB 时,如何再次加载 Ubuntu?

我使用 wubi 安装了 Ubuntu。

感谢堆的帮助

loe*_*org 15

使用 Grub

如果出现grub提示并且系统和内核仍然安装在分区上,您可以“手动”引导系统 - 即无需工作 grub.cfg 的帮助。这也适用于从实时媒体运行的 grub。为此,grub 包含一个基本命令 ine,您可以使用它来查找分区并引导系统。

find /vmlinuz
Run Code Online (Sandbox Code Playgroud)

这应该给你像 (hd0,0) 这样的分区。您还可以使用该ls命令来查看分区并查看哪些内核可用。该search命令的工作方式类似。您还可以使用制表符补全

set root=(hd0,1)
Run Code Online (Sandbox Code Playgroud)

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

linux /vmlinuz root=/dev/sda1
initrd /initrd.img
Run Code Online (Sandbox Code Playgroud)

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

boot
Run Code Online (Sandbox Code Playgroud)

这将从选定的分区引导选定的内核。一旦您设法启动了系统,您就可以使用它来恢复 grub,详细信息例如这里

Grub 与五笔

上面的前提是假设 Ubuntu 是定期安装的,即在它自己的单独分区中。在编写时,您使用了 Wubi,这意味着您使用一种称为“Lupin”的技术将其安装到Windows (NTFS) 分区上的一个大文件中。我看不出为什么这在原则上不起作用,尽管这个过程更复杂。下面是一个grub.cfg基于五笔安装的内容:

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
Run Code Online (Sandbox Code Playgroud)

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

  • 我收到“错误:未知命令查找”。 (4认同)