Amiga Fast File System Recovery (affs)

Posted: November 2009
Updated: March 9, 2019


Amiga Recovery is a program that can read Amiga Fast Filesystem (AFFS) disk images and recover files off of them. I originally called this program Amiga Explorer but recently changed it because the name conflicted with another project. Next time I'll Google for the name first :).

So my main computer I used through the 1990's was an Amiga 4000. Actually, this was the first computer I installed Linux on even. I haven't used the computer in a while since I think there is a problem with the keyboard (I still need to order either a new keyboard off eBay or one of those PS2 to Amiga adaptors). Anyway, I thought there might be files I wanted on the two 1.2 GB harddrives I installed in there, so I pulled them out, put them in harddrive sleds, booted the Gentoo x86 live cd, and typed:

dd if=/dev/sda of=/nfs/amiga1.img bs=512

... or some such similar command to dump the harddisk over my network safely onto another computer. So Linux is supposed to be able to mount AFFS images (yes I included Amiga partition support), but when I tried to mount it I kept getting the error "AFFS: No valid root block on device loop0", so I started writing Amiga Recovery. Amiga Recovery can dump the partitions so they can be mounted with Linux, plus it can cd into directors, get listings, and copy files off the Amiga partition into Linux. An example of how to copy a partition so you can mount it on Linux:

dd if=/dev/sdb of=amiga.img bs=512
./amiga_recovery amiga.img
cd hd0:
dump partition hd0.img
mount hd0.img /mnt/amiga -t affs -o loop

If you need help with this program, find bugs, or find it useful and just want to let me know someone else is using this, feel free to drop me an email (address is listed below).

Related Projects

File Parsers: print_pe, magic_elf, dump_fat, amiga_recovery, dump_d64, java class
Amiga: amiga_recovery, Amiga Java



  • Built in shell for a user interface
  • List all partitions on an image in an fdisk-like format
  • Print bootblock, rootblock, partition info in debug format
  • Change directory into disk volumes and into directories
  • Get directory listing of current directory
  • Dump a raw partition to disk
  • Get a file off the Amiga image to the local system
  • Type a text file to the screen without copying it locally
  • Recursively copy all files off of an AFFS partition to the local file system

The last feature I plan to add is a mirroring feature so that every file/directory on a partition can be recursively copied to the local disk like with cp -r on Unix.

How To Use

If you downloaded the source code for Unix, make sure you have a C compiler (such as GCC) installed. Untar the archive and type: make

So I guess the first step is to dump the image of the harddrive. This can be done with a command similar to the "dd" command I used above. After dumping the image type: ./amiga_recovery /path/to/image/image.img

You'll now be greeted with a prompt. Typing help will give a list of commands. The first thing you'll probably want to do is see what the volume names are on the image. Type: show partitions

Now you can cd into that volume with a simple cd command: cd hd1: for example. From there you can type dir or ls to get directory listings, cat or type to read the contents of a text file, and get to copy it to your local harddrive. If you think you can mount a single partition you can do: dump partition filename.img to copy it out of the disk image.

This program is in BETA condition. I pretty much threw it all together in about a day as quickly as I could so there are a couple quirks in there plus the source code is a little goofy at some points. Use it your own risk.


Copyright 1997-2024 - Michael Kohn