温馨提示×

Debian分区空间不足如何解决

小樊
41
2025-12-22 15:58:33
栏目: 云计算

Debian分区空间不足的排查与解决

一、快速定位问题

  • 查看分区与挂载点使用情况:df -hlsblk,确认哪个挂载点(如 //var/home)已满。
  • 分析目录占用:du -sh /* | sort -h,定位大目录;用 ncdu 交互式查找大文件。
  • 检查日志占用:journalctl --disk-usage;必要时先备份再清理。
  • 若提示 inode 100%,用 df -i 确认,再用 find / -xdev -type f | cut -d / -f 1 | sort | uniq -c | sort -nr | head 找出小文件最多的目录并清理。

二、优先清理可回收空间

  • APT 缓存与无用包:
    • sudo apt-get clean(清理已下载包)
    • sudo apt-get autoclean(清理过期索引)
    • sudo apt-get autoremove --purge(移除不再需要的包及配置)
  • 旧内核(谨慎,保留至少 1 个可启动内核):
    • 查看:dpkg --list | grep linux-image
    • 删除:sudo apt-get purge linux-image-<旧版本号>
  • systemd 日志:
    • sudo journalctl --vacuum-time=7d(保留最近 7 天)
    • sudo journalctl --vacuum-size=100M(限制日志总大小)
  • 临时文件与缓存:
    • 清理 /tmp(确保无正在使用的重要文件):sudo rm -rf /tmp/*
    • 清理包管理器缓存目录 /var/cache/apt/archives/(已由 apt clean 覆盖)
  • 大文件归档与删除:用 ncdu/du 找到大文件后,压缩归档或迁移至其他存储。

三、扩容方案

  • 方案A|LVM在线扩容(推荐,风险低、可在线操作)
    1. 在虚拟化平台或存储侧先扩容虚拟磁盘或物理盘。
    2. 识别新空间:lsblkparted /dev/sda print
    3. 扩展物理卷:sudo pvresize /dev/sdaX(X 为 PV 所在分区)。
    4. 扩展逻辑卷:sudo lvextend -l +100%FREE /dev/mapper/<vg>-<lv>(或指定大小如 +10G)。
    5. 扩展文件系统:
      • ext2/ext3/ext4sudo resize2fs /dev/mapper/<vg>-<lv>
      • XFSsudo xfs_growfs /mount/point
    6. 验证:df -h
  • 方案B|非LVM的整盘/分区扩容(需离线,风险较高)
    1. 在宿主机或救援环境中扩容磁盘后,使用 GParted LiveCD/USB 启动。
    2. 调整分区大小(注意对齐与顺序),应用变更。
    3. 回到系统后,若为 ext 系列执行 resize2fs;XFS 需挂载点执行 xfs_growfs
  • 方案C|新增磁盘并挂载到目录
    1. 分区并格式化:fdisk /dev/sdbmkfs.ext4 /dev/sdb1(或 xfs)。
    2. 挂载:sudo mount /dev/sdb1 /data
    3. 开机自动挂载:编辑 /etc/fstab,加入如 /dev/sdb1 /data ext4 defaults 0 2
  • 方案D|虚拟机磁盘扩容通用流程
    1. 宿主机/云平台先扩容虚拟磁盘。
    2. 在系统内识别新容量并扩展分区/LVM/文件系统(参考方案A/B)。

四、常见陷阱与建议

  • 扩容前务必完整备份;分区与LVM操作存在数据丢失风险。
  • 清理日志与缓存时注意不要误删正在写入的日志或运行中的服务文件。
  • 删除旧内核前确认当前启动的内核版本,避免无法启动。
  • 使用 ncdu/du 精确定位占用来源,优先清理可回收的大文件或无用数据。
  • 多用户或业务环境建议启用 磁盘配额(quota),避免单用户/进程耗尽空间。

0