无法登录 bash

无法登录 bash

我试图在 VMware 上的虚拟 Debian 服务器上安装 ncurses,但不知何故失败了。退出控制台后,我意识到我无法再登录。我无法使用 scp、WinSCP 或 SSH 客户端等工具进入服务器。当我尝试登录 getty 控制台时,我收到以下消息,并再次发现自己处于登录提示符下。简而言之,我被锁定在 [虚拟] 服务器之外。这是一台生产服务器,因此重新启动它是最后的手段。

我下载了几个 Live CD - Damn small Linux 和 Slitaz - 遗憾的是它们无法检测到虚拟机的硬盘。更改虚拟机的硬盘控制器是否会导致数据丢失?

login as: saichovsky
[email protected]'s password:
Linux myhost 2.6.32-5-amd64 #1 SMP Wed Jan 11 14:00:43 UTC 2012 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Nov  2 17:39:03 2012 from 192.168.3.166
-bash: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

答案1

方法 1:ssh 到 sh shell

如果您有主机的 ssh 访问权限,请尝试以下操作

ssh username@hostname "/bin/sh -i"

这将允许您登录如果成功,而不是 bash。

方法 2:使用另一个 VM 安装 VM 磁盘

我发布了步骤https://superuser.com/questions/501861/locked-out-of-opensuse-after-editing-etc-pam-d-xdm/501927#501927。但他可以用另一种方式解决。如果你想走这条路,我就把步骤粘贴在这里

VM1:问题虚拟机

VM2:另一个具有 root 访问权限的工作 VM。

  1. 关闭两个虚拟机。
  2. 复制VM1虚拟磁盘文件。
  3. 将 VM1 虚拟磁盘添加到 VM2 磁盘控制器中作为第二个磁盘。
  4. 启动 VM2。
  5. 获得 root 访问权限。
  6. 挂载 VM1 磁盘。
    假设 VM1 根分区是 /dev/sdb1
    mkdir /mnt/sdb1
    挂载 /dev/sdb1 /mnt/sdb1
  1. 相应地修改文件。
  2. 关闭 VM2。
  3. 从 VM2 中移除 VM1 磁盘。
  4. 启动VM1并测试。

答案2

使用 Debian Live CD 来拯救系统。许多专用 Live CD(例如您提到的那些)的内核都只有一组非常有限的驱动程序。由于它是 Debian 系统,因此 Debian 安装介质应该具有必要的驱动程序。

相关内容