[ It's great when you can pass on knowledge and other "see the light" and
pass it on in turn :-))
]
Whereas Tom has does it "for real" with his many GB of data depending on it, I
have never run a RAID5 array (other than 3 cylinders on a single disk!) so am
free to postulate from my ivory tower ....
I appear to have missed the original message, and whereas I pretty much agree
with all that has been suggested, but have a few little concerns ....
Before you do anything, ensure you ZAP the broken disk (sda1) !
I don't know how RAID5 works, but it might be willing to reconstruct even if
it can't get a complete set of event counters. I take this not to be the case,
or I suspect you wouldn't be in your current position !
Anyway, the simplest HACK is to change the partition table to be something
other than 0xfd. If sda1 is < 2GB, I have a perl script to manipulate the SB
(of course, I didn't see that limitation when testing on 4MB partitions!).
Otherwise, if all else fails, use dd to ZAP the SB.
Try using "mkraid --debug /dev/md0" [ I have HACKed mkraid so as not to need
the unused argument -- I suggest you use a /dev/md* which does not exist,
"just in case" it tries to actually do something ] to dump the kernel's view
of the disks. Again, if < 2GB, I my perl script can dump the SB info for you.
Failing that, it should be simple to write a C programme which can do the
necessary seek and grab the data, so that my script can process it.
My understanding is that "failed-disk"s are totally ignored, and just left as
holes. In any case, I tend to use "/dev/null" as the failed disk "just in
case". My belief is thus that a reboot or whatever will not do any harm, and
will not try to bring the broken disk back into use. However, using
"/dev/null" in /etc/raidtab will ensure that it cannot !
When you had done the raidhotadd, don't forget to update /etc/raidtab, as it's
always good policy to keep it up to date "just in case" (my script generates
/etc/raidtab format files from the data on disk, so I always have up to date
info saved on another machine !)