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

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

我用wubi安装了Ubuntu。

谢谢你的帮助

使用Grub

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

 find /vmlinuz 

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

 set root=(hd0,1) 

当然,将parition标识符替换为您显示的任何内容。

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

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

 boot 

这将从所选分区引导选定的内核。 一旦您设法启动系统,您就可以使用它来恢复grub,详见此处 。

Grub与五笔

上面的假设是假设Ubuntu是定期安装的,即在它自己的独立分区中。 在编写时,您使用了Wubi,这意味着您使用称为“Lupin”的技术将其安装到Windows(NTFS)分区上的大文件中 。 虽然这个过程比较复杂,但我认为原则上没有理由不起作用。 这是基于Wubi安装的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 

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