我想我现在的系统已经死了,但我不知道如何恢复。
我正在使用此处概述的标准方法从 Buster 更新到 Bookworm -https://wiki.debian.org/DebianUpgrade
开始升级后,出现错误/usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
并停止升级。赶紧搜索解决方案,发现这个答案解决它,所以开始执行它。
当尝试运行时sudo cp -av lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/
,我遇到了一个奇怪的 sudo 错误,类似于cannot escalate, is your account locked?
我不知道确切的错误。我以为快速重启就能解决问题,但这就是问题开始的地方。
计算机启动后,我尝试通过 SSH 连接到计算机,但始终出现连接被拒绝的情况。我大部分时间都在无头运行,所以这显然是一个坏兆头。我把它从平常所在的位置取下来,然后将其插入显示器以了解发生了什么。
机器启动正常,但在登录提示符处,每当我输入用户名时,我都会Login incorrect
在提示输入密码之前立即得到提示。我尝试过root
,也得到了Login incorrect
。
我尝试启动 debian 恢复,但遇到了同样的错误。无论我做什么,我都无法登录系统。
这是登录提示之前的日志屏幕截图。
我尝试从 USB 驱动器启动进入救援模式,并且能够在系统上收到提示。尝试journalctl
只会给我“未找到日志文件”。
我能找到的唯一值得注意的是/var/log/auth.log
,即;
PAM unable to dlopen(pam_unix.so): /lib/security/pam_unix.so: cannot open shared object file: No such file or directory
PAM adding faulty module: pam_unix.so
FAILED LOGIN (1) on `/dev/tty1` for `root`, Authentication Failure
有谁知道我如何从此时恢复系统?我完全不知道该怎么办。我所能看到的只是USB救援模式提示符,因此我的操作相对有限。
谢谢
答案1
刚从这种状态中恢复过来,我就是这么做的;
- 使用 Debian Live 安装程序启动,然后进入恢复。
- 在恢复中加载现有安装
- 安装所有相关的驱动器,在我的情况下
/var
,/usr
没有安装,所以导致了一些问题。 - 以下信息在这里,
跑步
cd /tmp
apt download libcrypt1
dpkg-deb -x libcrypt1_1%3a4.4.33-2_amd64.deb .
cp -av lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/
apt --fix-broken install
- 由于 PAM 的损坏状态已解决,因此重新启动、登录现在可以使用
- 结束
sudo apt full-upgrade
这使我的系统恢复到完全可用、正常运行和升级的状态。看起来它在升级过程中破坏了 libcrypt,因此在升级中崩溃,然后由于 libcrypt 被破坏而导致登录中断。
请注意,我还遇到了一个问题,即内核由于 原因而未升级aufs-dkms
,但在删除该问题后,它升级得很好。我还在使用 v3.16,显然这个问题已经有一段时间了!
答案2
所以,不知何故,你的libcrypto.so
系统不能与系统的其他部分一起工作。也许升级中断了?也许这是手动修补和排除的东西?很难猜测。
无论如何,大多数系统工具都涉及 libcrypt(它包含密码散列例程等),因此所有允许您进行身份验证的可执行文件目前都无法正常工作。
无论如何,解决方案通常是启动 Debian live USB 记忆棒,然后将包含的软件包重新安装libcrypto.so
到功能失调的主系统中。这涉及安装原始系统的根目录(例如,在 /target 上),然后执行类似的操作
apt-get download libpam-modules libcrypt1
sudo dpkg -i --root=/target libpam-modules*.deb librypt1*.deb