新买了阿里云服务器,很多人第一次挂载都会卡住。云盘在控制台显示已挂到实例上,lsblk 里也能看到设备,df -h 却找不到它。网上的教程又是一串命令加参数,不知道哪个对应自己的情况。

这篇文章按存储类型分开讲:云盘怎么挂,NAS 怎么挂,OSS 怎么挂,最后说挂载失败时按什么顺序查。命令尽量给到能直接复制执行的程度。系统以 Ubuntu 和 Alibaba Cloud Linux 为例,其他发行版的区别主要在包管理命令上。
先分清三种存储
阿里云上说的“挂载”,实际对应三类性质不同的存储。选错类型,后面的配置再熟练也是白忙。
- 云盘(ECS 块存储):接近一块插在服务器上的硬盘,要先格式化,再挂到某个目录。读写延迟低,适合数据库、应用数据这类对性能敏感的场景。
- NAS 文件存储:通过 NFS 或 SMB 协议走网络挂载。多台服务器可以同时访问同一份数据,适合共享目录、网站素材和日志汇总。
- OSS 对象存储:用 ossfs 或 ossutil 把 Bucket 映射成本地目录。不用提前规划容量,适合图片、视频、备份这类数量大、改动少的文件。
一个粗略的判断标准:要快、只给一台机器用,选云盘;要多机共享,选 NAS;要量大、便宜,并且基本只读,选 OSS。
挂载云盘:从识别到开机自动挂载
下面以一台 Ubuntu 服务器为例,假设新买了一块 100GB 数据盘,系统识别为 /dev/vdb。整个过程分四步。
1. 确认系统已经识别磁盘
执行 lsblk,能看到 vdb 且下面没有分区,说明磁盘已经就绪:
lsblk
如果这里看不到,回控制台确认云盘已经挂到这台实例上,并且云盘和实例在同一个可用区。
2. 格式化
容量在 2TB 以内,可以直接对整块盘格式化,这里用 ext4:
sudo mkfs.ext4 /dev/vdb
格式化会清空盘上的所有数据。新盘可以放心执行。如果是从别处拆下来的旧盘,先确认里面没有需要保留的内容,这一步没有回头路。
3. 创建挂载点并挂载
sudo mkdir -p /data
sudo mount /dev/vdb /data
df -h | grep /data
df 能显示出 /data 的容量,说明挂载成功。不过这是临时挂载,服务器一重启就没了,所以还要做第四步。
4. 配置开机自动挂载
fstab 里建议用 UUID 而不是设备名。多块盘的环境里,vdb、vdc 的顺序可能因为重启或增删盘而变化,UUID 则不会。
sudo blkid /dev/vdb
复制输出里的 UUID,编辑 /etc/fstab,在末尾加一行:
UUID=你的UUID /data ext4 defaults,nofail 0 2
其中 nofail 很重要。磁盘因为某些原因没识别到时,系统依然能正常启动,不会卡在开机界面。写完后先执行 sudo mount -a,没有报错再重启,才算真正配好。
一个典型场景:图片目录从系统盘迁出
假设一个小电商团队把商品图片全部放在单台服务器的系统盘里。图片量涨上来以后,系统盘告警越来越频繁,备份也越来越慢。这类情况很常见,处理思路大致是这样:
- 新购一块数据盘,按上面的步骤挂到 /data/images,格式化并写好 fstab。
- 用 rsync 分批迁移原有图片,迁移期间保留旧目录,不急着删。
- 把 Nginx 里静态资源的路径改到新目录,验证无误后再清理旧文件。
挂载本身很快,真正花时间的是迁移和切换。路径先规划好,改配置时才不用边改边找。
挂载 NAS:让多台服务器共用一个目录
挂载前要先在控制台创建文件系统和挂载点,并确认服务器与 NAS 在同一个 VPC 下。安全组里还要放行 NFS 使用的 2049 端口,否则后面大概率超时。这是最容易漏掉的一步。
在 CentOS 或 Alibaba Cloud Linux 上,先装 NFS 客户端,再挂载:
sudo yum install -y nfs-utils
sudo mkdir -p /mnt/nas
sudo mount -t nfs -o vers=4.0,rsize=1048576,wsize=1048576,hard,timeo=600,noresvport 你的挂载点地址:/ /mnt/nas
其中 hard 的意思是网络中断时持续重试,而不是直接报错返回。写入类业务用它更稳妥,因为报错退出时,应用可能只写了一半。需要开机自动挂载的话,同样写进 /etc/fstab,格式和云盘那一条相近,只是类型换成 nfs。
挂载 OSS:用本地路径读写对象存储
OSS 通常借助 ossfs 挂载。好处是程序不用改代码,直接读写本地路径就行。但它不是真正的文件系统,随机写入和频繁重命名会明显变慢,所以更适合读多写少的场景,比如图片展示、静态文件下发。
以 Ubuntu 为例,基本步骤如下。具体版本和安装包请以官方文档为准:
echo 你的AccessKeyId:你的AccessKeySecret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
sudo ossfs 你的Bucket名 /mnt/oss -o url=http://oss-cn-hangzhou.aliyuncs.com -o allow_other
上面的 url 以杭州地域为例,换成你 Bucket 所在地域的 endpoint。AccessKey 存在本地文件里,权限要收紧。建议新建 RAM 子账号,只授予目标 Bucket 的读写权限,不要用主账号密钥。主账号密钥一旦泄露,影响的是整个账号。
挂载失败,按这个顺序查
实际操作中,失败原因大多集中在三类,按下面的顺序检查比较省时间:
- 找不到设备:先用 lsblk 确认系统已识别磁盘,再回控制台看云盘是否挂到了当前实例上。
- 提示 wrong fs type:通常是盘还没格式化,或者挂载时写错了文件系统类型。用 blkid 查看实际类型,再对照命令里的类型。
- NAS 挂载超时:多半是安全组没放行 2049 端口,或挂载点地址写错、不在同一个 VPC。可以先用 telnet 测一下端口是否通。
还有一条要反复强调:改完 fstab 一定先执行 mount -a。配置写错又直接重启,最坏的情况是服务器起不来,需要进救援模式处理,比挂载本身麻烦得多。
小结
挂载的第一步永远是判断存储类型。云盘注意格式化和 UUID,NAS 关注网络和端口,OSS 管好密钥权限,并且只用在合适的场景。分清这三件事,大多数挂载问题自己就能处理。