copying just / (not /tmp, /usr, etc) (rsync -x failed)

Lowell Gilbert freebsd-questions-local at
Wed Dec 5 05:58:37 PST 2007

"Steve Franks" <stevefranks at> writes:

> I have / on one slice, and [usr,tmp,var] on others.  I want to move
> just / to a new disk, which seemed to be what rsync -x ("do not cross
> filesystems") was intended for.  It failed, however, as df shows 20k
> blocks in /, and rsync filled up the target slice with 50k blocks, so
> obviously it blew right past the 'end' of / - did I miss something? Is
> there no other way except to umount [tmp,usr,var]?

You missed lots of ways.  The canonical method is dump(8)/restore(8).
There are many other methods as well.

For rsync, what you missed was probably the "-H" option (i.e., you
didn't copy from other filesystems, you just ended up with separate
copies of files that were hard linked on the original).  Even with
rsync, though, you won't get an exact copy.  I'd recommend dump for
copying filesystems; that's what it's for.

More information about the freebsd-questions mailing list