here is a possible way to run badblocks inside the installer, it is untested
you need a usb flash disk of at least 20M
with and e2 filesystem on it (has to be e2, fat will bark with hardlinks)
start the computer with install cd in with the usb disk plugged in
this will load the usb modules usb-storage and so on
select linux text and proceed to welcome to centos screen
ctrl-alt-f2 during the install will give you a shell as uid=0
mount the usb disk, there is an apparently unused folder /oldtmp in the root fs, use it for mount point
mount -t ext2 -o rw /dev/sda1 /oldtmp
cp -r /usr/sbin/* /oldtmp
oldtmp now contains what is also in /usr/sbin but you can write to it
cd /oldtmp
note that mke2fs, mkfs.ext2 and mkfs.ext3 all exist, there were hardlinks to same inode in original /usr/sbin
are separate files in copy, it doesn't matter
assuming the installer calls mke2fs lets rename it to mke2fs-bin
mv mke2fs mke2fs-bin
now use an editor to create a script called mke2fs containing
do not use echo "mke2fs-bin -c $1 $2 $3 $4 $5 $6 $7" > mke2fs the parameters will be replaced with nothing
e.g. joe mke2fs
echo "hello I'm the mke2fs script"
mke2fs-bin -c $1 $2 $3 $4 $5 $6 $7
add as many parameter options as might be necessary
you might want -c -k to not test existing known bad blocks
save it
make it executable with chmod a+x mke2fs
cd /
umount /oldtmp
mount -t ext2 /dev/sda1 /usr/sbin
your copy of /usr/sbin now replaces the original one
verify that running mke2fs runs your script by typing mke2fs
you should see
hello I'm the mke2fs script
followed by usage instructions
carry on with the installation
note you might need to do the same thing for mkswap which also takes a -c option
might not play well with lvm or raid etc.