Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 May 2001 15:11:16 +0930
From:      Greg Lehey <grog@lemis.com>
To:        "Brian W. Buchanan" <brian@CSUA.Berkeley.EDU>
Cc:        hackers@freebsd.org
Subject:   Re: fd driver hacking to recover data
Message-ID:  <20010510151116.L56501@wantadilla.lemis.com>
In-Reply-To: <Pine.BSF.4.21.0105092153220.3063-100000@thought.adamantsys.com>; from brian@CSUA.Berkeley.EDU on Wed, May 09, 2001 at 10:04:34PM -0700
References:  <Pine.BSF.4.21.0105092153220.3063-100000@thought.adamantsys.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday,  9 May 2001 at 22:04:34 -0700, Brian W. Buchanan wrote:
> Any fdc driver gurus in the house?
>
> I have a bunch of old floppy disks with some text files I'd like to
> recover.  Many of them have errors and are unreadable past a certain point
> in the disk.  Others I can't read from at all.
>
> The ones I can't read, period, are all 1.44MB-size floppies.  I've tried
> dd'ing from /dev/fd0c, /dev/fd0.1440, etc., but exits with "Input/Output
> Error" before copying anything.
>
> The kernel prints:
>
> fd0c: hard error reading fsbn 0 of 0-31 (ST0 40<abnrml> ST1 1<no_am> ST2 0
> cyl 0 hd 0 sec 1)
>
>
> I've been more successful reading 720K floppies from /dev/fd0.720, but
> many of them have errors that stop dd in its tracks, yielding another
> Input/Output error.
>
> The kernel prints:
>
> fd0c: hard error reading fsbn 1503 of 1488-1503 (ST0 44<abnrml,top_head>
> ST1 20<bad_crc> ST2 20<bad_crc> cyl 41 hd 1 sec 10)
>
>
> Since the files on the disks are just text, all I want to do is to be able
> to extract as many of the bits on the disk as possible, even if some of
> the bits are wrong, and then run strings over it and sort out the
> content.  I've looked at the floppy driver source and it seems to be
> incredibly low-level, i.e. it turns the drive motor on and off, even.  Can
> someone familiar with the driver give me some pointers as to what I'd have
> to modify to let it 1) read those 1.44MB disks, and 2) tolerate data
> errors?

One possibility that I've used in the past is to use a 'read track'
command.  This was back in the days of 8" floppies, but I think the
controllers still understand it.  Basically the command starts at the
index mark and transfers data with no kind of interpretation until the
next index mark.  It's up to the program to then find the start of
each sector and extract the data.  If you're up to this kind of hack,
I can check for more details.

Greg
--
Finger grog@lemis.com for PGP public key
See complete headers for address and phone numbers

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010510151116.L56501>