立即执行 journalctl --vacuum-size=300m 压缩日志至300mb以内;若无效或报i/o错误,则停服务、备份原目录、重建空目录并重启journald。

银河麒麟系统中 /var/log/journal/ 目录因 systemd-journald 日志长期未设限,常在数月内膨胀至 2GB~8GB,直接导致根分区空间告急、df -h 显示 / 使用率超95%、系统升级失败或服务启动卡顿,必须立即干预。
用 journalctl 即时压缩日志到安全体积
这是最快速生效的操作,无需修改配置、不依赖服务重启,适合紧急释放空间。
打开终端,执行:journalctl --vacuum-size=300M。
该命令强制将所有 journald 日志压缩至总大小不超过 300MB,自动删除最旧条目;【低于 100M 可能丢失关键故障线索,不建议】。
执行后立即运行 journalctl --disk-usage 查看效果——若仍显示 >500M,说明存在损坏日志或权限异常,需进入下一阶段。
修复损坏日志并重置 journald 存储目录
当 vacuum-size 命令报错 “Input/output error” 或磁盘用量无变化,大概率是 journal 文件已损坏,必须手动重建存储路径。
第一步:停止日志服务 → sudo systemctl stop systemd-journald。
第二步:备份原日志(可选但强烈建议)→ sudo mv /var/log/journal /var/log/journal.bak。
第三步:重建空日志目录 → sudo mkdir -p /var/log/journal → sudo systemd-journalctl --flush。
第四步:重启服务并验证 → sudo systemctl start systemd-journald → 等待 10 秒后执行 journalctl --disk-usage,应显示
永久限制日志增长避免反复爆发
仅靠临时压缩无法根治问题,必须通过配置让 journald 自动守界。
方法一:编辑配置文件 → sudo nano /etc/systemd/journald.conf。
找到并取消注释以下两行,按需修改数值:
SystemMaxUse=300M
MaxRetentionSec=4week
【MaxRetentionSec 设置过长会削弱 SystemMaxUse 的实际约束力,二者必须协同生效】。
保存后执行:sudo systemctl restart systemd-journald。
方法二(快捷覆盖):直接写入限制参数 → echo -e "SystemMaxUse=300M\nMaxRetentionSec=4week" | sudo tee -a /etc/systemd/journald.conf → 再重启服务。











