近来闲着没事，想给自己的Kali整个WayDroid跑安卓虚拟机玩玩，使用了GitHub上的一个安装脚本。 然而这个脚本在获取了root权限之后执行了apt upgrade。现象执行apt upgrade之后，等待了很长时间让apt完成了下载、解压缩、配置步骤。因为更新了太多库，xfce提示我重新登录relogin或重启restart。于是我就注销了想重新登陆。 没想到注销之后再输入kali账号密码登录之后，就一直卡在了如下的界面 重启也无法解决问题，依旧是这样或者是黑屏状态。拯救系统是安装在一个移动的机械硬盘上的，于是我尝试回到主系统（Windows）在VMware虚拟机中启动心爱的Kali Linux系统。 不知道为什么，在虚拟机中上方的任务条以及窗口都可以加载出来，但是所有的窗口都没有边框，桌面背景（以及桌面图标）也没有正确显示。谷歌一下，发现是xfwm4寄了。有大佬说使用xfwm4 --replace指令可以恢复边框，然而我执行后出现了如下报错The program 'xfwm4' received an X Window System error. This probably reflects a bug in the program. ... The error was 'BadValue (integer parameter out of range for operation)'. ... （部分信息已省略，主要是我也没保存下来）重新谷歌一番，没有找到可行的解决方案。不过问题大概就是在升级软件包时出现各种错误，导致没能正确完成升级流程。那我们尝试恢复。在桌面环境中，使用快捷键Ctrl+Alt+T启动虚拟终端，如果你无法进入桌面，可以使用Ctrl+Alt+[F1~F6]进入任意的tty。然后使用指令apt upgrade dpkg --configure -a紧张地等待完成后，出现了新的报错。... E: Sub-process /usr/bin/dpkg returned an error code (1)看上面报错的大意，好像是说：A软件包的安装配置依赖B软件包，但B安装配置同时依赖A，这就导致了无法处理依赖关系。谷歌了一下解决方案，E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决 - jaryWang - 博客园 (cnblogs.com)sudo su #进入管理员账户 mv /var/lib/dpkg/info /var/lib/dpkg/info_old #现将info文件夹更名 mkdir /var/lib/dpkg/info #再新建一个新的info文件夹 apt-get update apt-get -f install #修复损坏软件包 mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old #执行完上一步操作后会在新的info文件夹下生成一些文件，现将这些文件全部移到info_old文件夹下 rm -rf /var/lib/dpkg/info #把自己新建的info文件夹删掉 mv /var/lib/dpkg/info_old /var/lib/dpkg/info #把以前的info文件夹重新改回名字 reboot #重启然后重新进入系统，登入，发现一切恢复了正常。注如果进行了上述步骤还没有恢复，请再尝试 反复 执行下面的指令apt-get upgrade dpkg --configure -a apt -f install #修复损坏的软件包； apt-get clean #清理旧软件缓存；参考kali更新后出现黑屏，右上角出现光标闪烁不能开机的情况参考E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决 - jaryWang - 博客园 (cnblogs.com)后记这个事故浪费了我整整一晚上的时间捣鼓，期间试过无数种方法，apt -f install以及apt upgrade执行过无数次，最终才成功。