#!/usr/bin/perl
#
# array before reshape:
#
# n: 0  1  2  3  4  5  6  7  8
# 0: 0, 5,10,15, X,20,25,30,35,
# 1: 1, 6,11, X,16,21,26,31, X,
# 2: 2, 7, X,12,17,22,27, X,32,
# 3: 3, X, 8,13,18,23, X,28,33,
# 4: X, 4, 9,14,19, X,24,29,34,
#
# after a reshape it might look:
#
# 0: 0, 6,12,18,24, X,30
# 1: 1, 7,13,19, X,25,31
# 2: 2, 8,14, X,20,26,32
# 3: 3, 9, X,15,21,27,33
# 4: 4, X,10,16,22,28,34
# 5: X, 5,11,17,23,29, X

use strict;
use English;

my $begin=152;		# ( Reshape pos / $rd_dev_a ) / chunk size
my $end=1276;		# Used Dev size / chunk size
my $rd_dev_a=5;		# of devs including redundant dev
my $failed_dev=3;	# of the bad dev in array
my ($cb,$db,$command);	# current block from source, dest block

for($cb=$begin;$cb<$end;$cb++){
	next unless (($cb+1+$failed_dev)%($rd_dev_a));	#skip X
	$db=$cb*($rd_dev_a-1)+(($cb+$failed_dev)%$rd_dev_a);
	$command="dd if=/dev/loop7 of=/dev/md0 bs=16k count=1 skip=$cb seek=$db\n";
	print ($command);
	system ($command);
}
