loe*_*org 15
如果出现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,详细信息例如这里。
上面的前提是假设 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
。通过一些反复试验,您应该能够完成这项工作。
归档时间: |
|
查看次数: |
78830 次 |
最近记录: |