麒麟系统休眠功能占用大量磁盘空间,需禁用休眠并删除对应swapfile:先用cat /sys/power/state确认支持disk休眠,再用swapon --show定位大尺寸swap文件,执行sudo swapoff、rm -f及sed删除fstab记录,最后systemctl mask相关target并验证masked状态。

您正在使用麒麟操作系统,发现系统休眠功能占用了大量磁盘空间(通常为与内存等大的swapfile或hibernation image),导致根分区告警、编译失败或无法安装大型软件,需要彻底关闭休眠功能并释放对应磁盘空间。
确认休眠是否启用并定位占用文件
先检查系统是否实际启用了休眠能力,避免误删正常swap文件。打开终端,执行:cat /sys/power/state。若输出中包含 disk,说明内核支持休眠;若只有 mem freeze,则休眠未启用,无需后续操作。
运行 swapon --show=NAME,TYPE,SIZE,USED,PRI 查看当前激活的交换区域。重点关注 TYPE 为 file 且 SIZE 接近物理内存总量(如16G内存对应16G swapfile)的条目——这极大概率是休眠专用交换文件,正是要清理的目标。
禁用休眠并移除休眠专用swap文件
方法一:直接停用并删除休眠交换文件(推荐,适用于已知swapfile路径)
第一步:关闭该交换区域:sudo swapoff /swapfile(若路径不同,请将 /swapfile 替换为上一步查到的 NAME 值)。
第二步:永久移除该文件:sudo rm -f /swapfile。此操作不可逆,【请确保此前已执行 swapoff,否则系统可能立即崩溃】。
第三步:从 fstab 中清除挂载记录:sudo sed -i '/\/swapfile.*swap/d' /etc/fstab。这一步防止重启后自动重载该文件。
方法二:若不确定文件路径或存在多个swap,用统一命令停用全部休眠相关交换:
执行 sudo swapoff -a 停用所有交换区域,再运行 ls -lh /swap* 查看残留文件,手动删除明确用于休眠的大尺寸文件(如 /swapfile、/hibernation-swap 等)。
阻止系统重建休眠交换文件
仅删除文件不够——某些麒麟定制版本会在检测到休眠启用时自动重建同名swapfile。必须同步禁用休眠触发链:
执行 sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target。该命令会创建符号链接覆盖原始target单元,使systemd彻底拒绝任何休眠相关服务启动请求。
验证是否生效:运行 systemctl is-enabled hibernate.target,输出必须为 masked;若返回 enabled 或报错,则需重新执行上一步命令。

















