freebsd-dev/sys
Kirk McKusick c7996ddf80 Create a new GEOM utility, gunion(8).
The gunion(8) utility is used to track changes to a read-only disk on
a writable disk. Logically, a writable disk is placed over a read-only
disk. Write requests are intercepted and stored on the writable
disk. Read requests are first checked to see if they have been
written on the top (writable disk) and if found are returned. If
they have not been written on the top disk, then they are read from
the lower disk.

The gunion(8) utility can be especially useful if you have a large
disk with a corrupted filesystem that you are unsure of how to
repair. You can use gunion(8) to place another disk over the corrupted
disk and then attempt to repair the filesystem. If the repair fails,
you can revert all the changes in the upper disk and be back to the
unchanged state of the lower disk thus allowing you to try another
approach to repairing it. If the repair is successful you can commit
all the writes recorded on the top disk to the lower disk.

Another use of the gunion(8) utility is to try out upgrades to your
system. Place the upper disk over the disk holding your filesystem
that is to be upgraded and then run the upgrade on it. If it works,
commit it; if it fails, revert the upgrade.

Further details can be found in the gunion(8) manual page.

Reviewed by: Chuck Silvers, kib (earlier version)
tested by:   Peter Holm
Differential Revision: https://reviews.freebsd.org/D32697
2022-02-28 16:36:08 -08:00
..
amd64 vmm: fix "set but not used" warnings 2022-02-28 15:09:32 -09:00
arm arm: Add extres pseudo devices to some kernel 2022-02-23 08:47:57 +01:00
arm64 Fix the sanitizer header checks on arm64 2022-02-23 14:50:56 +00:00
bsm
cam CTL: Rework 05c3e8e871 using %zu format. 2022-02-25 11:53:53 -05:00
cddl fbt: Remove handling for CTFv1 2022-02-23 11:41:22 -05:00
compat LinuxKPI: add MODULE_IMPORT_NS() 2022-02-24 19:59:25 +00:00
conf Create a new GEOM utility, gunion(8). 2022-02-28 16:36:08 -08:00
contrib Remove prototype of x86emu_init_default. 2022-02-27 15:11:17 -08:00
crypto armv8crypto: Remove leftover debug printfs 2022-02-17 14:25:45 -05:00
ddb ddb: Remove SOFTWARE_SSTEP support 2022-01-07 09:25:33 -07:00
dev bwn: Remove useless variable 2022-02-28 10:14:34 -07:00
dts dts: add IPQ4018/IPQ4019 ethernet MAC and ethernet switch definitions 2022-02-03 21:26:45 -08:00
fs nfscl: Fix a use after free in nfscl_cleanupkext() 2022-02-25 07:27:03 -08:00
gdb gdb(4): Do not use run length encoding for 3-symbol repetitions 2022-01-22 14:46:06 -05:00
geom Create a new GEOM utility, gunion(8). 2022-02-28 16:36:08 -08:00
gnu
i386 proc: load/store p_cowgen using atomic primitives 2022-02-13 13:07:08 +00:00
isa sys/isa: Use C99 fixed-width integer types. 2021-12-28 09:41:57 -08:00
kern Eliminate curlen, it's set but never used 2022-02-27 09:02:45 -07:00
kgssapi
libkern sys/libkern: Use C99 fixed-width integer types. 2021-12-28 09:42:11 -08:00
modules Create a new GEOM utility, gunion(8). 2022-02-28 16:36:08 -08:00
net bridge: Don't share broadcast packets 2022-02-21 19:03:44 +01:00
net80211 net80211: enhance (disabled) debugging 2022-02-14 22:16:59 +00:00
netgraph ng pppoe(4): Add the required NET_EPOCH section to the hook 2022-02-09 22:00:50 +03:00
netinet tcp: Restore correct ECT marking behavior on SACK retransmissions 2022-02-25 20:05:32 +01:00
netinet6 Fix a memory leak when ip_output_send() returns EAGAIN due to send tag issues 2022-01-27 10:34:34 -05:00
netipsec ipsec: sprinkle CURVNET_ASSERT_SET 2022-02-19 13:10:41 +00:00
netpfil pf: fix set_prio after nv conversion 2022-02-14 22:51:10 +01:00
netsmb
nfs nfs: don't truncate directory cookies to 32-bits in the NFS server 2021-12-15 20:54:57 -07:00
nfsclient
nfsserver
nlm sys/nlm: Use C99 fixed-width integer types. 2021-12-28 09:42:42 -08:00
ofed ibcore: Add support for NDR link speed. 2022-02-21 09:35:19 +01:00
opencrypto crypto: hide crypto_destroyreq behind a tunable 2022-02-16 07:45:12 +00:00
powerpc proc: load/store p_cowgen using atomic primitives 2022-02-13 13:07:08 +00:00
riscv riscv: Fix another race in pmap_pinit() 2022-02-22 09:26:33 -05:00
rpc sys/rpc: Use C99 fixed-width integer types. 2021-12-28 09:43:15 -08:00
security Thread creation privilege for realtime group 2021-12-15 00:01:58 +02:00
sys Expand __diagused to include the KTR kernel diagnostic option. 2022-02-26 11:01:54 -07:00
teken
tests
tools Revert "syscallarg_t: Add a type for system call arguments" 2022-01-12 23:29:20 +00:00
ufs ffs_read(): lock buffers after snaplk with LK_NOWITNESS 2022-02-06 03:26:22 +02:00
vm uma: Add UMA_ZONE_UNMANAGED 2022-02-15 09:25:34 -05:00
x86 xen: switch to use headers in contrib 2022-02-07 10:11:56 +01:00
xdr sys/xdr: Use C99 fixed-width integer types. 2021-12-28 09:43:26 -08:00
xen xen: remove public headers in sys/xen/interface 2022-02-07 10:12:34 +01:00
Makefile Fix 'make cscope' with ALL_ARCH defined 2022-01-07 11:53:52 -04:00