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


11

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

我使用wubi安装了Ubuntu。

感谢堆的帮助


这是wubi安装还是常规安装?
karthick87

我相信这已经过时了。有人可以告诉我如何在grub2上执行此操作吗?

Answers:


16

使用Grub

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

find /vmlinuz

这应该给您像(hd0,0)这样的分区。您还可以使用该ls命令在分区上四处查看,以查看可用的内核。该search命令的工作原理与此类似。您还可以使用制表符补全

set root=(hd0,1)

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

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,如详尽如这里

W与五笔

上面的前提是假设Ubuntu会定期安装,即安装在其自己的单独分区中。在撰写本文时,您使用了Wubi,这意味着您使用称为“ Lupin”的技术将其安装到Windows(NTFS)分区上的大文件中。尽管过程更加复杂,但我认为没有任何理由在原理上不可行。这是grub.cfg基于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配置在您的NTFS分区上创建了一个虚拟磁盘-一个“回送设备”,loop0它代表“分区文件”的内容/ubuntu/disks/root.disk。通过反复试验,您应该可以完成这项工作。


4
我得到error: unknown command find'.
阿卜杜勒

@Abdull-这是因为您使用的是grub2而不是旧版grub。按两次Tab键,查看可用的命令,或pager = 1 \\ help
Yaroslav Nikitenko

如果您正在使用EFI,更换linuxinitrd用RESP。linuxefiinitrdefi
Yaroslav Nikitenko '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.