我有一个 EBS 卷(例如 /dev/sdf
),已附加到 EC2 实例(从不同的 EBS 卷启动),并且我已经挂载了该卷(通过 mount /dev/sdf /data
)。当我停止并重新启动实例时,卷仍已连接但不再挂载,我必须再次手动挂载它。
有没有办法使卷/dev/sdf
启动实例时自动挂载到/data
?
似乎官方 ec2 文档现在推荐带有 nofail 的普通旧 fstab 条目 -
/dev/xvdf /data ext4 defaults,nofail 0 2
参考 - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html
向/etc/fstab
输入如下:
/dev/sdf /data ext3 defaults 1 1
这将在重新启动期间自动装入卷。
我建议使用/etc/init conf 文件来执行此操作:
- 使用根登录
- 创建一个新文件(非可执行文件)命名如下:mountec2vol.conf
- 粘贴此代码:
# /etc/init/mountec2vol.conf # # description: Mounts the EBS Volume # start on net-device-up exec mount /dev/xvdf1 /myVolume`
- 如果要测试,请重新启动
这就是你要做的!
可证明的证明是官方文档
你需要一段代码,例如:
DEVICE=/dev/$(lsblk -rno NAME | awk 'FNR == 3 {print}')
MOUNT_POINT=/data/
cp /etc/fstab /etc/fstab.orig
UUID=$(blkid | grep $DEVICE | awk -F '"' '{print $2}')
echo -e "UUID=$UUID $MOUNT_POINT xfs defaults,nofail 0 2" >> /etc/fstab
umount /data
mount -a
如果您要使用 Terraform 启动实例、具有附加和挂载功能的 EBS,您可以使用我的 AWS-EBS-Attach-Mount 备忘单中的所有代码