我有一个EBS卷(例如/dev/sdf
),它已经附加到一个EC2实例上(该实例从不同的EBS卷启动),我已经通过mount /dev/sdf /data
挂载了该卷。当我停止并重新启动实例时,该卷仍然附加但不再挂载,我必须手动再次挂载。
是否有一种方法可以使卷/dev/sdf
在启动实例时自动挂载到/data
?
我有一个EBS卷(例如/dev/sdf
),它已经附加到一个EC2实例上(该实例从不同的EBS卷启动),我已经通过mount /dev/sdf /data
挂载了该卷。当我停止并重新启动实例时,该卷仍然附加但不再挂载,我必须手动再次挂载。
是否有一种方法可以使卷/dev/sdf
在启动实例时自动挂载到/data
?
看起来官方的ec2文档现在建议使用没有失败保护的普通fstab条目 -
/dev/xvdf /data ext4 defaults,nofail 0 2
参考 - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html
nobootwait
挂载选项。 - havelocknobootwait
选项... 它解决了什么问题? - william_grisaitisnobootwait
在Ubuntu 16.04中已被删除。https://askubuntu.com/questions/786928/ubuntu-16-04-fstab-fails-with-nobootwait - Doron Cohen创建一个在 /etc/fstab
文件中的条目。
该条目应类似于:
/dev/sdf /data ext3 defaults 1 1
这将会在重启时自动挂载该卷。
/dev/sdf /data ext3 defaults 0 0
是个好主意。 最后两个标志设置为0的含义是: <dump>
启用或禁用设备/分区的备份(命令dump)。该字段通常设置为0,表示禁用。 <pass num>
控制fsck在启动时检查设备/分区错误的顺序。根设备应为1。其他分区应为2,或者为0以禁用检查。(来自https://help.ubuntu.com/community/Fstab) - Ayush Gupta我建议使用一个/etc/init 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 的速查表中的所有代码。