修复VPS数据盘未自动挂载导致数据盘检测不到的问题
本篇是为了方便我自己,有时买大盘鸡会出现数据盘没被检测到,本文大多内容由AI生成,请根据自身实际情况更改。
原因分析
一、VPS 的磁盘结构是这样的
一般 VPS 商家会给你两块磁盘:
当你在控制台“重装系统”时,其实他们只重装 系统盘(/dev/vda)。
而 数据盘(/dev/vdb) 会被保留在原状态(或者重新创建但不格式化、不挂载)。
所以系统装好了,但操作系统并不知道 /dev/vdb 是干嘛的,就不会自动挂载它。
为什么不自动挂载?
这是有意为之,原因有三个:
1️⃣ 安全性原因
系统不知道那块盘上是否有旧数据(可能是你之前的数据库、备份等)。
如果它贸然自动挂载,可能导致数据损坏或权限冲突。
所以操作系统默认保持“未挂载”状态。
2️⃣ 没有文件系统
商家提供的大盘往往只是“原始块设备”(raw device)。
没有 ext4、xfs、btrfs 等文件系统 → Linux 自然识别不到它是“可以用的盘”。
3️⃣ /etc/fstab 丢失
系统重装后,/etc/fstab(保存挂载记录的配置文件)会被覆盖。
所以即便你以前设置过自动挂载,新系统也不会记得旧配置。
修复方案(若没有分区)
🧩 一、先看看系统识别到哪些磁盘
请运行:
lsblk示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 20G 0 disk
├─vda1 253:1 0 20G 0 part /
vdb 253:16 0 2T 0 disk如果你看到类似 vdb 或 sdb 这样的设备,并且 它没有 MOUNTPOINT(挂载点),说明就是那块空闲的大盘。
🧰 二、格式化并挂载
假设那块盘是 /dev/vdb(请替换成你看到的名字):
1️⃣ 创建分区(整盘使用)
fdisk /dev/vdb然后输入以下命令:
n # 新建分区
p # 主分区
1 # 分区号
回车两次 # 默认起始和结束位置
w # 写入并退出2️⃣ 格式化成 ext4 文件系统
mkfs.ext4 /dev/vdb13️⃣ 创建挂载目录并挂载
mkdir /mnt/data
mount /dev/vdb1 /mnt/data现在再执行:
df -h你应该能看到 /mnt/data 有你数据盘空间 ✅
🔁 三、设置开机自动挂载
编辑 /etc/fstab 文件:
nano /etc/fstab在文件末尾添加一行:
/dev/vdb1 /mnt/data ext4 defaults 0 0保存退出后执行:
mount -a确保没有报错即可。
到这一步就已经完美修复了。
修复方案(已分区未挂载)
若你的输入完lsblk的指令后显示如下内容:
root@ZT5901531479:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 402K 0 rom
vda 254:0 0 15G 0 disk
└─vda1 254:1 0 15G 0 part /
vdb 254:16 0 2T 0 disk
└─vdb1 254:17 0 2T 0 part
可以看到:
vda1 → 15G(系统盘,挂载在 /)
vdb1 → 2T(大盘,有分区但还没挂载)
也就是说:
这块 2T 的盘已经分区(有 vdb1),但还没有文件系统、也没有挂载点。
所以 1Panel、探针 都看不到它。
这就是有分区但是没有文件和挂载点的情况。
你只需要格式化 + 挂载即可:
1️⃣ 格式化为 ext4 文件系统
(⚠️ 这会清空磁盘上所有数据,如果是新盘可以直接执行)
mkfs.ext4 /dev/vdb1等待几秒钟,会输出类似:
Writing inode tables: done
Writing superblocks and filesystem accounting information: done2️⃣ 创建挂载目录
mkdir -p /mnt/data3️⃣ 挂载磁盘
mount /dev/vdb1 /mnt/data然后验证:
df -h你应该会看到类似:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 15G 3.0G 12G 20% /
/dev/vdb1 1.9T 24K 1.9T 1% /mnt/data4️⃣ 设置开机自动挂载(重要)
编辑 /etc/fstab:
nano /etc/fstab在最后一行加上:
/dev/vdb1 /mnt/data ext4 defaults 0 0保存退出后执行:
mount -a如果没有报错,就说明设置成功 ✅
以后重启 VPS 也会自动挂载。
延伸建议(避免重装后丢配置)
如果你打算经常重装系统,可以考虑下面这种优化方案:
使用 UUID 挂载
用命令查看磁盘 UUID:
blkid /dev/vdb1输出类似:
/dev/vdb1: UUID="c5b7e9b8-1d2c-4c38-b1a8-35f09f9c0e2f" TYPE="ext4"然后在 /etc/fstab 中这样写:
UUID=c5b7e9b8-1d2c-4c38-b1a8-35f09f9c0e2f /mnt/data ext4 defaults 0 0这样系统不会因为磁盘顺序变化(vdb → vdc)而挂载失败。
总结
重装系统只会重装系统盘,不会自动挂载数据盘。
因为
/etc/fstab被重置、系统未知分区用途、文件系统未初始化。手动挂载并在 fstab 写入后就能永久恢复。