如何在do-release-upgrade后从grub提示符手动启动?

我在这个主题上阅读了一些其他问题,并且它们都指向了Grub2社区文档和从安装盘安装grub配置。我在文档方面遇到了一些麻烦,所以现在我在这里。这可能是完全的用户错误。
我在一个Ubuntu 10.04服务器上虚拟化了两个客户机,最初都运行着10.04。我使用"do-release-upgrade"将它们都顺利升级到了10.10,然后重新启动,然后再次使用"do-release-upgrade"将它们都升级到了11.04。出于匆忙,我忽略了关于缺少grub配置的错误。当我重新启动客户机时,自然会出现grub提示符。输入"boot"会显示"error: no loaded kernel"。
以下是根分区的ls输出:

grub prompt ls output

当按照手动引导指南操作时,无论是使用"SS928-root"还是"hda0,1"作为根文件系统,我都无法正确选择选项。大多数情况下会出现"文件未找到"的错误。
在这两个文件系统上执行"ls"命令会显示多个vmlinuz和initrd.img选项。如果这些客户机正在使用LVM,那可能会有所帮助。
编辑:
我已经进展了一点。以下命令序列:

semi-successful boot

产生以下屏幕(在滚动了相当多的文本后):

BusyBox Shell


你的帖子帮助我在可恶的Windows 10“更新”后恢复了启动。 Linux在整个会话保持完整之后甚至从休眠中恢复了。谢谢! - MariusM
3个回答

在查看了jdehaan的帖子后,我检查了一台具有类似配置的机器。基于另一台机器的grub.cfg,我使用以下命令使得这个东西启动:

recordfail
insmod ext2
set root='(hd0,1)'
linux /vmlinuz-2.6.32-server root=/dev/mapper/SS928-root ro quiet
initrd /initrd.img-2.6.32.30-server
boot

我想下一步是弄清楚如何在这台机器上替换 grub.cfg。

我遇到了同样的问题,并通过指定解决了这个问题。
linux /boot/vmlinuz.... root=/dev/sda1

所以在你的系统上,使用/dev/sda1(或与之匹配的内容)而不是SS... 在我的尝试过程中,你的其他帖子都保持不变。

1我猜想,理论上来说,因为这个东西正在运行LVM,所以应该是/dev/mapper/SS928-root。但在这种情况下明显不起作用。 - cmhobbs

如果你有一个可用的 grub 配置文件,使用 `ls` 命令在根目录级别列出分区,然后使用 `configfile (boot device)/path/to/grub.config` 命令来启动你的 grub 配置文件。