Restoring files from AppleBackup archives

Anything about Mac emulation that does not belong in the above categories.

Moderators: Cat_7, Ronald P. Regensburg

Post Reply
User avatar
adespoton
Forum All-Star
Posts: 4226
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Restoring files from AppleBackup archives

Post by adespoton »

Back in the 90s, Apple released a tool with each Performa computer called Apple Backup that backed up the entire hard disk and/or the default System files to segmented files across floppy disks.

This software would only back up a SCSI disk, and would only restore to a SCSI disk when booted from the created boot floppy/CD.

I've just finished step 2 of 3 to restoring files from these backups :)

https://github.com/adespoton/kaitai-app ... ree/master

Step 1 allows us to parse any of the archive segments and read back the contents.

Step 2 was creating a parser for MacBinary III

Step 3 will be writing a tool that will take a folder full of Apple Backup segments and convert it to folders filled with MacBinary files :)

Feel free to try out the tools at the link above. You can load up the Kaitai Web IDE, load in the .ksy file and a backup file, and it'll read out the contents :) The format of MacBinary is very similar, so I'm planning to compile as a python script that'll just do a bulk convert. Then you just need to use Stuffit Expander to extract the MacBinary files once they're in the right place.

If anyone has a bit more spare time than me, feel free to beat me to the punch and/or make something fully featured and/or in a different language Kaitai Struct can compile to.
User avatar
adespoton
Forum All-Star
Posts: 4226
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: Restoring files from AppleBackup archives

Post by adespoton »

If anyone wants to help, I've now got the kaitai struct for AppleBackup and MacBinary formats on https://github.com/adespoton/kaitai-app ... ree/master and have also added some pseudocode for converting an AppleBackup set to a folder structure of MacBinary files. This should allow the intrepid coder to compile the structs to the language of their choice and then write the pseudocode equivalent in that language to do the extraction.

I'll eventually get around to writing this out in Python, but if anyone else has spare cycles, feel free to write something yourself. You can even commit it back to my project if you want :)

It's also possible to do the same thing but write from AppleBackup to disk image format; NDIF is a bit of a headache, so writing inside a DMG container would probably be more useful. The AppleBackup archives contain all the disk headers, so these can be written back to create a disk image that looks exactly like the original drive that was backed up with Apple Backup. I haven't done any of that :)
Post Reply