Linux 磁盘管理教程：df、du 与挂载新硬盘

Linux 磁盘管理教程：df、du 与分区入门磁盘空间突然满了、不知道是谁把盘吃掉了、新挂了一块硬盘不会用——磁盘管理是服务器运维绕不开的基本功。本教程依据 GNU coreutils 与 util-linux 官方手册整理。一、看整体：df df（disk free）查看文件系统层面的空间使用： df -h # 人类可读单位（GB/MB），最常用 df -hT # 多显示一列文件系统类型（ext4/xfs/btrfs...） df -i # 查看 inode 使用情况（小文件过多会耗尽 inode）重点看 Use% 一列，超过 90% 就该警惕了。注意：df 统计的是挂载点，Docker 的 overlay、NFS 挂载等都会各占一行。二、查细节：du du（disk usage）统计目录/文件实际占用： du -h 文件名 # 单个文件大小 du -sh 目录/ # 只看目录总大小（s=汇总，最常用） du -h --max-depth=1 /var | sort -rh # 看 /var 下每个子目录占了多少 du -sh * | sort -rh # 当前目录下所有条目按大小排序排查"盘满了"的标准流程：先 df -h 确认哪个分区满了，再 cd 过去用 du -sh * | sort -rh 层层下钻，很快就能找到元凶（常见嫌疑：日志、Docker 镜像缓存、旧备份）。 df 和 du 数字对不上？通常是文件已被删除但进程仍持有句柄，lsof | grep deleted 可以找到。三、lsblk 看块设备 lsblk 以树状列出所有磁盘和分区（sda/sdb、分区 sda1、挂载点），是接上新硬盘后第一步要执行的命令。四、分区、格式化与挂载新硬盘的完整上机流程（以 /dev/sdb 为例，操作前务必确认设备名，选错会毁数据）： sudo fdisk /dev/sdb # 交互式分区：n 新建、p 打印、w 写入 sudo mkfs.ext4 /dev/sdb1 # 格式化为 ext4 sudo mkdir /data sudo mount /dev/sdb1 /data # 挂载 df -h /data # 确认挂载成功开机自动挂载，编辑 /etc/fstab 追加一行： /dev/sdb1 /data ext4 defaults 0 2 改 fstab 前建议先执行 sudo mount -a 验证无报错——fstab 写错会导致开机失败。更推荐用 UUID 挂载（设备名可能变化，UUID 不会），用 blkid 查 UUID： UUID=xxxx-xxxx /data ext4 defaults 0 2 五、清理空间的常见手段 sudo journalctl --vacuum-size=200M # 限制 systemd 日志占用 sudo apt clean # 清理 apt 缓存（Debian/Ubuntu） docker system prune # 清理 Docker 无用镜像/容器六、总结需求命令看分区使用率 df -h 找大文件/目录 du -sh * | sort -rh 层层下钻看磁盘与分区 lsblk 格式化 mkfs.ext4 /dev/sdX1 挂载 mount + 写 /etc/fstab 日志清理 journalctl --vacuum-size=200M 记住"df 定位分区、du 定位目录、lsblk 看设备"这三板斧，磁盘问题就不再可怕。