磁盘与分区:查看空间、挂载数据盘、开机自动挂载
从看懂磁盘占用,到把数据盘分区、格式化并永久挂载,一步步照着做。
给服务器加了一块数据盘,却不知道怎么用?本文带你查看磁盘空间、把新盘分区格式化,并写入 /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 验证再重启。