首页 > Sysadmin > 正文

阿里云Linux服务器分区指南:数据盘初始化、UUID挂载与在线扩容三步走

huyuanwen 2026-11-07 Sysadmin

先搞清楚:云服务器上的”盘”从哪来

在阿里云 ECS 上给 Linux 服务器分区,和实体机最大的区别是:盘不是插上去的,而是”买”出来的。你在控制台购买云盘并挂载到实例后,操作系统里才会出现一块新磁盘。同时要注意命名:新一代实例(如 g7/c7 及之后)的云盘走 NVMe 协议,系统盘叫 /dev/nvme0n1,数据盘依次是 /dev/nvme1n1、/dev/nvme2n1;老一代实例则是 /dev/vda(系统盘)、/dev/vdb(数据盘)的 virtio 命名。设备名会随挂载顺序变化,所以后面所有持久化配置都必须用 UUID,而不是设备名。

第一步:确认新盘状态,别动系统盘

登录服务器后先用一条命令看全局:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT

输出里 TYPE=disk 且没有任何分区、没有挂载点的,就是刚挂载上来的空数据盘。已经挂着 /、/boot/efi 的盘是系统盘,绝对不要在它上面重新分区。再用 sudo fdisk -l 磁盘设备 可以确认容量是否与控制台购买的一致——如果控制台扩容过但这里显示的容量没变,先跳到本文最后一节处理扩容。

第二步:分区与格式化

推荐用 parted 而不是老牌的 fdisk:2TiB 以上的云盘必须使用 GPT 分区表,fdisk 默认建的 MBR 表放不下,parted 则可以直接建 GPT。以 100GiB 数据盘 /dev/vdb 为例,整盘分一个区:

sudo parted /dev/vdb mklabel gpt          # 建 GPT 分区表
sudo parted -a optimal /dev/vdb mkpart data ext4 1MiB 100%
sudo mkfs.ext4 -L data /dev/vdb1          # 阿里云 Linux/CentOS 也可用 xfs

文件系统选 ext4 还是 xfs:ext4 通用性好、支持在线缩小;xfs 是大文件和大容量场景的默认选择(CentOS 7+/Alibaba Cloud Linux 3 默认就是 xfs),但 xfs 一旦创建不能缩小。分区一旦 mkfs,原数据即视为丢弃,操作前务必确认设备名没看错。

第三步:按 UUID 挂载并写入 fstab

先用 sudo blkid /dev/vdb1 记下 UUID,再挂载并持久化:

sudo mkdir /data
echo 'UUID=你的UUID /data ext4 defaults,noatime,nofail 0 2' | sudo tee -a /etc/fstab
sudo mount -a                              # 立即生效并校验 fstab
df -h /data                                # 确认容量正确

两个细节很关键:一是 nofail 选项,万一云盘被卸载或 UUID 写错,系统仍能正常启动,否则重启会直接卡在应急模式;二是 mount -a 必须在重启前执行,它能在还登得进去的时候暴露 fstab 语法错误。云服务器没有带外键盘不代表不能救(控制台有 VNC 救援),但没人想为了一行 fstab 折腾一次。

云盘在线扩容后,分区怎么跟着变大

阿里云支持云盘”在线扩容”:控制台付完钱、容量立即购买,实例不用重启。但注意,控制台扩的只是”盘”的上限,里面的分区和文件系统不会自己长出来,要三步跟上:

echo 1 | sudo tee /sys/block/vdb/device/rescan   # 让内核看到新容量(部分镜像自动完成)
sudo growpart /dev/vdb 1                          # 把分区 1 扩到整盘
sudo resize2fs /dev/vdb1                          # ext4;xfs 用 xfs_growfs /data

growpart 属于 cloud-utils-growpart 包,Alibaba Cloud Linux 和主流云镜像一般预装,没有就 yum install cloud-utils-growpart。系统盘同样可以用这套流程扩容,这也是官方推荐做法,不需要重装系统。

常见问题 FAQ

Q1:控制台显示云盘”待挂载”,但 lsblk 里找不到盘?
先检查云盘和 ECS 是否在同一可用区——跨可用区不能直接挂载。同区仍看不到,可在控制台对实例做一次重启,或在系统内执行 rescan 命令刷新 SCSI/virtio 总线。

Q2:fstab 写错导致实例起不来怎么办?
在 ECS 控制台用 VNC 连接进单用户模式(或通过挂载修复盘的方式),编辑 /etc/fstab 注释掉出错的那行即可恢复。加上 nofail 选项可以从根上避免这类事故。

Q3:能不能不给数据盘分区,直接整盘格式化?
可以(mkfs.ext4 /dev/vdb 不加分区号),一些数据库场景甚至推荐这么做。但分区后再格式化的好处是将来可以整盘换文件系统、也方便和快照工具配合,普通业务目录建议还是先分区。