先判断它是哪种状态
遇到“数据盘没挂载”,先不要急着格式化。第一步是判断系统到底有没有识别到这块盘,以及它有没有文件系统。
df -hT 没看到数据盘
可能只是未挂载
lsblk -f 看到 vdb
系统识别到了设备
vdb1 没有 FSTYPE
分区还没格式化
查看当前挂载情况
先看已经挂载的文件系统:
df -hT
如果只看到系统盘,例如 /dev/vda2 挂载在 /,说明当前没有看到新的数据盘挂载点。
再看系统识别到的磁盘:
lsblk -f
如果看到 /dev/vdb,但没有 FSTYPE、UUID 和 MOUNTPOINTS,通常说明数据盘还没有文件系统,也没有挂载。
确认数据盘是否已有文件系统
sudo blkid /dev/vdb
sudo file -s /dev/vdb
blkid 没有输出时,通常表示这块盘还没有文件系统。如果已经出现 ext4、xfs 等类型,不要直接格式化。
如果这不是新盘,或者你不确定它是不是新盘,格式化会导致数据丢失。
创建分区
确认是新空盘后,可以创建 GPT 分区:
sudo parted /dev/vdb --script mklabel gpt mkpart primary ext4 1MiB 100%
sudo partprobe /dev/vdb
执行后再用 lsblk -f 查看,正常会看到 /dev/vdb1。
格式化分区
下面命令会清空 /dev/vdb1 上的数据,只适合新空盘:
sudo mkfs.ext4 -F /dev/vdb1
格式化完成后,/dev/vdb1 应该会显示 ext4 和一个 UUID。
挂载到新目录
如果服务器上原本已经有 /data 目录,不建议直接挂载到 /data。挂载后原目录里的内容会被临时遮住。
sudo mkdir -p /data_disk
sudo mount /dev/vdb1 /data_disk
df -hT /data_disk
如果成功,会看到 /dev/vdb1 挂载到 /data_disk。
设置开机自动挂载
先获取 UUID:
sudo blkid /dev/vdb1
编辑 `/etc/fstab`:
sudo nano /etc/fstab
追加一行,注意把 UUID 换成真实输出:
UUID=你的UUID /data_disk ext4 defaults,nofail 0 2
保存后验证:
sudo mount -a
df -hT /data_disk
最终验证清单
lsblk -f
df -hT /data_disk
grep -vE '^\s*#|^\s*$' /etc/fstab
/dev/vdb1有ext4/dev/vdb1有 UUID/dev/vdb1挂载到/data_disk/etc/fstab里使用同一个 UUID
FAQ
为什么腾讯云控制台有数据盘,但 df -hT 看不到?
df -hT 只显示已经挂载的文件系统。云盘被系统识别后,如果还没有分区、格式化或挂载,就不会出现在 df 输出里。
lsblk -f 看到 vdb 就能直接用了么?
不能。看到设备只说明系统识别到了磁盘,还要确认是否有分区、文件系统和挂载点。可以继续看 df -hT 和 lsblk -f 的区别。
数据盘一定要挂载到 /data 吗?
不一定。如果 /data 里已有文件,建议挂到 /data_disk 这类新目录,避免挂载后把原目录内容临时遮住。