当Linux系统出现"Disk full"错误时,表示磁盘空间已满或接近满容量。以下是系统性的解决方案:
# 查看整体磁盘使用情况
df -h
# 查看各目录占用空间
du -sh /* 2>/dev/null | sort -h
# 清理旧的临时文件
sudo rm -rf /tmp/*
# 清理软件包缓存
sudo apt-get clean # Debian/Ubuntu
sudo yum clean all # CentOS/RHEL
sudo dnf clean all # Fedora
# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
# 查找并删除7天前的日志文件
find /var/log -type f -mtime +7 -exec rm -f {} \;
# 清空特定日志文件而不删除(保留inode)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log
# 配置日志轮转
sudo nano /etc/logrotate.conf
# 查看已安装内核
dpkg --list | grep linux-image
# 删除旧内核(保留当前和上一个版本)
sudo apt-get autoremove --purge
# 清理未使用的Docker对象
docker system prune -a --volumes
# 查看/var目录占用情况
sudo du -sh /var/* | sort -h
# 查看/home目录占用情况
sudo du -sh /home/* | sort -h
# 查找被删除但仍被进程占用的文件
sudo lsof +L1
# 重启相关服务或系统以释放空间
如果系统因磁盘满而无法操作,可以尝试:
fallocate
临时创建空间(如删除大文件后空间未释放)# 创建临时文件释放inode(当inode用尽时)
fallocate -l 1G /tmp/tempfile && rm /tmp/tempfile
请根据实际情况选择适合的解决方案,重要文件删除前建议先备份。