13

I have many 1.44MB floppies 20 years old or older. My FDD, which I just bought online and received recently, cannot read them. The FDD can often display the contents of a floppy, but not successfully copy many files to some other drive (I.E my C drive).

If I take a bad floppy, format it, put files on it, and read it back, then the files can be read successfully.

Is there a way to recover the data on these disks or is it mainly a hopeless cause? Are there super-sensitive drives that do a better job? Can partial sectors be retrieved or must it always be success-fail on a 512 byte basis?

Also, how come it can almost always successfully read the FAT table, yet only ever seem to be able to recover <10% of the content of the drive?

6
  • I would like to add, that if I format a disk with the FDD, I can later subsequently read the disk. So, at first glance I don't suspect an issue with the FDD. Commented Jul 9, 2020 at 18:21
  • There are certainly special tools for reading floppies. KyroFlux comes to mind, though I don't know whether it's useful for data recovery. Commented Jul 9, 2020 at 18:43
  • 2
    Welcome to RCSE! Your question is a great fit for this site, and I am sure you will find many people with relevant experience here. Would you able to add a little more detail to your question, such as any error messages you get when copy disks. It may be that the magnetic material has degraded due to poor storage, but it may also be a simple issue of head alignment or motor speed. Commented Jul 9, 2020 at 19:57
  • 2
    Do you have another floppy disk drive to test with. Yours may have gone out of calibration. Commented Jul 10, 2020 at 8:42
  • Also if your diskettes are single or double density and the drive is high density, that doesn't work very well. Commented Jul 10, 2020 at 8:44

4 Answers 4

16

It sounds like some blocks on the disk (particularly the ones containing directory information) are okay, but some (containing some file data) are not. This is a data recovery situation.

If you boot from a Linux LiveCD (or a flash drive built from one), you should be able to use the ddrescue tool which is designed for exactly this situation. It will find all the blocks that can be read (including with a small number of retries) and use them to construct a disk image that is at least mostly complete. It will then go back and try harder to read the bad blocks, and insert them into the image.

Open a terminal and try the following:

sudo ddrescue -b 512 -c 9 --idirect /dev/fd0 floppy.img floppy.map

Once it has finished, you'll find the two latter files in the home directory, where you can move them to more permanent storage. To make a fresh floppy disk from the image, try:

sudo dd if=floppy.img of=/dev/fd0 bs=9216

Obviously, don't try to use the original (bad) disk for that.

11
  • I know the 9216 is a common floppy controller, but is it actually a block size? I couldn't find a reference to that anywhere. Commented Jul 10, 2020 at 8:01
  • 1
    @chrylis-cautiouslyoptimistic- It's the number of bytes on an 18-sector track of a floppy disk; I chose it to make dd run relatively efficiently.
    – Chromatix
    Commented Jul 10, 2020 at 11:54
  • Will this approach work with a raspberry Pi? Commented Jul 10, 2020 at 13:31
  • @NicholasHill Presumably you're using a USB floppy drive, then. I can't vouch for such a thing, but you can try it. You don't say whether the disk in question is HD or DD; some USB floppy drives exclude support for DD disks.
    – Chromatix
    Commented Jul 10, 2020 at 14:03
  • 1
    @john_e Every guide I've read recommends GNU ddrescue as the more mature, better-maintained option. It also has the advantage that you can install a supplementary program named ddrescueview which polls the floppy.map file for updates and draws a defragmenter-like visualization of the recovery process.
    – ssokolow
    Commented Jul 12, 2020 at 11:34
6

You can try Unstoppable Copier that runs on Windows. I used it in the past for scratched CDs, and might work for you.

2

The PC floppy drive hardware is designed to convert sequences of pulses received from the drive head into a data stream in real time. As such, it must instantly decide whether each pulse is large enough to be detected, or should be rejected as noise, before it has a chance to observe anything beyond it.

It one has a floppy drive which has been modified to feed the drive-head signal as an analog output, and allows finer-than-usual control over drive head motion, it may be possible to extract data from disks that cannot be read via normal means. I've read of hobby projects to construct such things, but I don't know of any that would be practically usable outside the hands of data recovery services.

As a compromise, there are some devices which interface with conventional floppy drives but precisely capture the timing pulses received from them. I don't know how well the decoding software can deal with data errors (e.g. if any pair of pulses should be separated by either 2, 3, or 4 microseconds, a conventional drive might try to classify anything between 2.5 and 3.5 as 3, but if a track has two consecutive pulse intervals that are 2.4 and 2.6 microseconds long, while all other intervals are either less than 2.2 or greater than 2.8, recovery software might be able to conclude that particular edge is misplaced, and use the block checksum to determine what it should have been).

Software-based recovery tools may be able to extract data that would not be possible from Windows, but hardware-based tools with various levels of sophistication may do better. Unfortunately, while I would probably have the knowledge needed to build such tools, I don't have any information about how to find them.

0

20 years for 1.44 MB 3.5" HD is too long time for average FDC/FDD to read.

You need analog solution! So one that scan the surface and store the ADC measured values of the surface. Then detect sectors and data using adaptive thresholding ... I would not bother to try any digital only method related solutions for case like this. So look for FDD+FDC with ADCs instead of pure digital solution.

In my case I was in luck as i was recovering 15+ years 360KB 5.25" floppies and they where still functional so I was going for digital solution (no need for custom FDD). As the floppies where not compatible with PC FDC I needed custom FDC I ended up with this:

The FAT is usually on lower tracks. Track zero is the outermost one so it have bigger circumference (more magnetic material per bit while width of the track is the same hence more energy to remagnetize it) so the further inward track you go the sooner errors due remagnetization occurs hence the file data is corrupted sooner than FAT.

copying with Windows File Explorer is a bad idea. The standard file copiers usually stop on read error , try to reread invalid sector few times and then stop or even freeze entire OS once number of errors exceed some limit. What you need is instead of stopping ignore error and continue reading... One of the other answer is suggesting one... I ended up writing my own running from MS-DOS to read scratched CDs. However this will be still very slow (expect even hour or more to copy damaged floppy). Also ignoring error might work well on multimedia data but for programs it might not. Also CDs have self-correcting codes that floppies does not so errors on floppies will be much more worse...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .