#!/bin/sh # Thu Feb 26 22:16:51 MST 2004 # based on Mike Bombich's summary of now to clone: # http://www.bombich.com/mactips/image.html # tailored to 2/26/04 state of fs # # 1. preflight - erase or yet better format target drive # - repair permissions on source volume # - UNset "ignore priviledges" on both, esp target, volumes # (finder, click drive, file->get info, uncheck lowest box) # # 2. backup = clone # run this script as root = after: sudo -s # ######### NOT COPIED # *. root level dir not copied or stubbed: # .Trashes # d-wx-wx-wt 4 root admin 136 28 Dec 12:21 .Trashes # # *. root level files not copied: # .DS_Store, Macintosh HD, Temporary Items, TheVolumeSettingsFolder, # -rw-rw-rw- 1 pbg4 staff 12292 26 Feb 21:08 .DS_Store # -rw-r--r-- 1 jar admin 0 25 Nov 00:18 Macintosh HD # drwxrwxrwt 3 jar admin 102 1 Nov 22:09 Temporary Items # drwxr-xr-x 2 jar admin 68 1 Nov 22:09 TheVolumeSettingsFolder # ######### COPIED WITH RSYNC AND PATTERN EXCLUSION # *. root level dir copied as stubs: # drwxrwxrwt 7 root admin 238 26 Feb 21:09 Volumes # dr--r--r-- 2 root wheel 96 27 Feb 14:37 .vol # # *. root level symlinks copied: (Network has transient system stuff) # drwxr-xr-x 1 root wheel 512 26 Feb 21:29 Network # drwxr-xr-x 4 root admin 136 24 Nov 02:17 automount # lrwxr-xr-x 1 root admin 12 5 Jan 19:11 etc -> /private/etc # lrwxr-xr-x 1 root admin 9 26 Feb 18:14 mach -> /mach.sym # lrwxr-xr-x 1 root admin 22 26 Feb 18:51 mntA -> /automount/static/mntA # lrwxr-xr-x 1 root admin 25 26 Feb 18:51 mntroot -> /automount/static/mntroot # lrwxr-xr-x 1 root admin 11 24 Nov 01:06 tmp -> private/tmp # lrwxr-xr-x 1 root admin 11 24 Nov 01:07 var -> private/var # # *. user admin info associated with backup: # drwxr-xr-x 9 jar admin 306 26 Feb 21:14 clone-info # # *. hidden system files # -r--r--r-- 1 root wheel 111 11 Jan 13:56 .hidden # -rw-r--r-- 1 root admin 115 11 Jan 13:56 .hidden.mod1 # -rw-r--r-- 1 root admin 156 9 Jan 21:00 .hidden.orig # -rw------- 1 root admin 131072 26 Feb 18:14 .hotfiles.btree # # *. system files/dirs without resource forks (unix system stuff): # drwxr-xr-x 36 root wheel 1224 25 Jan 00:33 bin # drwxrwxr-t 2 root admin 68 12 Sep 13:41 cores # dr-xr-xr-x 2 root wheel 512 26 Feb 18:14 dev # -r--r--r-- 1 root admin 567760 26 Feb 18:14 mach.sym # -rw-r--r-- 1 root wheel 3824080 11 Dec 17:20 mach_kernel # drwxr-xr-x 3 root admin 102 10 Jan 22:03 opt # drwxr-xr-x 7 root wheel 238 26 Feb 18:14 private # drwxr-xr-x 61 root wheel 2074 23 Feb 16:39 sbin # drwxr-xr-x 11 root admin 374 26 Nov 01:31 sw # drwxr-xr-x 12 root wheel 408 12 Sep 18:41 usr # ######### COPIED WITH DITTO # (note: ditto copies src-dir CONTENTS to target-dir, not dir to dir = usual; # rsync behaves normally) # *. macos system files/dirs which might have resource forks: # drwxrwxr-x 49 root admin 1666 23 Feb 16:35 Applications # drwxrwxr-x 15 root admin 510 9 Dec 14:39 Applications (Mac OS 9) # -rw-r--r-- 1 root admin 195584 23 Feb 16:47 Desktop DB # -rw-r--r-- 1 root admin 1529698 13 Feb 15:25 Desktop DF # drwxrwxr-x 2 root admin 68 25 Jul 2003 Desktop Folder # drwxrwxr-x 13 root admin 442 23 Dec 00:24 Developer # drwxrwxr-x 5 root admin 170 15 Nov 18:32 Documents # drwxrwxrwx 6 jar staff 204 12 Dec 20:49 Install_Resources # drwxrwxr-x 40 root admin 1360 29 May 2002 Library # drwxr-xr-x 4 root wheel 136 14 Feb 22:16 System # drwxrwxr-x 34 root admin 1156 6 Dec 17:59 System Folder # drwxrwxr-t 8 root admin 272 26 Dec 03:25 Users # # # 3. bless proper folders on cloned drive: # # # 4. may want to change retention/creation of root-level symlinks: # mntA, mntroot created by autoloader, at least at root level; # pbg4.* == network export probably also created on the fly; # mach ->mach.sym - on the fly? # create symlinks /etc, /tmp, /var "by hand" at finish of copy # perms, ownership off for all above root-level symlinks; # ***check target dirs? # # dir/files updated/created at boot/on the fly: # dev mach.sym mach Volumes mntroot mntA Network # .DS_Store .vol # created if absent - re-check this: # .hotfiles.btree ex_rsync1="/clone-info/ex_rsync1" ex_rsync2="/clone-info/ex_rsync2" backup_drive="S3" rsync -avv -H -x --stats --progress --exclude-from=${ex_rsync1} \ /.vol /Volumes /Volumes/${backup_drive}/ rsync -avv -H -x --stats --progress --exclude-from=${ex_rsync2} \ /private /Volumes/${backup_drive}/ rsync -avv -H -x --stats --progress \ /Network /automount /etc /mach /mntA /mntroot /tmp /var \ /dev /mach.sym \ /clone-info \ /.hotfiles.btree /.hidden /.hidden.mod1 /.hidden.orig \ /bin /cores /mach_kernel /opt \ /sbin /sw /usr \ /Volumes/${backup_drive}/ ditto --rsrc -V -X "/Applications" "/Volumes/${backup_drive}/Applications" ditto --rsrc -V -X "/Applications (Mac OS 9)" "/Volumes/${backup_drive}/Applications (Mac OS 9)" ditto --rsrc -V -X "/Desktop DB" "/Volumes/${backup_drive}/Desktop DB" ditto --rsrc -V -X "/Desktop DF" "/Volumes/${backup_drive}/Desktop DF" ditto --rsrc -V -X "/Desktop Folder" "/Volumes/${backup_drive}/Desktop Folder" ditto --rsrc -V -X "/Developer" "/Volumes/${backup_drive}/Developer" ditto --rsrc -V -X "/Documents" "/Volumes/${backup_drive}/Documents" ditto --rsrc -V -X "/Install_Resources" "/Volumes/${backup_drive}/Install_Resources" ditto --rsrc -V -X "/Library" "/Volumes/${backup_drive}/Library" ditto --rsrc -V -X "/System" "/Volumes/${backup_drive}/System" ditto --rsrc -V -X "/System Folder" "/Volumes/${backup_drive}/System Folder" ditto --rsrc -V -X "/Users" "/Volumes/${backup_drive}/Users" bless -folder /Volumes/${backup_drive}/System/Library/CoreServices \ -bootinfo /usr/standalone/ppc/bootx.bootinfo bless -folder9 /Volumes/${backup_drive}/System\ Folder -bootBlocks # think about... # alter script above: # remove 1st rsync src-dir/file = /.vol /Volumes # change file /clone-info/ex_rsync2 to contain only patterns: # automount/* # + automount # delete line 1+2 of src-dirs from 3rd rsync = /Network ... + /dev ... # # add at end of script = uncomment following: # cd /Volumes/${backup_drive} # ln -s private/etc etc # ln -s private/tmp tmp # ln -s private/var var # mkdir dev Volumes Network .vol automount