Hi! > >> >Passes 8 hours of me trying to intentionally break it with weird, > >> >artifical disk corruption. > >> > > >> >I even have script somewhere. > >> > >> Ok, thanks for clarifying. > > > >You can get a copy, it would be interesting to know how JFS/XFS does. > > Ok, I would be interested in getting a copy. (Maybe it would be good > to post it in public so that other people can try it too.) It needs some hand-tuning to do maximum damage to the filesystem, yet keeping filesystem "recognizable". It also depends on fsck returning reasonable error codes... Pavel #!/bin/bash # # fscktest # # Usage: # Make sure output is logged somewhere # First, run fscktest -p as root # Then you can run fscktest as normal user... # prepare() { SIZE=100000 echo "Creating file..." cat /dev/zero | head -c $[$SIZE*1024] > test echo "Making filesystem..." mkfs.$FS test echo "Mounting..." mount test -o loop /mnt || exit "Cant mount" echo "Copying files..." cp -a /bin /mnt cp -a /usr/bin /mnt cp -a /usr/src/linux /mnt echo "Syncing..." sync echo "Unmounting..." umount /mnt echo "Moving..." mv test fsck.okay echo "All done." } FS=ext2 if [ .$1 == .-p ]; then prepare exit fi RUN=0 while true; do RUN=$[$RUN+1] echo "Run #$RUN" echo Preparing... cat fsck.okay > fsck.damaged echo Damaging... dd if=/dev/urandom of=fsck.damaged count=10240 seek=7 conv=notrunc cp fsck.damaged fsck.test echo First check... fsck.$FS -fy fsck.damaged RESULT=$? if [ $RESULT != 1 -a $RESULT != 2 -a $RESULT != 0 ]; then echo "Fsck failed in bad way (result = $RESULT)" exit fi echo Second check... fsck.$FS -fy fsck.damaged RESULT=$? if [ $RESULT != 0 ]; then echo "Fsck lied about its success (result = $RESULT)" exit fi done -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html