原因

在更新Ubuntu系统时,由于使用远程桌面进行更新,意外导致do-release-upgrade过程终端。在修复过程中多次apt update rm -rf /var/lib/dpkg/info/软件 dpkg --remove --force-remove-reinstreq 软件 dpkg --purge --force-remove-reinstreq 软件 apt remove apt autoremove apt dist-upgrade等破坏性操作操作,导致最终系统中误删systemd-resolve这个用于解析DNS的软件,从而使系统DNS失效.
表现为仅能通过IP地址访问互联网。此时系统处于半断网状态。

排查

ping 114.114.114.114 # 能够正常访问
ping qq.com # 显示域名解析暂时错误
sudo systemctl restart systemd-resolved

# 显示 Failed to restart systemd-resolved.service: Unit systemd-resolved.service not found

解决方法

  1. 前往Ubuntu软件包官网,手动下载systemd-resolved软件包的deb文件systemd-resolved_255.4-1ubuntu8_amd64.deb。并通过U盘或本地SSH拷贝到系统中。
  2. 用dpkg手动安装软件包 sudo dpkg -i systemd-resolved_255.4-1ubuntu8_amd64.deb

补充说明

  1. 该问题出现在系统更新中途被意外终止的情况,其损坏情况因人而异,修复方法也不同,关键在于了解Linux的整体网络堆栈结构来评估破坏情况,进行针对性修复。
  2. 运气好的情况下,损坏的网络堆栈软件包可能只有一个,但更有可能是多个软件包损坏,需要根据提示调整安装的软件

Kurukuru
2 声望0 粉丝