Wednesday, October 28, 2009

Of Floppy Disks, HFS and Snow Leopard

Recently I started investigating the HFS issue in Snow Leopard. The issue is that now Leopard along with Snow Leopard no longer writes to or creates HFS volumes. This includes anything that can hold data. From floppy disks to USB flash drives to hard drives. Doing some investigative work specifically for floppy disks I found out several interesting things and ways around this problem.

1) Most modern USB floppy drives can read 1.4MB floppy disks (aka HD) and 720K floppy disks (aka DS/DD). But not 800K disks (typically HFS or ProDOS formatted) that were formatted on the floppy drive era of Macintoshes.

2) If you format a 720K floppy through Disk Utility on a pre-Leopard/post-Classic machine in Mac Standard with a modern USB floppy drive you can use that 720k Mac Standard (HFS) floppy on modern Macs. But that floppy will be read as a 300 or so kilobyte (I think it was 324K) floppy if you insert it into a floppy drive era Mac running Mac OS 9 or below. I'm guessing that there is potential for data corruption there due to the storage reporting difference. Most floppy drive era Macs can read 800K HFS or ProDOS floppies, 720K DOS floppies (FAT12) or 1.4MB floppies in compatible formats. Most floppy drives used in non-Mac x86 machines can only read 720K and 1.4MB floppies. This is how USB floppy drives work too. Note: I'm only talking about your basic floppy drives. Not the SuperDISK drives from Imation which hold (I think) 120MB or 140MB of data.

3) You can use the command "dd" in the Terminal to save an exact copy of an HFS formatted FDHD under any Mac OS X. Or for that matter any UNIX-like computer that can mount HFS volumes (there may be an equivalent in Windows if you use MacDrive by MediaFour). Then you can restore, essentially formatting and cloning, HFS FDHD's on your Mac OS X machine. This is how you do it:

First unmount (do not eject. There IS a difference) the nested volume under the floppy drive in Disk Utility (you can do this in the Terminal as well, I just forget the exact command). This will keep the floppy drive device active. Then type this in the Terminal:

dd if="/the path of the input file or device" of="/the path of the output file or device"

Typically you want to use the device path in one option (ie: /dev/disk1 or /dev/disk2 or wherever the command "df -h" tells you) and the image file path in the other option. Depending on whether you want to restore from an image file to a floppy or create an image file from a floppy.


To image a floppy disk.

dd if=/dev/disk1 of=/Users/[user name]/Desktop/BlankFDHD.img

Or the other way around to format, restore or clone a floppy disk.

dd if=/Users/[user name]/Desktop/BlankFDHD.img of=/dev/disk1

If there are spaces in your path then use quotes around the path. The brackets and the words in brackets ([]) are to be replaced by your user name on your computer.

Sadly this cannot be done for HFS formatted 800K floppies as I mentioned earlier as most USB floppy drives don't see 800K worth of floppy. Most of those drives have an FDHD 1.4MB mode and a 720K mode and that's it. I don't have a floppy drive era Mac running Mac OS X to test though so that may be a possibility if you can find a SuperDrive (the floppy drive Apple use to call the SuperDrive) driver for Mac OS X.

Essentially what you're doing is using an image file of a blank HFS formatted floppy disk made from a single HFS floppy to make more HFS floppies. Really just cloning blank floppies. The one scenario I can see this being used in is if you are using a Leopard Mac OS X Macintosh and you are nowhere near a Mac capable of formatting in HFS and you have a lapfull of floppies you want turned into HFS floppies for your museum quality vintage Mac SE back home. Not a likely scenario, but hey, if you want your HFS floppy formatting on your Leopard machine, there it is. BTW, HFS is the same as Macintosh Standard in Disk Utility. HFS+ is Macintosh Extended and its variants. Make sure you're using an HFS floppy that's using the full space of the floppy before you make that image file. A corrupted floppy can waste kilobytes of space. When formatting on, say, a Mac SE and you see the "Updating..." progress bar eat up your floppy's space. It's trying to make the floppy usable by formatting around the bad sectors so in the end you get a 1.2MB (or worse, less) out a 1.4MB FDHD which when formatted is supposed to give you 1.3MB in HFS format. In short, format your HFS floppy on a pre-Leopard/post-Classic Mac (Disk Utility is a lot better than the in-OS "Erase Disk" option in the Special menu on a Classic Mac. It gives you a full capacity floppy [nearly] every time). Also note that dd is a raw data copier. It copies exactly what it sees. If it sees a 1.0MB HFS floppy instead of a 1.4MB HD capacity/1.3MB readable HFS floppy like it should then it makes a 1.0MB image file not a 1.3MB one (which is 1.5MB in the Finder as a file). This will clone 1.0MB floppies and that's not what you want.

