当组件设备可能包含ext2文件系统时,脚本mdadm已经

我想使用mdadm来编写m1.large EC2实例上的两个临时存储设备的条带(显然,amis并不总是包含设备信息,所以一旦数组启动后,我不能只创build一个新的ami)。

问题是,EC2实例上的临时存储通常是用文件系统预先格式化的,导致mdadm说:

mdadm: /dev/sdb appears to contain an ext2fs file system size=440366080K mtime=Mon Jan 2 20:32:06 2012 mdadm: /dev/sdc appears to contain an ext2fs file system size=440366080K mtime=Wed Dec 31 19:00:00 1969 Continue creating array? 

并等待input。 我敢肯定有一种方法可以在mdadm中为非交互式情况(例如在fsck -y中)自动回答yes,但是我似乎无法弄清楚(不是–force)。 我知道我可以用dd来清零这些设备,但这似乎是一个相当大胆的解决scheme,我相信很容易做到。

你有没有尝试在标准的Unix / Linux“是”命令的输出管道?

 yes | sudo mdadm ...options and arguments... 

只有当你知道你想回答“是”时,才会使用这个问题,mdadm可能会问你。

这是我在示例mdadm命令中使用的使用RAID-0 EBS卷设置40 TB文件系统的方法: http : //alestic.com/2009/06/ec2-ebs-raid

我在启动执行光盘剥离的m1.largem1.xlarge实例(RAID-0)时运行脚本。 这是一个简化的版本(假设它是m1.large):

 echo "Unmounting /mnt..." /bin/umount /mnt echo "Creating RAID0 volume..." /usr/bin/yes|/sbin/mdadm --create /dev/md0 --level=0 -c256 --raid-devices=2 /dev/sdb /dev/sdc echo 'DEVICE /dev/sdb /dev/sdc' > /etc/mdadm.conf /sbin/mdadm --detail --scan >> /etc/mdadm.conf echo "Creating file-system..." /sbin/blockdev --setra 65536 /dev/md0 mkfs.xfs -f /dev/md0 echo "Mounting the device /dev/md0 to /mnt..." /bin/mount -t xfs -o noatime /dev/md0 /mnt echo "Registering in fstab.." /bin/mv /etc/fstab /etc/fstab.orig /bin/sed '/\/mnt/ c /dev/md0 /mnt xfs defaults 0 0' < /etc/fstab.orig > /etc/fstab 

要回答你的问题,正如已经提到的,你可以输入yes