The new 4.2 BSD dump(8) and restore(8) do some of what you want. You might
want to start by looking at them.
Mark LaCasse qantel!hplabs!sdcrdcf!randvax!lacasse
c/o The Rand Corporation cbosgd!ihnp4!sdcrdcf!randvax!lacasse
1700 Main Street lacasse at Rand-Unix
Santa Monica, CA 90406
213/393-0411 ext. 7420