And of course you can use dd to "burn" those floppy image files you get from the net onto floppies.

Why would you want to do this? Well, if you don't have floppy disks or a floppy drive and/or a vintage Mac then this doesn't apply to you. Why would you want to fool around with HFS when HFS+ (or insert your favorite file system like ext3 or ZFS) is so much better? AGAIN,
if you don't have floppy disks or a floppy drive and/or a vintage Mac then this doesn't apply to you if you'd rather use non-legacy formats. Trust me, I know why you'd want to use non-legacy formats. This is often the route I'd take if I didn't have to deal with vintage hardware (along with a paperless office and using solar energy instead of grid energy). But there are a lot of people out there who still enjoy playing around with the older formats and hardware and to them this is important. This isn't a "what's better" HOWTO. This is a "what's compatible" HOWTO.


Andrew Lazarus said...

The 400K and 800K floppies from 1980s-90s Macs are recorded differently than the 720/1.4MB. Wozniak write a variable speed floppy drive controller so that the early Macs could eke extra space out of the outer rims of the floppy. But like Betamax, the inferior idea is everywhere.

ThePenciler said...

Too true. However, if you do format in FAT12 (PC format) on a Mac then you can use that 1.4 MB floppy on that Mac as well as on a Mac running Mac OS X and a Windows/Linux PC. Only problem is that the resource fork is not saved on the PC formatted floppy. Just have to make sure you save data fork type files to the floppy.

If you do format a 1.4 MB floppy in Mac Extended (HFS+) format in Mac OS 9 on a PPC Mac then that can be read by modern Macs under Mac OS X. I can't remember if Mac OS 8.0 formatted HFS+ floppies as well though. I think that was around the introduction of HFS+. 68k Macs definitely couldn't format in HFS+ though (Unless Mac OS 8 allowed you to, but Mac OS 7.5.5 and 7.6 definitely couldn't). I can't remember if HFS+ was PPC only though. Definitely not HFS+ Journaled back then (I don't think).

It's the 720/800k floppies that would give people the most trouble though if they expect universal operation across different eras of Macs. I wouldn't even attempt to try 400k floppies. What I'd do for the low capacity floppies is I'd backup the data off of them and either transfer the data by network or on 1.4MB floppies if floppies must be used. Floppy images also are a good choice (more portable).

Root for the Bad Guys Productions said...
This comment has been removed by the author.
Yuhong Bao said...

"The issue is that now Leopard along with Snow Leopard no longer writes to or creates HFS volumes."
Leopard still does, Snow Leopard doesn't.
Also, you can create a HFS 1.44MB disk image directly using Disk Utility, or on older Mac OS versions Disk Copy, or from the command-line using hdiutil create, on Mac OS versions before Snow Leopard and bypass the bad block sparing. Then you can attach it using any version of Mac OS X using hdiutil attach with the -nomount option to get a /dev device that you can use dd with

Leo Walker said...

I am glad to read this informative blog.
The loss of information almost always leads an end user to a a sense of discouragement.
A range of recover file techniques happen to be developed by the experts, which would mean that a user might effortlessly recover his lost info.
In case there is a removal of data situation, an individual need to have a preliminary understanding of ideal information retrieval tool.
outlook 2007 inbox repair tool