本篇是为了方便我自己,有时买大盘鸡会出现数据盘没被检测到,本文大多内容由AI生成,请根据自身实际情况更改。

原因分析

一、VPS 的磁盘结构是这样的

一般 VPS 商家会给你两块磁盘:

名称

用途

特点

/dev/vda

系统盘

安装系统、面板、应用的主盘

/dev/vdb

数据盘

空盘,仅提供容量,默认不挂载

当你在控制台“重装系统”时,其实他们只重装 系统盘(/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

如果你看到类似 vdbsdb 这样的设备,并且 它没有 MOUNTPOINT(挂载点),说明就是那块空闲的大盘。

🧰 二、格式化并挂载

假设那块盘是 /dev/vdb(请替换成你看到的名字):

1️⃣ 创建分区(整盘使用)

fdisk /dev/vdb

然后输入以下命令:

n   # 新建分区
p   # 主分区
1   # 分区号
回车两次 # 默认起始和结束位置
w   # 写入并退出

2️⃣ 格式化成 ext4 文件系统

mkfs.ext4 /dev/vdb1

3️⃣ 创建挂载目录并挂载

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: done

2️⃣ 创建挂载目录

mkdir -p /mnt/data

3️⃣ 挂载磁盘

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/data

4️⃣ 设置开机自动挂载(重要)

编辑 /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 写入后就能永久恢复。