虚拟机里装Kali最难受的就是磁盘爆满,解决思路就两条:要么扩容虚拟磁盘,要么给现有系统瘦身,而扩容虚拟磁盘是治本的办法。
很多朋友兴冲冲装好了Kali,结果没过几天就弹窗提示“磁盘空间不足”,连基本的工具都装不进去,这种情况通常不是你的Kali镜像有问题,而是当初创建虚拟机时分配给它的硬盘容量太“抠门”了,默认的20G对于日常更新和安装几个常用工具来说,确实是杯水车薪。
先搞清楚空间到底被谁吃掉了?
在动手操作之前,建议先登录Kali系统,打开终端(Ctrl+Alt+T),用命令看看空间分布情况,这一步很重要,能帮你判断是分区规划不合理,还是单纯文件太多。
用命令行快速诊断磁盘占用
- 执行
df -h可以查看各个挂载点的使用率,重点看根分区 的使用情况。 - 执行
du -sh /home /var /usr /tmp能大致看出哪个目录最占地方。 - 如果发现
/var目录占用巨大,多半是软件缓存或者更新的临时文件堆积。
相比Windows虚拟机直接放个D盘就行,Kali虚拟机的分区通常不会动态调整。行业共识认为,绝大多数Kali卡顿、安装软件报错,都和虚拟磁盘初始分配不足以及分区方案不合理有关。
为什么会遇到kali虚拟机硬盘空间不足这个问题?
搞清楚原因,你才能理解为什么单纯删几个文件不顶用。
虚拟磁盘的“纸面”容量与实际占用
虚拟机里设置硬盘大小,相当于画了一个圈,比如你设置了30GB,Kali在安装时就会在这个圈里划分分区,如果不手动调整,系统工具安装越多,根分区剩余就越少,这个圈一旦画死,在虚拟机层面扩容远没有物理机换硬盘那么简单,但也不是没办法。
快照是吃空间的“隐形大户”
很多玩Kali的朋友喜欢在装完工具或配置好环境后打一个快照,这非常方便,但快照文件是会持续增长的,它会记录你对虚拟机的每一次改动,如果开了好几个快照且时间跨度长,快照占用的空间甚至可能超过虚拟机本身。
更新源与软件包的缓存问题
Kali是基于Debian的滚动发行版,更新频率很高,每次运行 apt-get update 或者安装某个渗透测试套件,都会在 /var/cache/apt/archives 目录下留下 .deb 安装包缓存,时间一长,几个G的无用安装包就躺在那里不走了。
快速救急:不重装系统也能腾出空间的办法
如果你的Kali还能开机,且暂时不想折腾复杂的扩容,先用这几个操作清理一遍,大概率能救急一两周。
用apt自动清理缓存和孤儿依赖
- 执行
sudo apt clean:清空所有下载的软件包缓存。 - 执行
sudo apt autoclean:只删除已经无法再下载的过时缓存。 - 执行
sudo apt autoremove --purge:卸载不再需要的依赖库,并清除配置文件。
执行完这三条命令,再把 ~/.cache 下的浏览器缓存和临时文件删掉,空间通常能多出几个G。
清理旧的Linux内核
Kali每次内核升级都会保留旧版本,方便你回滚,但旧内核非常占空间。
- 用
dpkg --list | grep linux-image列出所有已安装的内核。 - 只保留当前正在使用的那个版本(用
uname -r查看),其余的内核镜像包可以用sudo apt purge linux-image-旧版本号强制删除。
检查占空间的日志文件
日志文件一般不会太大,但如果某个服务刷屏报错,/var/log 下的文件也可能膨胀。
- 用
sudo journalctl --disk-usage查看日志占用。 - 执行
sudo journalctl --vacuum-size=100M将日志磁盘占用限制在100MB以内。
治本之策:kali虚拟机扩充磁盘容量的完整步骤
如果清理完还是不够用,或者你正准备装虚拟机,那就得从根上解决问题,这一步需要你在关机状态下操作,请一定先导出虚拟机备份,以防意外。
在虚拟机设置里直接改大小(以VMware Workstation为例)
这是最简单的扩容方式,不需要去记磁盘管理命令。
- 关闭Kali虚拟机(注意是关机,不是挂起)。
- 在VMware主界面,右键点击虚拟机标签,选择“设置”。
- 在“硬件”选项卡里找到“硬盘”,右侧会显示“最大大小”。
- 把数字改成你需要的容量,比如从20G改成 50G 或 80G。
- 点击“确定”保存,修改完毕后,不需要立刻启动系统,因为系统里的分区还只是原来的大小,这就是为什么很多人扩容了但在Kali里还是显示20G的原因。
如果你用的是VirtualBox,操作路径类似:选中虚拟机 → 设置 → 存储 → 选中控制器SATA下的虚拟硬盘 → 拖动容量滑块,注意VirtualBox的滑块调整在部分版本中需要命令行辅助,如果滑块是灰色的,可能需要先
VBoxManage modifyhd 扩容。
在Kali系统内调整分区(使用GParted图形化工具)
扩容完成后,你的Kali依然只认原来的分区,接下来要用GParted重新划分空白空间。
- 启动Kali虚拟机,打开终端,安装GParted:
sudo apt install gparted。 - 打开GParted,你会看到
/dev/sda1(根分区)和unallocated(未分配空间)。 - 关键操作:先右键点击主分区选择“调整大小/移动”,把分区拖拽扩大到最右侧,覆盖所有未分配空间。
- 点击顶部的绿色对勾“应用所有操作”,等待进度条走完即可。
注意:如果根分区是LVM卷组(装Kali时手动选了LVM),调整方式会稍微复杂一些,需要用到 lvextend 和 resize2fs 命令,新手不建议自行尝试,直接用GParted扩容主分区更稳妥。
命令行扩容(适合熟悉Linux分区逻辑的朋友)
如果不想装图形化工具,可以这样操作:
- 打开终端,输入
sudo fdisk /dev/sda。 - 输入
p打印分区表,记下根分区(一般是/dev/sda1)的起始扇区位置。 - 输入
d删除该分区(只删除分区表记录,不会清空数据),然后输入n新建分区,起始扇区填抹删除前的数值,结束扇区默认全盘。 - 输入
w保存退出,执行sudo resize2fs /dev/sda1让文件系统自动填充剩余空间。
这个方法对分区表操作有风险,只推荐有经验的朋友操作,新手慎用。
避免踩坑:扩容过程中常见的疑难杂症
GParted提示“无法访问分区”或显示锁标志
- 确保Kali已经完全关闭交换分区,执行
sudo swapoff -a。 - 确保根分区没有被挂载为只读,扩容操作最好不要在系统运行时进行。
扩容后开机卡在Grub引导界面
- 大部分情况是因为LVM问题导致的,如果是标准分区格式,只要起始扇区没写错,一般不会出这种问题。
- 如果真遇到了,进Live CD模式,用
grub-install /dev/sda重新安装引导。
为什么扩容完成,可用空间还是原来的大小?
- 确认你在VMware里修改硬盘大小后,又去GParted里重新调整了实际分区大小
,这两步缺一不可,光改虚拟机设置,等于只把房子外面的围墙拆了,但屋里的隔断墙还在原地。
如果不想折腾扩容,换一个硬盘方案更省心
如果你还没开始装系统,或者折腾扩容之后觉得太麻烦,不如换个思路,从源头避开空间不足的问题。
改成动态分配而不是固定大小
- 创建虚拟机时,在磁盘类型那一页选择“将虚拟磁盘存储为单个文件”,同时把大小设置得更大一些。
- 动态分配的优势是会随着系统的使用自动增长,但也能手动回收空间。
- 固定大小的虚拟磁盘性能略好,但一旦写满就真的满了,无法自动压缩。
用外部虚拟磁盘挂载数据目录
- 新建一块独立的虚拟硬盘(比如500G)专门用来存放工具、脚本、爬取的数据包。
- 开机后确认识别成功:
lsblk。 - 手动挂载到home目录下某个自定义文件夹,
/mnt/tools。
这样做的好处是系统盘崩溃了,你下载的Wordlst和扫描结果并不会丢,也完全不需要担心重装系统后数据丢失。
Kali虚拟机磁盘安置与扩展的常见问答
问:VMware里把Kali的硬盘从20G改成50G,为什么开机进Kali还是20G?
答:VMware设置里的“最大大小”只修改了虚拟磁盘的物理上限,相当于给了你一块更大的空硬盘,但Kali系统内部的分区表还停留在20G的划分上,你需要用GParted等分区工具,把根分区扩展到剩余未分配的30G空间,系统才能识别。这和“房间变大了,但隔断墙还在原来位置”是一个道理。
问:kali虚拟机克隆或者迁移到别的电脑上,空间占用会变小吗?
答:不会,克隆和迁移是完整的块级复制,你原来虚拟磁盘占用40G,克隆到新电脑依然是40G,但如果使用了动态分配的虚拟磁盘格式,且Kali内部执行过清零操作,最终生成的 `.vmdk` 或 `.vdi` 文件体积会明显小于内部占用量,这是存放虚拟机文件夹时节省宿主机硬盘的一个有效手段。
问:用Kali破解WiFi时提示“No space left on device”,跟硬盘空间不够有关系吗?
答:有关系,当你开启监听模式抓包时,工具会默认把抓取的 `.cap` 或 `.hccapx` 文件存储在 `/home` 或 `/root` 目录下,如果这个分区恰好满了,就会直接报出该错误,建议在开始长时间抓包或跑字典之前,用 `df -h` 确认剩余空间 超过2GB,否则中途爆盘会产生损坏的空数据包文件。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/618765.html





