I’ve been doing a lot of experimenting lately with USB boot devices, Linux system and partition tools, etc.
MFSTools is certainly handy for working with TIVO drives
The Ultimate Boot CD is also quite handy for partitioning etc.
I’ve also been a long time user of SpinRite for testing disks, and it’s still going strong (although writing a pure assembly Windows App just seems like a little slice of hell to me).
In digging around the Ultimate Boot CD, though, I noticed that it uses a dynamic boot loader that essentially allows it to boot up images of boot disks. Most of the utilities included with the package are actually in the form of IGZ image files that the boot loader boots from a stripped down Linux Menu system.
It’s a pretty slick approach and it’s extensible too. You can actually create your own IGZ files, put them in place on the Ultimate Boot CD, add a few lines to the menu cfg files and reburn the CD. Then you can boot to basically any boot disk you want.
If you’re like me, you probably have an “emergency kit” of several CDs and floppies to resort to when things go bad. Many of my floppies are getting a bit long in the tooth, so I thought it might be a good idea to capture them as images, so that in case the floppy does fail, I could simply rewrite a new copy from the image.
But if I can boot directly from the image using the UBCD loader, well, even better. And if I get the UBCD moved to a bootable USB device? System recovery nirvana!
So, how to capture an image of a floppy?
There’s several commercial packages out there that sound like they’d do the job, including:
Of these, AllImage looked the most promising, but I really wasn’t wanting to spend money on something as trivial as this.
That led me to Windows DD.
This is a native Windows version of the Linux DD utility, which can do this job under linux.
To create an img of a floppy in Drive A, just use:
dd if=\\.\a: of=c:\temp\disk1.img bs=1440k
And to write the image back to a floppy:
dd if=c:\temp\disk1.img of=\\.\a: bs=1440k
The bs (block size) option is just a speed thing. You can leave it off and DD will work. It’ll just be a lot slower. If you’re creating an image of bigger disks (say, a CD), you might might use bs=1M (1 megabyte).
Pretty simply stuff. The only downside I’ve noticed so far is that it literally makes an image of the entire source drive, including sectors that don’t really contain data, but that do contain old data that’s been deleted. This has the effect of making the image MUCH bigger than it needs to be, and prevents it from compressing well. I’m not sure how to work around this yet.
For UBCD integration, however, what you really want is an IGZ file.
Turns out, an IGZ is just a GZIPed IMG file.
But Gzip is NOT WinZip. WinZip (and most other ZIP utilities) will read Gzip files, but you have to explicitly create a Gzip format file.
You can grab a copy of GZip for Windows here, or you can use the GUI-licious IZarc to do the heavy lifting. Just be sure to specify the TAR.GZIP format when compressing your image.
When it’s finished, rename the file *.IGZ (instead of the *.tar.gz) and you’re golden.
Final word of caution, DD can be a pretty nasty little bugger, as evidenced from the Anti-Examples on the DD Wikipedia page, but then, FORMAT can be nasty as well.
Just watch your typing, and you should be fine. But, if you doubt yourself, spend a few bucks and grab a copy of AllImage or WinImage.