lkml.org 
[lkml]   [2006]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Ext2-devel] [RFC 0/13] extents and 48bit ext3
    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-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-06-15 11:53    [W:4.104 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site