0x00 前言
VirtualBox虚拟机的Kali系统因某些原因导致无法进入系统,尝试了各种修复方法都失败了,所以只能选择备份下Kali里的重要数据,然后再重装升级一下Kali。
这篇文章我们就来分享下这次解决问题的过程,希望能够帮到一些新人朋友在遇到类似问题时少踩坑吧。
0x01 问题描述
昨天测试某项目时要用到gcc编译,然后就在kali用apt-get安装了一个,结果ssh服务就挂了连不上,重启后就进不了系统了,如下图所示,具体啥原因就不得而知。
注:可能是因为我的kali版本太老,很久没更新了,系统内核以及各种依赖关系等问题吧,因为之前在使用过程中就经常出现各种各样的问题,换了源也还是没法更新。
0x02 测试过程
(1) 尝试修复
首先尝试在GRUB引导菜单选择“高级选项
”按e
键进入编辑模式,在Linux末尾处输入以下命令,再按Ctrl+X进入命令行即可,如下图所示。
rw single init=/bin/bash
但是按图中的报错提示执行以下命令查看vboxadd、gdm服务都失败了,启动就更不用说了,好像是不能在这个命令行下使用systemctl命令,如下图所示。
systemctl status vboxadd.service
systemctl status gdm.service
StackExchange看到有人说可能是虚拟磁盘空间不足的问题,试了下他们提供的方法,但还是不行,不能加上sudo,会出现下图报错,不知道啥原因...。
apt-get autoclean
apt-get autoremove
apt --fix-broken install
最后实在没办法修复了,也不想在这上边浪费更多时间,所以只能想办法把这台kali机器上的一些有用文件给备份下,然后再重装一个Kali系统就OK了。
记得DiskGenius工具可以加载.vmdk、.vdi等虚拟磁盘文件,这里虽然打开了我的KaliLinux2.0.vdi,但是之前的一些文件都不在了,无法备份数据,如下图所示。
KaliLinux2.0.vdi文件可以打开是因为它是在新建这台虚拟机时创建的一个基础磁盘文件,但如果打开的是我们在后边创建的快照.vdi磁盘文件时就会出现下图报错。 我也试了下重新生成一个快照,然后再打开之前的快照VDI磁盘文件,但还是不行,依然出现下图报错。
打开虚拟磁盘文件时出现错误。(20000103)Invalid virtual disk file
0x03 解决方案
通过在VirtualBox社区寻找类似问题和GPT的辅助下找到可以用VBoxManage命令将快照.vdi文件克隆为一个新的VDI文件,然后就可以用DiskGenius打开了,如下图所示。
VBoxManage clonehd <snapshot.vdi> <new.vdi> --format VDI
VBoxManage clonemedium snapshot.vdi> <new.vdi> --format VDI
VDI克隆图形化工具:
https://forums.virtualbox.org/viewtopic.php?f=6&t=22422
还找到一个更快捷的办法,010 editor分别打开基础磁盘文件、快照VDI磁盘文件,16进制中发现有一处不同,将04改为01后就可以用DiskGenius打开了,如下图所示。
打开了快照VDI磁盘文件,找到需要备份的文件,点右键“复制到指定文件夹”备份即可,如下图所示。
0x04 文末小结
当时在VirtualBox社区看到老外的这回复还以为没办法了,最后在经过不断的摸索和尝试以后还是找到了几个解决方法,这也说明遇到问题时还是得多搜索、多思考、多尝试...。
0x05 参考链接
https://forums.virtualbox.org/viewtopic.php?t=35944
https://forums.virtualbox.org/viewtopic.php?t=109591
https://www.treshna.com/rebuilding-virtualbox-with-missing-vdi-snapshots/index.html
https://unix.stackexchange.com/questions/545272/cannot-reach-kali-login-screen-stuck-on-started-gnome-display-manager