有条件地格式化EBS卷

由于AWS EBS卷可以比EC2机器寿命更长,因此我想编写一个在引导时运行在EC2机器上的脚本,并挂载EBS卷,如果格式化尚未格式化,或者挂载(如果已经存在)。

理想情况下,我正在寻找能够通过“不格式化已经格式化”标志为mkfs

我不是那么熟悉所有这些,所以我可能错过了一些东西。 但最简单的方法似乎是装入卷,尝试访问文件系统,然后卸载它并格式化,如果不起作用。 这有点粗糙,我相信有更好的东西:

 #!/usr/bin/env bash # Provision Script to mount EBS volumes. # If there's an EBS volume then format and mount it. if [ -b '/dev/xvdh' ]; then echo "Mount EBS disk if not mounted." if grep -qs '/mnt/persistent' /proc/mounts; then echo "Already mounted." else sudo mount /dev/xvdh /mnt/persistent if `touch /mnt/persistent` ; then echo "Mounted and formatted." sudo chown ubuntu /mnt/persistent echo /dev/xvdh /mnt/persistent ext4 defaults,nofail 0 2 | sudo tee -a /etc/fstab else echo "Not formatted!" sudo umount /mnt/persistent sudo mkfs -t ext4 /dev/xvdh sudo mkdir -p /mnt/persistent sudo mount /dev/xvdh /mnt/persistent echo /dev/xvdh /mnt/persistent ext4 defaults,nofail 0 2 | sudo tee -a /etc/fstab sudo chown ubuntu /mnt/persistent fi fi else echo "Not mounting EBS disk, not found." fi 

有没有更好的方法来有条件地格式化一个卷?

我正在使用Ubuntu AMI。