[BUG] dd, floppy, 2.5.18

Stuart MacDonald
2002-06-06T18:17:16Z

# uname -a
Linux moll 2.5.18 #1 SMP Wed May 29 15:18:20 EDT 2002 i686 unknown

[insert floppy]
# dd if=/dev/fd0 of=diskette.image
8+0 records in
8+0 records out
# ls -alF diskette.image
-rw-r--r-- 1 root root 4096 Jun 6 11:49 test

This is obviously wrong. But a second try at it:

# dd if=/dev/fd0 of=diskette.image
2880+0 records in
2880+0 records out
# ls -alF diskette.image
-rw-r--r-- 1 root root 1474560 Jun 6 11:49 test

However:

# tar xvf diskette.image
wget-1.8.1.tar.gz
# cmp wget-1.8.1.tar.gz wget-181.tar.gz
wget-1.8.1.tar.gz wget-181.tar.gz differ: char 7681, line 34

So that's wrong too. This works under RedHat's 2.4.7-10, and has
worked previously in various 2.4 and 2.2 kernels.

I'm willing to help with some testing to figure out the problem; I use
this dd method to make diskette images for customers all the time, and
I will need it fixed for 2.6.x.

Some things I've noticed:
- the 8 records attempt always happens after a new media insertion. To
say it another way, the "good" 2880 attempt only happens on the second
and subsequent attempts on an already inserted floppy.
- I though I'd noticed that this would corrupt the floppy itself, but
have been unable to reproduce. May have been two bad floppies in a row
coincidentally.

..Stu