Oops, one refinement: cd /old/disk; find . -mount -print0 | cpio -pdmv0 /new/disk/ The -mount command will keep it from going down to sub-mounted filesystems, if there are any.