« Back to Posts

Quicken, rsync, and resource forks

Aug 13, 2007

Instructions for how to recover data from Quicken Files after using rsync to backup on OS X causes Quicken to give an "unable to load file" error.

The other week I took my iBook to the Apple Store to have a hinge replaced and they had to send it off for repairs. For some reason Apple decided to replace the harddrive while they were at it. Luckily, I keep a backup of my files on an external harddrive–as you should too–so it was time to recover them.

However, when I went to open my Quicken file, it decided to inform me that it was “unable to load file.” After a number of hours of research (I’d had this problem before, but just restarted my file instead of fixing it), I discovered that it had to do with the fact that I used rsync to backup my data.

Evidently Quicken uses resource forks to store data in its files in OS X, which are not preserved by rsync. After even further research I discovered a page that vaguely described how to fix the problem. So I decided I should post a description of the solution for those who follow me.

Problem

When trying to reopen a backed up Quicken file on OS X, Quicken says “unable to load file.”

Solution

Edit (1/8/07): Thanks goes to Clement for pointing out that you will need Xcode 2 and at least OS X 10.4 installed for this to work. You can download Xcode from Apple’s website.

  1. Create a directory on your desktop, we’ll call it “dir” and move a copy of your Quicken file in their, we’ll call it old.qdfm.
  2. Use Quicken to create a new Quicken data file, new.qdfm, and copy it into the same directory.
  3. Open Terminal (in Applications -> Utilities -> Terminal).
  4. Go to the directory. (Type “cd /Users/~username/dir/”).
  5. Run the command “/Developer/Tools/SplitForks new.qdfm”.
  6. Understand that the .qdfm file is actually a folder, and we’ve split the resource forks on the folder and the files in it into hidden files with the same names. So now execute a series of commands:
    “mv ._new.qdfm ._old.qdfm”
    “mv new.qdfm/._* old.qdfm/”
    “mv new.qdfm/Contents/._* old.qdfm/Contents/”
  7. Run the command “/System/Library/CoreServices/FixupResourceForks ./”
  8. You should now be able to open old.qdfm in Quicken and see your data.

Difficulties

  • When you first open your restored file, it may say “Accounts cannot have subcategories.” This appears to be a one time error, so don’t worry about it.
  • All my accounts lost all the category data, where I had classified everything as various types of expense or income. I couldn’t figure out any way to solve this. (Update--see note below.)
  • When I went to reconcile an account it seemed to decide I was several hundred dollars off, claiming the account did not match the data from my last statement. I never figured this out either, and it always gave me warnings when I reconciled, wanting to adjust my balance.

So in the end, I started a new file again anyway. But I was able to print out my registers and accounts, so I could have a record of the data. Hopefully this howto helps someone who encounters the same problem. Feel free to ask questions.

Update (1/8/07)

Evidently this is a problem that can also occur with Subversion (and, I would presume, CVS) because they also don’t respect resource forks. Perhaps there is a way of putting the Quicken file inside of a disk image so that when copied it retains all the filesystem information?

Update (7/6/15)

Seems this is still out there helping people. Good to know. A note about the categories from Greg:

Side note: regarding your comment "All my accounts lost all the category data, where I had classified everything as various types of expense or income. I couldn’t figure out any way to solve this." I had this same problem when I used a new blank file for the "new.qdfm." But, when I took the resource fork from the latest good backup file, the categories were just fine. In my case, the transactions had been significantly updated since the last good backup, but the file structure of accounts & categories was the same. Thus, there must be some category information or mapping in the resource forks.