freebsd-nq/sys/geom
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
..
bde geom(4): Fix some of the "set but not used" warnings 2021-12-18 11:42:34 +00:00
cache GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
concat GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
eli Use G_ELI_IVKEYLEN as the size of IV in the user test code. 2022-01-13 17:22:06 -08:00
gate geom_gate: Distinguish between classes of errors 2022-01-29 21:15:51 +11:00
journal GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
label glabel: Set G_CF_DIRECT_SEND/RECEIVE for taste consumer. 2022-01-28 14:22:41 -05:00
linux_lvm GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
mirror GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
mountver Make g_attach() return ENXIO for orphaned providers; update various 2020-10-18 16:24:08 +00:00
multipath GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
nop Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
part geom: Add HiFive boot partitions 2022-01-26 10:54:45 -05:00
raid graid: Set G_CF_DIRECT_SEND for task consumer. 2022-01-28 11:09:30 -05:00
raid3 GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
shsec GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
stripe GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
union Create a new GEOM utility, gunion(8). 2022-02-28 16:36:08 -08:00
uzip Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vinum GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
virstor GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
zero geom(4): Mark all sysctls as CTLFLAG_MPSAFE. 2021-08-10 20:18:46 -04:00
geom_bsd_enc.c
geom_ccd.c sys/geom: Use C99 fixed-width integer types. 2021-12-28 09:41:51 -08:00
geom_ctl.c Provide an interface that allows GEOM modules to return multiple messages. 2022-02-19 21:33:02 -08:00
geom_ctl.h
geom_dbg.h GEOM: Reduce unnecessary log interleaving with sbufs 2019-08-07 19:28:35 +00:00
geom_dev.c geom: Handle partial I/O in g_{read,write,delete}_data() 2022-01-20 08:29:39 -05:00
geom_disk.c Fix "set but not used" for geom 2021-12-03 23:40:24 -07:00
geom_disk.h Use a more specific type for geom_disk.d_event. 2021-07-29 16:34:46 -07:00
geom_dump.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_event.c GEOM: Minor polishing in geom_event. 2021-12-27 21:01:08 -05:00
geom_flashmap.c Remove NAND and NANDFS support 2019-06-25 04:50:09 +00:00
geom_flashmap.h geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_int.h GEOM: Remove g_wait_sim. 2022-01-29 22:12:43 -05:00
geom_io.c In GEOM debugging output, show consumer for cloned and duplicated bio's. 2022-01-30 17:21:13 -08:00
geom_kern.c GEOM: Relax direct dispatch for GEOM threads. 2022-01-28 14:21:21 -05:00
geom_map.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_redboot.c geom_map and geom_redboot: Remove unused ctlreq handler. 2020-07-26 22:30:01 +00:00
geom_slice.c Pass BIO_SPEEDUP through all the geom layers 2020-01-17 01:15:55 +00:00
geom_slice.h
geom_subr.c GEOM: Remove g_wait_sim. 2022-01-29 22:12:43 -05:00
geom_vfs.c g_vfs_close(): vp is unused 2021-11-18 05:02:59 +02:00
geom_vfs.h
geom.h Provide an interface that allows GEOM modules to return multiple messages. 2022-02-19 21:33:02 -08:00
notes