温馨提示×

ubuntu分卷如何优化空间

小樊
47
2025-11-22 14:19:34
栏目: 云计算

Ubuntu 分卷空间优化实用指南

一 先诊断空间占用

  • 查看分区与挂载点使用情况:df -h
  • 查看逻辑卷与卷组:sudo lvssudo vgssudo pvs
  • 交互式定位大目录:sudo ncdu /(或安装:sudo apt install ncdu
  • 快速找出超大文件:find / -type f -size +1G 2>/dev/null
  • 图形化分析:sudo apt install baobab 后运行 baobab
    以上工具能快速判断是某一挂载点(如 /、/home、/var)占满,还是某个大文件/日志导致,从而决定是“清理”还是“扩容”。

二 不调整分卷的快速释放空间

  • APT 与包管理
    • 清理缓存:sudo apt clean
    • 清理无用包:sudo apt autoclean
    • 移除不再需要的依赖:sudo apt autoremove
  • 旧内核清理(谨慎:至少保留1 个可用内核)
    • 列出内核:dpkg -l | grep linux-image
    • 删除指定旧内核:sudo apt purge linux-image-<version>
  • 日志与临时文件
    • 收缩 systemd 日志:sudo journalctl --vacuum-time=3d
    • 清理缩略图缓存:rm -rf ~/.cache/thumbnails/*
  • Snap 应用
    • 查看与删除旧修订:snap list --all,随后 sudo snap remove <pkg> --revision <rev>
  • 大文件定位与清理
    • ncdufind / -type f -size +1G 定位后,确认无用再删除
      这些步骤安全、见效快,通常能立即回收可观空间,适合作为优化的第一步。

三 使用 LVM 在线扩容分卷(推荐)

  • 场景:同一卷组内,把空闲空间从**/home挪给/**(或其他 LV)
  • 步骤
    1. 查看现状:df -hsudo lvssudo vgs
    2. 缩小文件系统(以 ext4 为例,先离线检查并缩文件系统)
      • 卸载:sudo umount /home
      • 强制检查:sudo e2fsck -f /dev/mapper/<vg>-<home>
      • 缩文件系统到目标大小:sudo resize2fs -p /dev/mapper/<vg>-<home> <目标大小>
      • 缩小逻辑卷到同一目标大小:sudo lvreduce -L <目标大小> /dev/mapper/<vg>-<home>
      • 重新挂载:sudo mount /home
    3. 扩展目标卷(如 /
      • 扩展 LV:sudo lvextend -l +100%FREE /dev/mapper/<vg>-<root>
      • 扩展文件系统
        • ext4:sudo resize2fs /dev/mapper/<vg>-<root>
        • xfs:sudo xfs_growfs /mount/point(如 /
    4. 验证:df -h
  • 重要限制
    • XFS 不支持缩小;缩减前务必备份,且“缩文件系统”必须先于“缩 LV”,目标大小不能小于已用数据量。
    • 若无法卸载 /(常见于根分区),需使用Live CD/救援模式或进入单用户维护环境操作。
      以上流程适用于 ext4/xfs 的常见 LVM 扩容与缩容场景,关键命令与顺序务必严格遵循。

四 虚拟机或物理盘扩容后的联动操作

  • 虚拟机先扩容虚拟磁盘(如从宿主端把 vmdk/vdi 调大)
  • 识别新增空间并扩展分区表(以 /dev/sda3 为例)
    • sudo parted /dev/sda
    • (parted) print 确认分区
    • (parted) resizepart 3 <新结束位置>
    • (parted) quit
  • 让 LVM 识别新增物理扩展:sudo pvresize /dev/sda3
  • 之后按第三部分步骤扩展 LV 与文件系统(如 lvextend -l +100%FREE + resize2fs/xfs_growfs
    该流程确保底层分区扩大后,LVM 与文件系统能正确“吃满”新增空间。

五 预防与长期优化建议

  • 规划更合理的分区/卷:常见做法是分离 /home,必要时再分离 /var;若使用 LVM,后续调整更灵活。
  • 建立例行清理:定期执行 APT 清理、旧内核巡检、日志收缩与 Snap 旧修订清理(可写成脚本加入 cron)。
  • 容量规划:对会快速增长的目录(如 /var/lib/docker、数据库数据目录)单独挂卷,避免挤占 /
  • 监控与告警:用 dfncdu 定期巡检,或在桌面用 Baobab 可视化查看。
    这些做法能显著降低再次“爆满”的概率,并让后续扩容更可控。

0