磁盘与分区:查看空间、挂载数据盘、开机自动挂载

从看懂磁盘占用,到把数据盘分区、格式化并永久挂载,一步步照着做。

给服务器加了一块数据盘,却不知道怎么用?本文带你查看磁盘空间、把新盘分区格式化,并写入 /etc/fstab 实现开机自动挂载。命令以 Ubuntu/Debian 为主。

先看清楚:空间和磁盘

查看各挂载点已用/可用空间,-h 让容量以人类可读单位显示:

df -h

想知道某个目录到底谁在占空间,用 du:

du -sh /var/*        # 逐个子目录汇总大小
du -sh /var/log      # 单个目录总大小

查看服务器上有哪些磁盘和分区,推荐 lsblk,树状结构一目了然:

lsblk

输出里 sda、vda 是整块磁盘,sda1、vda1 是其上的分区。系统盘通常已挂在 /;新加的数据盘一般是 sdb 或 vdb,还没有分区、没有挂载点。

> 风险提示:后续的分区、格式化会清空目标设备上的所有数据,且无法撤销。 动手前务必用 lsblk 反复确认设备名,认准那块空的新盘,别对系统盘或有数据的盘操作。重要数据请先备份。

分区与格式化新盘

假设新数据盘是 /dev/sdb(请按你自己的 lsblk 结果替换)。用 parted 建立分区表并划一个占满整盘的分区:

sudo parted /dev/sdb --script mklabel gpt
sudo parted /dev/sdb --script mkpart primary ext4 0% 100%

再次 lsblk 确认出现了 sdb1。然后格式化为 ext4 文件系统:

sudo mkfs.ext4 /dev/sdb1

挂载与永久生效

先创建挂载目录,手动挂载测试:

sudo mkdir -p /data
sudo mount /dev/sdb1 /data
df -h /data          # 能看到 /data 就成功了

手动挂载重启后会失效。要开机自动挂载,应把它写进 /etc/fstab。强烈建议用 UUID 而不是 /dev/sdb1,因为设备名可能在重启后变化,UUID 则固定不变:

sudo blkid /dev/sdb1     # 记下 UUID="...."

编辑 /etc/fstab,在末尾新增一行(把 UUID 换成你的实际值):

UUID=你的UUID  /data  ext4  defaults  0  2

保存后,先验证配置是否正确再重启,避免写错导致开不了机:

sudo umount /data
sudo mount -a           # 无报错说明 fstab 正确
df -h /data

mount -a 会按 /etc/fstab 挂载所有条目。若这一步报错,请回去检查 fstab 那一行的拼写,修好再重启。

小结

  • df -h 看空间、du -sh 找占用大户、lsblk 看磁盘和分区结构;
  • 新盘流程:parted 分区 → mkfs.ext4 格式化 → mount 挂载 → 写 /etc/fstab 永久生效;
  • 分区/格式化会清空数据且不可逆,动手前反复核对设备名并备份;fstab 用 UUID,改完先 mount -a 验证再重启。