mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul <krushka@iprimus.com.au>
To: linux-kernel@vger.kernel.org
Cc: Rogier Wolff <R.E.Wolff@BitWizard.nl>
Subject: Re: Fwd: File system corruption
Date: Wed, 8 Jan 2003 21:35:32 +1000	[thread overview]
Message-ID: <03010821353200.01198@paul.home.com.au> (raw)
In-Reply-To: <20030107130832.A4953@bitwizard.nl>

Roger,

Thanks for the programme Roger!

I'm not sure if I did this right but.....

I ran the programme as follows: (I called it sandisktest :)

# ./sandisktest -b | dd of=/dev/hdc

then I dd'd the image of the flash disk to my local disk and viewed the file 
through midnight commander.

What I have found is that just after the start of a sector, usually 43 to 45 
bytes, 6 bytes are skipped and the sequence starts again.  This continues 
until the next sector starts, where the sequence corrects.  This appears to 
happen every 65536 bytes or some multiple of 65536.  It may skip three blocks 
of 65536 and then corrupt on the next block of 65536 bytes.

I would greatly appreciate some other ideas to try, I'm not game to start 
hacking the kernel code quite yet :)

Paul.

BTW:  I also tried a EXT2 FS and it corrupted files just as the FAT16 
filesystem had.

On Tue,  7 Jan 2003 10:08 pm, Rogier Wolff wrote:
> On Mon, Jan 06, 2003 at 03:06:20PM +0000, Alan Cox wrote:
> > Might be interesting to see what it does given a totally not FAT
> > environment (eg fill the disk start to end with each sector filled
> > with its sector number repeatedly) and see what comes out the other
> > end.
>
> How about the following program to do this.
>
> 			Roger.
>
>
> /* Written By R.E.Wolff@BitWizard.nl
>  *
>  * This program is distributed under GPL. */
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <string.h>
>
> int main (int argc, char **argv)
> {
>   int i;
>   int ascii = 0;
>   int size = 512;
>   long long secno;
>   char *buf;
>   int s;
>
>   for (i=1;i<argc;i++) {
>     if (strcmp (argv[i], "-a") == 0) {
>       ascii = 1;
>     }
>     if (strcmp (argv[i], "-b") == 0) {
>       ascii = 0;
>     }
>
>     if (strncmp (argv[i], "-s", 2) == 0) {
>       if (strlen (argv[i]) > 2)
> 	size = atoi (argv[i]+2);
>       else
> 	/* Sorry. Will crash if you specify -s as the last argument */
> 	size = atoi (argv[++i]);
>     }
>   }
>
>   buf = malloc (size + 16);
>
>   if (!buf) {
>     fprintf (stderr, "Can't allocate buffer.\n");
>     exit (1);
>   }
>
>   secno = 0;
>   while (1) {
>     if (ascii) {
>       sprintf (buf, "%lld\n", secno);
>       s = strlen (buf);
>       for (i=s;i<size;i+=s)
> 	sprintf (buf+i, "%lld\n", secno);
>     } else {
>       for (i=0;i<size;i+=sizeof (long long))
> 	*(long long *)(buf+i) = secno;
>     }
>     if (write (1, buf, size) < 0)
>       break;
>     secno++;
>   }
>   exit (0);
> }

  reply	other threads:[~2003-01-08 11:20 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-06 11:38 Paul
2003-01-06 15:06 ` Alan Cox
2003-01-06 14:31   ` Arjan van de Ven
2003-01-07 12:08   ` Rogier Wolff
2003-01-08 11:35     ` Paul [this message]
2003-01-08 14:15       ` Alan Cox
2003-01-08 13:55         ` Rogier Wolff
2003-01-31 12:12           ` Paul
2003-01-08 13:38     ` Paul

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=03010821353200.01198@paul.home.com.au \
    --to=krushka@iprimus.com.au \
    --cc=R.E.Wolff@BitWizard.nl \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®