我有一个在 Hyper-V (Win Server 2008 R2) 主机上运行的 SUSE 实例。初始安装很好。在设置好 Apache、MySQL 等之后...我关闭了 VM 并对其进行了快照(因此如果出现问题我可以恢复)。
快照后,系统将无法启动。
具体我得到......
如果我选择“否”(不要尝试使用...-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
我会得到以下信息:
我不确定如何继续 - 据我所知,VM 正在识别 HDD(否则,我不会走这么远),但分区的 ID 正在寻找挂载是不正确的(请注意,列出的 ID 因20202020
零件而异)。
我怎样才能告诉 Linux 使用新的 ID 或(失败)更改 ID 以匹配 Linux 的预期?
附录:经过更多的谷歌搜索,这似乎是由于升级问题造成的。我确实使用 YAST 在重新启动前安装了“重要”更新,所以这也可能是原因。当然,现在我不能 100% 确定运行的是哪个版本。cat /proc/version
结果是:
看起来您的快照更改了设备 ID。也许您无意中克隆了系统?无论如何,这应该有所帮助:
在 grub 菜单(您选择启动哪个操作系统/内核的地方,通常它还有一个救援选项),移动光标以阻止它自动继续使用默认选项。然后选择默认选项并添加
root=/dev/sda1
. 按 Enter,这应该会启动。在我的系统上,我可以以 root 身份登录(在文本模式下)。编辑文件/boot/grub/menu.list
和/etc/fstab
,将每次出现的 替换disk/by/id[...]-part
为sda
。这应该让你的设备名称像/dev/sda1
. 重新启动,一切都应该没问题。您可能需要考虑检查您的 grub2 配置,这样 kernelupdate 就不会破坏您的 menu.lst。