将 Wubi 移至不同分区,编辑 grub 后无法启动

将 Wubi 移至不同分区,编辑 grub 后无法启动

因此,我尝试在磁盘之间移动我的 wubi 安装在以下情况下进行操作: 将 Ubuntu 的 WUBI 安装移动到 Windows 中的其他分区

然而,一旦我开始对 grub 应用编辑,我就无法启动。

我已切换 set root=(hd0,msdos2)root=(hd0,msdos1) 删除该行- search --no-floppy xxx 并切换linux /boot/vmlinuz-xxxx root=UUID= xxxxx ...linux /boot/vmlinuz-xxx root=/dev/sda1 ...

一旦我启动,它就找不到命令列表并显示未找到错误。如果需要,我可以抓取一张图片来显示 grub 的样子。我对 Ubuntu 非常不熟悉,尤其是在这个程度上。任何帮助都非常感谢。

答案1

启动时,按住Shift进入 grub 菜单。然后C按 进入 Grub 命令提示符,输入以下内容(注意;不要输入错误;此处的内容不会造成任何损害,因此如有必要,只需重新开始):

search -s -f -n /ubuntu/disks/root.disk
probe --set=diskuuid -u $root
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /vmlinuz root=UUID=$diskuuid loop=/ubuntu/disks/root.disk ro quiet splash
initrd /initrd.img
boot

上面的代码做了什么?1.) 找到 root.disk(文件)并将 $root 设置为找到它的分区。2) 获取分区的 UUID。3) 从 loop0 上的 root.disk 创建循环设备(假分区)。4) 将 root 设置为循环设备。5) 从循环设备识别内核,同时从 UUID 设置主机分区。6) 从循环设备识别初始 ram 磁盘。7) 启动 Wubi 安装

启动 Wubi 后​​,运行

sudo update-grub

此后它将正常启动。

编辑:

我似乎记得probe直到 12.04 之后才添加 Grub 命令。如果它不起作用,则用以下内容替换 #2:

echo $root

现在注意它说了什么,例如,/dev/sda2然后将#5更改为直接引用分区,而不是使用UUID例如

linux /vmlinuz root=/dev/sda2 loop=/ubuntu/disks/root.disk ro quiet splash

相关内容