Quicken, rsync, and resource forks
Summary: 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.
- 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.
- Use Quicken to create a new Quicken data file, new.qdfm, and copy it into the same directory.
- Open Terminal (in Applications -> Utilities -> Terminal).
- Go to the directory. (Type “cd /Users/~username/dir/”).
- Run the command “/Developer/Tools/SplitForks new.qdfm”.
- 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/” - Run the command “/System/Library/CoreServices/FixupResourceForks ./”
- 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.
- 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?
I was really grateful to have come across your solution when I tried to restore my Quicken data to a Powerbook from a rsync’ed backup today. However, there were a couple of problems I encountered:
1) There was no /Developer directory nor Splitforks in my 10.3 install, and I finally tracked it down through the Apple Developer Connection site (http://developer.apple.com/) and downloaded Xcode v1.2
2) When I splitfork’ed the newly created qdfm file, there was no hidden files created – no ._new.qdfm file, just a couple of ._Data File and ._Data File Alias in the subdiretories.
I’m still digging around to see what I did wrong. And if you have any suggestions please let me know
Thanks – Clement
Just a final update on my progress:
I got my hands on a new G4 Powerbook with Leopard (10.5) installed. Downloaded Xcode v3.0 and ran Splitforks as you had described. Everything worked like a charm. My previous effort was done on a older Powerbook running Panther (10.2) and Xcode v1.2. I suspect the different software version accounted for the different outcome as well.
Thanks again for posting the info online. You had helped saved our family financial data from the past couple years.
Bless you for posting this – just got back my data.
Thank you so much!
Glad to be of help!
Thank you so much for posting this! I had been trying to figure out how to do exactly this for a day now. I had given up hope and was about to call it quits.
Thanks again. Now to somehow get rsync to copy the resource forks…
Not likely is my guess. I haven’t actually tried this, but you may be able to store the Quicken file in a disk image (create with the Apple Disk Utility, and you could even encrypt it). Because the disk image would be treated as a file, it should backup everything within it–including resource forks!
Thanks for this info. I am switching to moneydance becuase I am so pissed that my diligent backups (using rsync -E, that is extended attributes) didnt copy resource forks. I must of made a mistake. I custom built v3.0.5 of GNU rsync as it promises support for extended attributes (resource forks).
Fortunately I had another backup, albeit somewhat older, that was made using superduper and on sparse disk image. Resource forks are preserved using SD and with carbon copy cloner. I believe both of those tools employ the newer rysnc (GNU v3.0.5) that seems to be able to preserve resource forks.
Thank you so much for compiling and posting this. It saved me!
You saved us a lot of extra work. If anyone comes up with a way to recover the budget info, please let us know. But, we are incredibly grateful to have recovered what we did. Thank you!