当我拥有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
的内容。 通过一些试验和错误,你应该能够做到这一点。