在阿里云 ECS(Elastic Compute Service)中,系统盘和数据盘的挂载与分区是基础且关键的运维操作。以下是详细步骤和最佳实践:
一、基本概念
- 系统盘:默认包含操作系统,通常已自动分区并挂载。一般无需手动修改。
- 数据盘:用于存储业务数据,需手动挂载、分区、格式化并挂载到文件系统。
⚠️ 注意:系统盘不建议随意分区或格式化,以免导致系统无法启动。
二、数据盘挂载与分区完整流程
1. 确认磁盘设备名
登录 ECS 实例后,执行以下命令查看未挂载的磁盘:
lsblk
# 或
fdisk -l
常见设备名:
- Linux:
/dev/vdb、/dev/xvdb、/dev/sdb等(取决于内核和虚拟化类型) - Windows:通过“磁盘管理”工具查看
✅ 建议:使用
lsblk更直观,可看到挂载点和大小。
2. 对数据盘进行分区(可选但推荐)
方式一:使用 fdisk(传统 MBR 分区表)
sudo fdisk /dev/vdb
交互式操作:
- 输入
n→ 新建分区 - 选择
p→ 主分区 - 分区号默认为
1,回车 - 起始扇区默认,回车
- 结束扇区默认(使用全部空间),回车
- 输入
w→ 保存并退出
方式二:使用 parted(支持 GPT 分区表,推荐大磁盘)
sudo parted /dev/vdb
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 100%
(parted) quit
💡 提示:如果磁盘大于 2TB,必须使用 GPT 分区表。
3. 格式化分区
根据需求选择文件系统:
# ext4(通用推荐)
sudo mkfs.ext4 /dev/vdb1
# xfs(高性能,适合大数据)
sudo mkfs.xfs /dev/vdb1
# NTFS(如需兼容 Windows)
sudo mkfs.ntfs /dev/vdb1
⚠️ 注意:格式化会清空数据!确保是空盘或已有备份。
4. 创建挂载点并挂载
# 创建目录作为挂载点
sudo mkdir -p /data
# 临时挂载(重启失效)
sudo mount /dev/vdb1 /data
# 验证挂载
df -h
mount | grep data
5. 设置开机自动挂载(持久化)
编辑 /etc/fstab 文件:
sudo vi /etc/fstab
添加一行:
/dev/vdb1 /data ext4 defaults 0 2
或使用 UUID 更稳定:
# 获取 UUID
sudo blkid /dev/vdb1
# 输出示例:/dev/vdb1: UUID="xxxx-xxxx" TYPE="ext4"
# 写入 fstab
UUID=xxxx-xxxx /data ext4 defaults 0 2
✅ 推荐:使用 UUID 而非设备名,避免设备名变化导致挂载失败。
6. 测试配置是否正确
# 卸载当前挂载
sudo umount /data
# 重新挂载所有 fstab 中定义的分区
sudo mount -a
# 检查是否成功挂载
df -h
三、Windows 系统数据盘处理
- 打开“服务器管理器” → “工具” → “计算机管理” → “磁盘管理”
- 找到未初始化的磁盘(显示为黑色条)
- 右键 → “初始化磁盘”(选择 MBR 或 GPT)
- 右键新卷 → “新建简单卷”
- 按向导分配盘符、格式化为 NTFS
- 完成后可自动挂载,重启不会丢失
四、最佳实践与建议
| 项目 | 建议 |
|---|---|
| 分区方案 | 单一大分区即可,除非有特殊需求(如多租户隔离) |
| 文件系统 | Linux 推荐 ext4 或 xfs;Windows 用 NTFS |
| 挂载方式 | 使用 UUID 而非设备名,提高稳定性 |
| 备份策略 | 格式化前务必备份重要数据 |
| 监控告警 | 配置云监控监控磁盘使用率 |
| 快照保护 | 定期创建磁盘快照,防止误操作 |
五、常见问题排查
- 挂载失败:检查
/etc/fstab语法、UUID 是否正确、文件系统是否损坏 - 权限问题:使用
chmod或chown调整目录权限 - 性能瓶颈:考虑使用 SSD 云盘、开启多队列 I/O、调整 mount 参数(如
noatime)
六、自动化脚本示例(Linux)
#!/bin/bash
DISK="/dev/vdb"
MOUNT_POINT="/data"
FSTYPE="ext4"
# 检查磁盘是否存在
if ! lsblk | grep -q "$DISK"; then
echo "Disk $DISK not found!"
exit 1
fi
# 检查是否已挂载
if mountpoint -q "$MOUNT_POINT"; then
echo "$MOUNT_POINT is already mounted."
exit 0
fi
# 创建挂载点
mkdir -p "$MOUNT_POINT"
# 格式化(仅当无文件系统时)
if ! blkid "$DISK" | grep -q "$FSTYPE"; then
mkfs.$FSTYPE "$DISK"
fi
# 挂载
mount "$DISK" "$MOUNT_POINT"
# 添加到 fstab(如果尚未存在)
if ! grep -q "$MOUNT_POINT" /etc/fstab; then
echo "$(blkid -s UUID -o value $DISK) $MOUNT_POINT $FSTYPE defaults 0 2" >> /etc/fstab
fi
echo "Disk $DISK mounted at $MOUNT_POINT successfully."
通过以上步骤,你可以安全、规范地完成 ECS 数据盘的挂载与分区。如有特殊场景(如 LVM、RAID、容器存储等),可进一步扩展配置。
云知识CLOUD