新买的云盘挂到ECS上以后,系统里看不到它,或者看到了却没法写入,这种情况很常见。多数时候问题不在盘本身,而是少了“初始化”这一步。下面按实际操作顺序讲一遍,容易踩的坑放在对应步骤里。

先搞清楚初始化是在做什么
云盘挂上去之后,系统能认出一块裸盘,但它既没有分区,也没有文件系统。可以把它理解成一块刚拆封的硬盘,先划出区域,再格式化,才能存文件。所谓初始化,一般就是分区、格式化、挂载到某个目录,这三件事连着做。
初始化会清空磁盘上的数据。全新的云盘没有顾虑。如果是从别的服务器迁过来的旧盘,动手前先备份。
操作前先确认几件事
- 云盘在控制台已经挂载到目标实例上,状态为“使用中”。
- 确认实例的操作系统类型,Linux和Windows的步骤不同,下面分开说。
- 已经通过SSH或远程桌面登录到服务器。
- 服务器上如果有重要数据,先做快照或备份,再动磁盘。
Linux下的初始化步骤
以CentOS 7或Ubuntu为例,整个过程分四步:查看磁盘、分区、格式化、挂载。
第1步:确认新盘的设备名
执行下面的命令查看磁盘列表:
lsblk
系统盘一般是vda,新挂的数据盘通常显示为vdb。较新的机型可能是nvme1n1这类名字。判断方法很直接:新盘没有分区,容量和控制台购买时一致。设备名一定要核对清楚,选错盘后面的操作都会白做,甚至清掉别的数据。
第2步:创建分区
假设新盘是/dev/vdb,用fdisk分区:
fdisk /dev/vdb
进入交互界面后,依次输入n(新建分区)、p(主分区)、1(分区号),然后连按两次回车使用默认起止位置,最后输入w保存退出。
fdisk使用的是MBR分区表,超过2TB的部分无法识别。一个常见情况是买了4TB的云盘,分完只显示2TB左右,排查时很容易误以为是挂载或扩容出了问题。遇到大容量磁盘,直接改用parted和GPT分区表:
parted /dev/vdb mklabel gpt
parted /dev/vdb mkpart primary ext4 0% 100%
第3步:格式化分区
分区完成后,给分区创建文件系统。ext4兼容性好,比较省心:
mkfs.ext4 /dev/vdb1
格式化会清除该分区上的所有数据。执行前再确认一次设备名和分区名,尤其是磁盘上可能已经有数据的时候。
第4步:挂载,并设置开机自动挂载
先创建挂载点,手动挂载测试:
mkdir -p /data
mount /dev/vdb1 /data
df -h
df -h里能看到/data的容量,说明挂载成功。手动挂载在重启后会失效,所以还要写入/etc/fstab。建议用UUID而不是设备名,多盘环境下设备名的顺序可能变化,UUID更稳定:
blkid /dev/vdb1
复制输出里的UUID,编辑/etc/fstab,添加一行:
UUID=你的UUID /data ext4 defaults 0 2
保存后执行下面的命令验证:
mount -a
没有报错,说明fstab配置正确。这一步写错可能导致系统无法正常启动,所以修改前先备份fstab。
Windows下的初始化步骤
Windows的操作以图形界面为主,思路和Linux一样。
- 按Win+R输入diskmgmt.msc,打开“磁盘管理”。
- 找到状态为“未初始化”的新磁盘,右键选择“初始化磁盘”。
- 分区表选GPT。容量超过2TB时必须用GPT,小盘也没有理由不用。
- 在未分配空间上右键,选择“新建简单卷”,按向导指定盘符,文件系统一般选NTFS。
- 完成后,在资源管理器里能看到新盘符。
操作前在控制台核对磁盘编号和实际容量,别把系统盘当成新盘处理。
常见问题怎么排查
控制台显示已挂载,系统里却看不到磁盘
先执行lsblk,确认内核有没有识别到这块设备。如果没有,通常是系统还没扫描到新设备。可以尝试重新扫描设备,不方便的话重启实例,多数情况下能解决。
分区后挂载提示“wrong fs type”
大多是跳过了格式化,直接挂载了一个没有文件系统的分区。回到第3步执行mkfs.ext4即可。不过动手前先用blkid看一下,如果分区里已经有数据,就不能随便格式化。
重启后数据盘消失
基本可以确定是只做了手动挂载,没有写入fstab。补上fstab配置,再执行mount -a验证,这个问题就不会再出现。
几点实际操作时的提醒
初始化前核对设备名,多块云盘并存时最容易出错。生产环境用UUID挂载,改fstab前先备份。大容量磁盘直接用GPT,省得后面再排查容量识别的问题。初始化完成后,顺手给磁盘使用率加上监控,写满之前有提醒,服务不至于突然出问题。
初始化本身并不复杂。容易出问题的地方集中在三处:设备名没核对、分区表选错、开机挂载没配好。这三处各看一眼,后面的数据存储和迁移基本都能顺利进行。