/usr/bin/rsync that comes with Mac OS X v10.4 (Tiger) now supports resource fork operation with -E option. You should consider this an alternative to psync.
Until MacOS 9.x, MacOS is the easiest platform to do full volume backup. All you have to do is grab a media large enough and drag the target hard drive icon to destination drive. When you restore the volume,just select the destination drive via "Startup Disk".
That is no longer the truth with MacOS X. As hyped very loudly MacOS X is a "moisturized" BSD Unix which requires proper files located at proper path. Unlike MacOS 9 where the only folder required to boot a volume is "System Folder" which path can be anywhere in the volume, MacOS X requires such folders as /etc and /usr directly under the startup volume. To make matters further complicated, MacOS X Finder ("Aqua Finder" as follows) hides these critical folders, disabling attempts to restore volume within Aqua Finder.
Then how about good old Unix method? dump/restore? tar? dd? rsync? To a good old unix user, the command below appears to work;
cd /; tar -Xcf - . | (chdir /Volumes/dst && tar -xvpf -)
Sorry, it does not. MacOS X is too moisturized to apply straight unix methods. MacOS X appears to be dependent on HFS(+) file attributes which are rendered inaccessible from those conventional unix commands. So what you get is a volume stripped with all resource forks and finder attributes.
So what are you going to do? Here it is.
In hope to remedy this situation, I have written
psync
,
a perl script that comes with
MacOSX::File
.
Due to its popularity it now has its own page.
This section is now in a separate document.
As Larry Wall says, there are more than one way to do it. Here is some.
Synk will not mirror one hard drive to another. It was designed to copy your home directory or any other folder to another location, not create a bootable backup.
Synk cannot copy symbolic links over an Appleshare network. They are converted by the network client into normal files. This will not affect most Macintosh users.
Synk cannot synchronize between HFS+ and foreign file systems because the directories are sorted differently. Make sure the volumes you are copying between are both formatted in the extended HFS+ format.
dd
command should work if the
target volume is EXACTLY
the same size as source volume. rsync_hfs
. As of this writing it's avaliable via CVS but
this is definitely the solution people like myself wanted (I might not
have developed psync
if that were available).psync
now has its own page.