AWS EC2 实例如何挂载新的 EBS 存储卷并格式化 ext4

文章导读
在 AWS EC2 上挂载新 EBS 卷并格式化为 ext4,标准做法是在控制台附加卷后,通过 Linux 命令行完成文件系统创建和挂载。为确保系统稳定性,强烈建议使用 UUID 而非设备名进行持久化挂载配置。
📋 目录
  1. 命令速用版
  2. 分步处理
  3. 怎么验证是否生效
  4. 常见坑
  5. 参考来源
A A

在 AWS EC2 上挂载新 EBS 卷并格式化为 ext4,标准做法是在控制台附加卷后,通过 Linux 命令行完成文件系统创建和挂载。为确保系统稳定性,强烈建议使用 UUID 而非设备名进行持久化挂载配置。

先说结论:操作本身不复杂,但必须使用 UUID 配置 fstab 以避免设备名变化导致启动失败,且需注意权限配置。

  • 适合新建空卷或已备份数据卷
  • 务必使用 blkid 获取 UUID 写入 fstab
  • 写入 fstab 前先用 mount -a 测试配置
  • 注意修改挂载目录权限以便业务用户写入

命令速用版

# 1. 查看未挂载的设备及其 UUID
lsblk -f

# 2. 格式化为 ext4 (假设设备为 /dev/xvdf,请替换为实际设备)
sudo mkfs -t ext4 /dev/xvdf

# 3. 创建挂载点
sudo mkdir /data

# 4. 获取设备 UUID (假设输出 UUID=1234-5678)
sudo blkid /dev/xvdf

# 5. 挂载
sudo mount /dev/xvdf /data

# 6. 写入 fstab 实现开机自动挂载 (使用 UUID,注意避免重复添加)
# 添加前建议检查:grep /data /etc/fstab
# 建议先备份:sudo cp /etc/fstab /etc/fstab.bak
echo "UUID=1234-5678  /data  ext4  defaults,nofail  0  2" | sudo tee -a /etc/fstab

分步处理

1. 创建并附加卷
在 AWS 控制台创建 EBS 卷时,可用区必须与 EC2 实例一致。创建完成后,选择“附加卷”,目标实例选你的 EC2。设备名称可以保持默认,但需注意不同实例架构识别名称不同。

2. 识别设备名称与 UUID
登录实例后,运行 lsblk -f 命令查看块设备列表及文件系统信息。新挂载的卷通常显示为没有挂载点(MOUNTPOINT 列为空)且大小与你创建一致的设备。记录该设备的 UUID,后续配置 fstab 必须使用此值。

3. 格式化文件系统
确认设备名无误后,使用 mkfs 命令格式化。警告:此操作会清除该卷上的所有数据,确保你挂载的是空卷或数据已备份。命令示例:sudo mkfs -t ext4 /dev/你的设备名

AWS EC2 实例如何挂载新的 EBS 存储卷并格式化 ext4

4. 挂载与持久化
创建目录作为挂载点,使用 mount 命令临时挂载。确认无误后,编辑 /etc/fstab 文件添加开机自动挂载配置。关键:必须使用 UUID 而非设备名(如 /dev/xvdf),因为 Nitro 实例重启后设备名可能会变化。写入前建议先备份 fstab 文件。

5. 权限配置
挂载后目录默认所有者可能是 root,普通用户写入可能报错。可根据业务用户修改归属,例如:sudo chown -R ec2-user:ec2-user /data 或调整权限 sudo chmod 755 /data

怎么验证是否生效

执行 df -h 命令,查看输出列表中是否包含你刚才挂载的目录和对应容量。在重启前,务必执行 sudo mount -a 测试 fstab 配置是否有语法错误,若无报错则说明配置正确。最稳妥的验证方式是重启实例(sudo reboot),重启后再次登录,检查该目录是否依然可读写且数据未丢失。

常见坑

  • 设备名混淆:Nitro 实例架构下,EBS 卷可能显示为 nvme 开头而非 xv 开头,务必以 lsblk 结果为准,且必须使用 UUID 规避此问题。
  • fstab 错误导致无法启动:如果 fstab 配置写错,实例可能无法完成启动。建议在 fstab 配置中加入 nofail 参数,这样即使挂载失败也不会阻断启动流程。
  • 配置重复风险:多次执行追加命令会导致 fstab 中出现重复挂载项,引发挂载错误。添加前请使用 grep 检查或手动编辑。
  • 权限问题:挂载后默认所有者可能是 root,普通用户写入可能报错。可根据需要使用 chown 修改目录归属。
  • 数据丢失风险:格式化命令不可逆,千万不要对包含原有数据的卷执行 mkfs,除非你确定数据已备份或不需要。

参考来源

  • Amazon Web Services 官方文档,页面标题:"在 Linux 实例上挂载 Amazon EBS 卷",URL:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ebs-using-it.html