近来闲着没事,想给自己的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
执行过无数次,最终才成功。
az
喝过茶了已经不干了哦
目前还有没有更新
有没有软件
有一个问题是我用我的笔记本Chrome浏览器,加载完成后过一段时间就页面卡住了。并且加载速度会放慢,如果不做出优化请慎用。