[21522] in Athena Bugs
Solaris floppy lossage (?)
daemon@ATHENA.MIT.EDU (John Hawkinson)
Wed Feb 26 16:48:18 2003
Date: Wed, 26 Feb 2003 16:48:14 -0500 (EST)
Message-Id: <200302262148.QAA27687@multics.mit.edu>
To: bugs@MIT.EDU
From: John Hawkinson <jhawk@MIT.EDU>
A user came into the SIPB office today with a floppy she'd been using
under Windows, after windows claimed a "disk full" condition, and then
refused to read from the floppy again and only offered to format it.
I didn't take a careful transcript at the time, but only afterwards
realized somethin was wrong.
Initially, I tried dd-ing data off of the floppy on coleco-sidewinder
(9.1.22 Solaris). After volchecking and then "dd
if=/vol/dev/aliases/floppy0 conv=noerror,sync", dd would only read the
first 16 blocks before stopping, and gave me output files like:
-rw-r--r-- 1 jhawk mit 8192 Feb 26 10:51 flop1
When I'd tried with bs=18k initially (which I realized was an error
because I'd lose 36 blocks instead of 1 block on an error), I got a larger
file:
-rw-r--r-- 1 jhawk mit 92160 Feb 26 10:50 flop
In any case, with 512b blocks, I found that even skip=16 was not sufficient
to cause dd to keep reading past the 16th block. This seems very odd to me.
It should keep reading even if every read fails, right?
In any case, I moved to a linux machine and was able to read the
entire disk with "dd if=/dev/fd0a conv=noerror,sync", albiet with some
errors early on. Further, mtools was able to extract the data just fine.
I think this means something is wrong with Solaris' floppy driver, or with
dd itself. Data after the first 8k should still be addressable, even if it
is unreadable.
--jhawk