新数据盘已挂载却看不到:先分清“控制台挂载”和“系统内可用”,再做初始化
控制台里明明显示云硬盘已经挂载,登录云服务器后执行 df 却只看到系统盘,新盘像凭空消失了一样。先不要急着卸载、重挂或者重新购买:多数情况下这不是挂载失败,而是把三件事混在了一起——控制台挂载、系统识别设备、文件系统挂载到目录。只有三步都完成,数据盘才算真正可用。
一、问题:先分清三种状态
- 控制台挂载:云硬盘与云服务器建立了关联,控制台状态一般显示为“正在使用”。这一步只说明“盘给了这台机器”,不等于系统里已经能写数据。
- 系统识别设备:Linux 内核看到了这块盘,通常是 /dev/vdb 这样的设备名。可以用 lsblk 确认,设备存在但没有分区和挂载点,仍然是正常的全新盘状态。
- 文件系统挂载:给设备分区、创建文件系统,再挂载到 /data 这样的目录,df 才能看到它。
官方文档也明确指出:新的数据盘默认是没有分区和文件系统的,因此在磁盘信息中不会显示,需要先手动执行初始化操作;如果云服务器重启后找不到数据盘,则可能是未设置开机自动挂载。
二、前提:先确认这篇适用的范围
- 本文以 Linux、全新空数据盘为例,示例设备名为 /dev/vdb,实际请以 lsblk 的输出为准,不要照抄。
- 如果这块盘来自快照、备份、镜像,或者是从另一台云服务器卸载后挂过来的有数据盘,请先停下来:对它执行分区或格式化会删除已有数据,正确做法是先备份,再按有数据盘的流程挂载已有分区。
- 操作前先在控制台确认两点:云硬盘状态为正在使用,且云硬盘与云服务器在同一可用区;非共享云硬盘只能挂载到一台云服务器。
- 下列命令需要 root 权限或 sudo,挂载目录以 /data 为例。
三、分步操作
第 1 步:对照 lsblk、df,确认盘到底在哪一步
lsblk
lsblk -f
df -hT
lsblk 能看到 /dev/vdb,但 lsblk -f 没有 FSTYPE、df 里也没有对应行,说明盘已识别、尚未初始化。lsblk 完全看不到设备,则先回控制台核对挂载状态和可用区,不要直接在系统里格式化其他盘。
第 2 步:按容量选分区格式
官方初始化概述指出:MBR 分区支持的最大云硬盘容量为 2 TiB,GPT 支持的最大容量为 18 EiB;容量大于 2 TiB,或者目前小于等于 2 TiB 但后续可能扩容到 2 TiB 以上时,初始化时应选择 GPT。
- 容量小于等于 2 TiB:可用 fdisk 创建分区。
- 容量大于 2 TiB:请用 parted 创建 GPT 分区,不要用 MBR 硬撑。
以小于等于 2 TiB 的全新盘为例,执行 fdisk /dev/vdb,按提示新建分区并写入,分区一般为 /dev/vdb1。操作前务必再次确认设备名,选错盘的代价就是数据丢失。
第 3 步:只对全新空盘创建文件系统
mkfs.ext4 /dev/vdb1
这里再次强调:mkfs 是格式化,只适用于确认无数据的全新盘。有数据盘执行这一步,数据会被清除,官方文档同样明确“初始化需要划分分区,数据盘已有数据将会被全部删除”。
第 4 步:挂载到目录
mkdir -p /data
mount /dev/vdb1 /data
第 5 步:用 UUID 写 fstab,实现开机自动挂载
只 mount 不写 fstab,重启后盘就“又不见了”,这是最常见的返工原因。官方给出的排查思路同样是:重启后找不到数据盘,很可能是未设置开机自动挂载。
blkid /dev/vdb1
vi /etc/fstab
在 /etc/fstab 末尾添加一行,格式示例(UUID 请替换为 blkid 查到的实际值):
UUID=实际查到的UUID /data ext4 defaults 0 2
不要直接用 /dev/vdb1 写 fstab:设备名在不同启动条件下可能变化,UUID 更稳定。写完后不要立刻重启,先用下一步验证。
四、验证:四条命令确认真正可用
mount -a
df -hT | grep /data
mount | grep /data
lsblk -f
合格的标准是四点同时成立:df 能看到 /data 及其容量;mount 输出里有 /dev/vdb1 on /data;lsblk -f 显示该分区有 ext4 文件系统和挂载点;mount -a 执行后没有报错。
再做一次写入验证:
touch /data/.mount-test && ls -l /data/.mount-test && rm /data/.mount-test
能创建、能看到、能删除,才算目录真正可写。之后如果要验证重启效果,请先确认 mount -a 无报错,并留好快照或备份再重启,避免 fstab 写错导致启动异常。
五、常见坑
- 只看 df 下结论:df 只显示已挂载的文件系统,全新盘、未挂载的盘本来就不会出现在 df 里,先用 lsblk 判断设备是否存在。
- 对有数据盘格式化:快照盘、备份盘、旧盘重新挂载时,先确认分区和文件系统,确认无误后再挂载,不要习惯性执行 fdisk 或 mkfs。
- 只挂载不设自动挂载:当时能用、重启后消失,基本都是 fstab 漏写或写错,先用 mount -a 验证,再谈重启。
- fstab 用设备名:设备名可能变化,优先用 blkid 查到的 UUID;修改 fstab 前建议先备份原文件。
- 容量与分区格式错配:大于 2 TiB 的盘用 MBR 初始化,后续容量可能无法完整使用,初始化前先按容量选 GPT。
- 跨系统直接复用:Linux 文件系统的盘拿到 Windows 上、或反过来,都可能无法直接识别,有数据时不要直接初始化,先确认文件系统和备份。
- 控制台状态与系统状态混淆:控制台显示正在使用,只能证明挂载关系,不能证明系统内已分区、已格式化、已挂载,三步要分开核对。
六、小结清单
- [ ] 控制台确认:云硬盘正在使用,且与云服务器同一可用区。
- [ ] lsblk 确认:设备存在,实际设备名以输出为准。
- [ ] 盘的性质确认:全新空盘才能初始化,有数据盘先备份、不要格式化。
- [ ] 按容量选格式:小于等于 2 TiB 可用 MBR,大于 2 TiB 用 GPT。
- [ ] 分区后只对全新盘执行 mkfs,挂载到 /data。
- [ ] blkid 查 UUID,写入 /etc/fstab,执行 mount -a 验证无报错。
- [ ] df、mount、lsblk -f、写入测试四项全部通过。
- [ ] 出现“重启后消失”,先查 fstab 是否漏写或写错,而不是重复格式化。
出处
- 华为云《为什么登录到云服务器后看不到已挂载的数据盘》:https://support.huaweicloud.com/evs_faq/evs_faq_0022.html
- 华为云《初始化概述》:https://support.huaweicloud.com/usermanual-evs/evs_01_0038.html
- 点赞
- 收藏
- 关注作者
评论(0)