我在 Hyper-V(Win Server 2008 R2)主机上运行了一个 SUSE 实例。初始安装一切顺利。设置完 Apache、MySQL 等后...我关闭了虚拟机并对其进行了快照(这样如果出现问题我可以恢复)。
快照之后,系统将无法启动。
具体来说我得到......
如果我选择“否”(不要尝试使用...-part1
),它会跳转到我不熟悉的提示符($
)。如果我回答是,它会等待-part1
几秒钟,然后失败并跳转到相同的提示符。
无论哪种情况,我都会得到:
sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control on this shell
我似乎有一个极其有限的工具集(大概是内置的 shell 命令?)
如果我这样做,ls -al /dev/disk/by-id
我会得到以下结果:
我不确定如何继续 - 据我所知,HDD 已被 VM 识别(否则,我不会走这么远),但是它要寻找的要挂载的分区的 Id 不正确(请注意,列出的 Ids 在该部分之后会有所不同20202020
)。
我怎样才能告诉 Linux 使用新的 Ids 或(如果失败的话)更改 Ids 以符合 Linux 的期望?
附录:经过更多 Google 搜索,似乎这可能是由于升级问题造成的。我确实使用 YAST 在重启前安装了“重要”更新,所以这也可能是原因。当然,现在我不能 100% 确定正在运行的版本。cat /proc/version
结果:
答案1
看起来您的快照更改了设备 ID。也许您无意中克隆了系统?无论如何,这应该有帮助:
在 grub 菜单(您可在此选择要启动的 OS/Kernel,通常它还具有救援选项)中,移动光标以阻止它自动继续使用默认选项。然后选择默认选项并添加root=/dev/sda1
。按 Enter 键,这应该可以启动。在我的系统上,我可以以 root 身份登录(在文本模式下)。编辑文件/boot/grub/menu.list
和/etc/fstab
,将每个出现的替换disk/by/id[...]-part
为sda
。这应该会为您获取类似 的设备名称/dev/sda1
。重新启动,一切都应该正常。您可能需要考虑检查 grub2 配置,以便 kernelupdate 不会破坏您的 menu.lst。