1. 问题现象与紧急处理方案
当银河麒麟(Kylin)操作系统因磁盘空间耗尽无法正常启动时,典型表现为:
- 系统启动时卡在引导界面
- 登录后立即闪退回登录界面
- 图形界面元素缺失或显示异常
- 终端命令无法执行(提示"No space left on device")
紧急恢复步骤(通过LiveCD/USB):
- 使用银河麒麟安装镜像制作启动盘(建议用Ventoy工具兼容性更好)
- 从U盘启动进入Live环境,挂载原系统分区:
bash复制sudo mkdir /mnt/sysroot
sudo mount /dev/nvme0n1p2 /mnt/sysroot # 根据实际分区调整
- 快速清理空间:
bash复制# 查看各目录占用
sudo du -sh /mnt/sysroot/* | sort -rh
# 优先清理日志和缓存
sudo rm -rf /mnt/sysroot/var/log/*
sudo rm -rf /mnt/sysroot/var/cache/*
关键提示:不要直接删除/var/lib/dpkg/下的文件,这会导致软件包管理系统损坏。建议保留至少200MB空间供系统基本运行。
2. 根因分析与预防措施
2.1 银河麒麟特有空间占用点
- Kysec安全日志:位于
/var/log/kysec/,安全审计会产生大量日志 - 国产化组件缓存:如
/opt/Apps/下的应用残留数据 - OverlayFS分层:麒麟默认使用的联合挂载可能产生隐藏占用
2.2 智能监控方案
配置自动化清理脚本(/usr/local/bin/disk_monitor.sh):
bash复制#!/bin/bash
THRESHOLD=90
CURRENT=$(df / --output=pcent | tail -1 | tr -d '%')
if [ $CURRENT -ge $THRESHOLD ]; then
# 按安全优先级清理
journalctl --vacuum-size=50M
find /var/log/ -name "*.log" -type f -mtime +7 -delete
rm -rf /tmp/*
kysec_clean # 麒麟专用安全日志清理工具
fi
添加定时任务:
bash复制sudo chmod +x /usr/local/bin/disk_monitor.sh
sudo crontab -e
# 添加:*/30 * * * * /usr/local/bin/disk_monitor.sh
3. 专业级故障恢复流程
3.1 系统分区扩容(LVM环境)
银河麒麟默认采用LVM布局时:
bash复制sudo vgextend kylin-vg /dev/sdb1 # 添加新物理卷
sudo lvextend -L +20G /dev/kylin-vg/root # 扩展逻辑卷
sudo resize2fs /dev/kylin-vg/root # 调整文件系统
3.2 深度空间分析工具
- 可视化分析:
bash复制sudo apt install ncdu ncdu / --exclude /mnt --exclude /media - 隐藏文件查找:
bash复制sudo lsof +L1 | grep deleted # 查找已删除未释放的文件 sudo find / -xdev -type f -size +100M # 查找大文件
4. 银河麒麟优化实践
4.1 日志管理增强
修改/etc/systemd/journald.conf:
code复制SystemMaxUse=50M
RuntimeMaxUse=30M
配置logrotate(/etc/logrotate.d/kylin-custom):
code复制/var/log/kysec/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0600 root root
}
4.2 智能挂载配置
在/etc/fstab中添加优化参数:
code复制UUID=xxxx / ext4 defaults,noatime,nodiratime,commit=60 0 1
tmpfs /tmp tmpfs defaults,size=1G 0 0
经验之谈:银河麒麟的KYSE安全模块会额外占用约5%空间用于安全存储,规划分区时应预留至少20%的冗余空间。建议
/var单独分区并设置配额限制。
