Kubuntu - 从 19.10 升级到 20.04 失败,没有鼠标,没有键盘

Kubuntu - 从 19.10 升级到 20.04 失败,没有鼠标,没有键盘

执行“do-release-upgrade”后,我的笔记本电脑(Thinkpad T460)无法正常启动。启动时鼠标出现,但无法移动。当 Kubuntu 的登录屏幕出现时,我无法登录,因为按键不被接受(看起来好像根本没有键盘)。我可以启动恢复系统,但那里没有网络(即使从友好的控制台启动它也是如此)。

启动后,外部键盘和鼠标不工作,但在恢复模式下其工作方式与内置键盘类似。

经过两天的恢复工作后,我终于找到了问题所在。

某些组件正在寻找 libffi.so.6,但它已被 libffi.so.7.1.0 取代。设置指向 v7 的符号链接为我修复了损坏的笔记本电脑,现在它运行正常。

我如何才能找出哪个程序引用了这个旧库?当我尝试在恢复中启动网络管理器时,我在日志中找到了引用,但我无法确定哪个程序真正失败了。

答案1

当我从 20.04 升级到 22.04 时遇到了同样的问题,并且再次出现 libffi。

以下是我采取的一些步骤,希望对其他人有所帮助。如果不小心,最终可能会毁掉你的系统,因此提前备份是个好习惯(尽管没有网络可能会很麻烦)。

当系统在启动过程中停止并显示失败的服务(例如热守护进程、网络管理器或其他服务)时。

启动恢复内核(在启动徽标/BIOS 消息后按住 Shift),选择“启动选项”,然后选择列表中的第二行,即新内核的恢复。这通常可以得到一个菜单,您可以在其中启动 root shell。

检查您的 init ram 磁盘。我曾经遇到过这样的问题:从 18.04 到 20.04,我的桌面上的 initrd 是空的(0 字节)。您会在这里找到很多提示,教您如何重建它以适合您的安装。

检查/var/log/syslog指向失败的动态库的条目grep "error while loading

/usr/lib如果是这种情况,请在或中查找类似命名的库,/lib其中cd /lib;find . -iname "*libxxx*" -printxxx 是缺失库的名称

从现有库到缺失库建立符号链接。在我这里是ln -s libffi.so.8.1.0 libffi.so.6。我仍然需要建议,你认为这里更好的方法是什么。所描述的链接是新的链接,用于旧的链接,或者从网络获取旧的库并将其与新的库一起复制。

如果有多个,请重复,然后重新启动

您的系统现在应该可以正常启动了。然后我遇到了 Plasma 崩溃的问题,很多程序无法启动,但抱怨共享库中缺少符号。这是库的版本不匹配,程序加载了过时的库,无法找到它正在寻找的符号。当然,所有其他提示,如和,也sudo apt install --fix-broken应该sudo dpkg --configure -a考虑。

我现在使用 libpango 作为示例,请检查您的错误消息。

我尝试开始filezilla

错误信息如下/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: g_memdup2

该符号并非在 libpango 中缺失,而是在 libpango 尝试加载的库中缺失。你的朋友在ldd这里。

进入ldd /lib/x86_64-linux-gnu/libpango-1.0.so.0

在以下列表中查找 中的库/usr/local/lib,这对我来说已经存在好几次了。将这些 usr-local-libs 移开。在我的例子中,有一个过时的 glib(不知道它来自哪里)sudo mv libglib-2.0.so* /tmp/oldlibs

对每个发生的错误重复此操作。

我不知道我是否特别不走运,但这是由于 libffi 而导致的第二次升级失败......有什么提示吗?

相关内容