Linux

無法登錄 bash

  • November 8, 2012

我試圖在 VMware 上的虛擬 Debian 伺服器上安裝 ncurses,但不知何故不成功。退出控制台後,我意識到我無法再登錄了。我無法使用 scp、WinSCP 或 SSH 客戶端等工具進入伺服器。當我嘗試在 getty 控制台上登錄時,我收到以下消息並再次出現在登錄提示符下。簡而言之,我被拒之門外

$$ virtual $$伺服器。這是一個生產伺服器,因此重新啟動它將是最後的手段。 我已經下載了幾張 live CD——該死的小型 Linux 和 Slitaz——很遺憾,它們無法檢測到 VM 硬碟。更改虛擬機的硬碟控制器會導致數據失去嗎?

login as: saichovsky
saichovsky@172.16.13.7'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

方法一:ssh 到 sh shell

如果您對主機有 ssh 訪問權限,請嘗試以下操作

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

如果成功,這將讓您使用sh而不是 bash 登錄。

方法2:用另一個VM掛載VM Disk

我在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. 獲得根訪問權限。
  6. 掛載 VM1 磁碟。

假設 VM1 根分區是 /dev/sdb1

mkdir /mnt/sdb1
掛載 /dev/sdb1 /mnt/sdb1
  1. 相應地修改文件。
  2. 關閉 VM2。
  3. 從 VM2 中刪除 VM1 磁碟。
  4. 啟動 VM1 並進行測試。

引用自:https://serverfault.com/questions/445917