imsm_check() {
case $1 in
container )
- grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
+ grep -s " blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
mdadm -CR $member3 $dev3 $dev4 -n $num_disks -l $level -z $size
mdadm -CR $member4 $dev4 $dev5 -n $num_disks -l $level -z $size
+udevadm settle
+
offset=0
imsm_check member $member0 $num_disks $level $size $offset
offset=$((offset+size+2048))
imsm_check member $member1 $num_disks $level $size $offset
offset=$((offset+size+2048))
imsm_check member $member2 $num_disks $level $size $offset
-offset=$((offset+size+2048))
-imsm_check member $member3 $num_disks $level $size $offset
# at this point there should be more freespace at the start of the disk
# than the end
offset=0
+imsm_check member $member3 $num_disks $level $size $offset
+offset=$((offset+size+2048))
imsm_check member $member4 $num_disks $level $size $offset
udevadm settle
case $1 in
container )
- grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
+ grep -s " blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
imsm_check container $num_disks
# RAID0 + RAID1
-size=10000
+size=9000
level=0
chunk=64
offset=0
testdev $member0 $num_disks $size $chunk
offset=$(((size & ~(chunk - 1)) + 2048))
-size=5000
+size=4000
level=1
chunk=0
mdadm -CR $member1 $dev0 $dev1 -n $num_disks -l $level -z $size
mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
imsm_check container $num_disks
-size=10000
+size=9000
level=10
chunk=64
offset=0
testdev $member0 $((num_disks-2)) $size $chunk
offset=$(((size & ~(chunk - 1)) + 2048))
-size=5000
+size=4000
level=5
mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
imsm_check member $member1 $num_disks $level $size $offset $chunk