云服务器加了一块数据盘却用不上?从分区、格式化到 fstab 持久化挂载的完整步骤

举报
yd_226757564 发表于 2026/11/07 10:06:50 2026/11/07
【摘要】 控制台挂载了云硬盘,df -h 却看不到?本文按 lsblk 确认设备、fdisk 分区、mkfs 格式化、挂载验证、用 UUID 写进 fstab 持久化的顺序,完整讲清新数据盘的上线步骤,并给出扩容与常见问题的排查方法。

在华为云控制台给弹性云服务器挂载了一块新的云硬盘,回到服务器里执行 df -h,却看不到这块盘——这是很多新手第一次扩容数据盘时都会遇到的情况。原因很简单:控制台的“挂载”只是把磁盘设备交给了实例,磁盘本身还没有分区、没有文件系统、也没有挂载点,自然不会出现在 df 的结果里。下面按“确认设备—分区—格式化—挂载—持久化”这个顺序,把完整流程走一遍。

一、先确认新盘是哪一块

不要凭感觉猜设备名,先看 lsblk:

lsblk
lsblk -f

一般会看到系统盘 /dev/vda(已有分区和挂载点),以及一块没有分区、没有文件系统的裸盘,例如 /dev/vdb。不同镜像、不同实例规格下设备名可能是 /dev/sdb,所以以 lsblk 的实际输出为准,不要照抄别人的设备名。

顺手确认两点:第一,这块盘确实是新挂载的空盘;第二,df -h 里没有它,这说明它还没有被使用,接下来做分区和格式化是安全的。

二、分区:先分一个区再用

小于 2TB 的数据盘,用 fdisk 就够了:

sudo fdisk /dev/vdb

在交互界面里依次输入 n(新建分区)、p(主分区)、1(分区号)、回车(起始扇区默认)、回车(结束扇区默认,用满整块盘),最后输入 w 保存退出。

如果数据盘大于 2TB,fdisk 的 MBR 分区表装不下,要改用 GPT,例如:

sudo parted /dev/vdb mklabel gpt
sudo parted /dev/vdb mkpart primary ext4 0% 100%

分完区再执行一次 lsblk,应该能看到 /dev/vdb1。

三、格式化:新盘才做,有数据千万别做

格式化会清空分区上的全部数据,只对确认是新盘的分区执行:

sudo mkfs.ext4 /dev/vdb1

如果业务需要 XFS,也可以改成 mkfs.xfs /dev/vdb1。选哪种文件系统,取决于业务的实际需求,一般的 Web 服务、数据库备份目录用 ext4 就够了。

最容易翻车的一步,就是把系统盘分区当成新盘格式化。执行前务必再核对一次设备名:系统盘是 /dev/vda,新盘分区是 /dev/vdb1。

四、挂载并验证

新建挂载点并挂载:

sudo mkdir -p /data
sudo mount /dev/vdb1 /data
df -h

这时 df -h 里应该能看到 /dev/vdb1 挂载在 /data 上,容量与云硬盘规格一致。再写一个测试文件验证可写:

echo "hello disk" | sudo tee /data/test.txt
cat /data/test.txt

验证通过后把测试文件删掉,保持目录干净。

五、写进 fstab,让重启后不丢挂载

只执行 mount 是临时的,服务器重启后挂载就丢了,业务目录会变成空目录,这是生产环境最常见的坑。正确做法是写进 /etc/fstab,而且要用 UUID,不要用设备名,因为重启后设备名的枚举顺序可能变化。

先查 UUID:

sudo blkid /dev/vdb1

再备份并编辑 fstab:

sudo cp /etc/fstab /etc/fstab.bak
sudo vi /etc/fstab

在文件末尾加一行(把下面的 UUID 换成你自己的实际值):

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2

保存后立即验证,不要等到下次重启才发现写错了:

sudo mount -a
df -h

mount -a 没有报错、df -h 仍能看到 /data,说明 fstab 写对了。如果 mount -a 报错,先排查,不要重启——fstab 写错可能导致系统无法正常启动。

六、以后扩容云硬盘,还要做这一步

在控制台把云硬盘从 100GB 扩到 200GB 之后,df -h 看到的容量通常不会马上变大,还需要在系统里扩容文件系统。已经分区的盘,先扩分区再扩文件系统;ext4 用:

sudo resize2fs /dev/vdb1

XFS 则用 xfs_growfs /data。扩完再用 df -h 核对容量。

常见问题速查

  • df -h 看不到新盘:先查 lsblk,确认分区和文件系统是否都已完成。
  • mount 报错 wrong fs type:分区还没格式化,或文件系统类型写错了。
  • 重启后 /data 变空:检查 /etc/fstab 是否写了这一行,UUID 是否正确。
  • 挂载后目录权限不对:用 chown 把目录属主改成业务用户,不要长期用 root 写业务数据。

小结

新数据盘上线的完整链路是:控制台挂载 → lsblk 确认设备 → 分区 → 格式化 → 挂载验证 → 用 UUID 写进 /etc/fstab 并用 mount -a 验证。其中最容易出问题的两点,一是把系统盘误当成新盘操作,二是只 mount 不写 fstab,重启后挂载丢失。按这个顺序走一遍,数据盘就能稳定地用起来了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。