I am planning to have a bit of a weird array. I have 2 new 3TB drives and 2 old 750GB drives running around. I want to have a "backup array" running RAID5, and a "junk array" using linear. So, I intend to create a 350GB partition on each drive and use that for the RAID5 array, and then use the rest of the space to create partitions and join them into one big linear array - easy stuff.

The problem comes, however because 2 years down the line, i will probably want to replace those old 750GB drives with bigger ones - let's say we'll have 6GB at that time. The RAID5 part should be easy - just replace the drives one by one, create the blank partition, and join it to the array and let mdadm do the magic. The linear array, however is what I'm a bit clueless about. I was thinking I'll start by creating large partitions on the new drives and dd the partitions that form part of the linear array from the old drives to the new ones. Assuming that will work, I will then want to do something useful with that free space. Yes, one option is to create new small partitions in the free space and join it to the array, but I think that's kinda messy. The ideal way would be to somehow convince mdadm to recognise that the partitions grew and re-arrange the mappings. Is such a thing possible?