freebsd-dev/sbin
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
..
adjkerntz
bectl bectl(8): don't allow creation of boot environments with spaces 2021-06-03 08:36:11 -08:00
bsdlabel Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
camcontrol camcontrol fwdownload minor improvements 2022-02-22 14:38:38 -07:00
ccdconfig
clri In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
comcontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
conscontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
ddb ddb: use 'textdump dump' instead of 'call doadump' 2019-10-18 12:32:01 +00:00
decryptcore decryptcore: do not include sys/sysctl.h 2021-03-07 17:29:03 -06:00
devd devd: correct wifi regexp 2022-01-09 10:16:31 -07:00
devfs devfs.rules: Correctly unhide pf in vnet jails 2021-11-03 12:50:13 +01:00
devmatch devmatch: Allow devmatch_blocklist to be set in kenv too 2021-11-21 08:54:45 -07:00
dhclient dhclient: support VID 0 (no vlan) decapsulation 2022-02-14 10:06:47 -05:00
dmesg dmesg: detect wrapped msgbuf on the kernel side and if so, skip first line 2022-02-05 13:35:31 -08:00
dump ufs: Rework shortlink handling to avoid subobject overflows 2022-01-02 20:55:36 +00:00
dumpfs dumpfs(8): add option to only print superblock information 2021-07-02 14:18:17 -08:00
dumpon dumpon: fix build on some architectures 2021-08-11 21:27:24 -05:00
etherswitchcfg etherswitch: Add a new striptagingress port flag 2021-08-03 12:07:48 +02:00
fdisk Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
ffsinfo ffsinfo: Update example to avoid to-be-deprecated vinum 2021-04-03 16:29:14 -04:00
fsck fsck(8): Fix typo 2022-01-12 13:52:23 +08:00
fsck_ffs Update fsdb(8) to reflect new structure of fsck_ffs(8). 2022-02-23 15:40:58 -08:00
fsck_msdosfs fsck_msdosfs: truncate directory entry when the head pointer is invalid. 2021-11-03 22:09:32 -07:00
fsdb Update fsdb(8) to reflect new structure of fsck_ffs(8). 2022-02-23 15:40:58 -08:00
fsirand Filesystem utilities that modify the filesystem (growfs(8), tunefs(8), 2020-10-25 01:36:33 +00:00
gbde gbde(8) - simplify randomisation with arc4random_buf 2019-02-11 00:11:02 +00:00
geom Create a new GEOM utility, gunion(8). 2022-02-28 16:36:08 -08:00
ggate ggatec: Use ANSI C definition for init_initial_buffer_size. 2022-01-31 17:12:04 -08:00
growfs growfs: do not error if filesystem is already requested size 2021-11-15 15:40:57 -05:00
gvinum gvinum: add deprecation notice 2021-03-28 14:45:05 -04:00
hastctl
hastd hastd(8) assumes it has no extra file descriptors opened 2020-11-29 13:45:53 +00:00
ifconfig ifconfig: remove debug printf introduced in 779fd05344 2022-01-29 11:19:01 +00:00
init init(8): use proper boolean type for globals 2022-02-21 20:16:13 -04:00
ipf ipfilter: Print protocol when listing NAT table mappings 2022-02-28 12:11:39 -08:00
ipfw dnctl: Support reading config from file like ipfw(8) 2022-01-03 09:50:18 +01:00
kldconfig kldconfig(8): Add EXAMPLES to the man page 2020-09-29 17:52:15 +00:00
kldload kldload(8): Improve phrasing 2021-02-11 06:03:53 +01:00
kldstat kldstat(8): style(9) fixes. 2021-12-07 11:40:22 +01:00
kldunload
ldconfig ldconfig: remove two symbols 2022-01-08 12:45:46 +02:00
md5 update external URLs 2022-02-05 08:19:56 +00:00
mdconfig md: Add MD_MUSTDEALLOC support 2021-09-11 20:04:52 +08:00
mdmfs mdmfs(8): Fix an issue reported by mandoc 2020-10-03 18:47:50 +00:00
mknod
mksnap_ffs Remove #define _KERNEL hacks from libprocstat 2021-02-21 11:38:21 +02:00
mount vfslist.c: initialize skipvfs variable 2022-01-05 23:00:36 +01:00
mount_cd9660 Advise reader to also see mdconfig(8) in mount_cd9660(8). 2018-08-11 08:34:24 +00:00
mount_fusefs sbin/mount_fusefs/mount_fusefs.8: Fix typos 2021-10-09 09:02:39 -06:00
mount_msdosfs Fix a few mandoc issues 2020-10-09 14:03:45 +00:00
mount_nfs mount_nfs: Add a "bgnow" NFS mount option 2022-01-11 08:21:35 -08:00
mount_nullfs mount_nullfs: rename a local variable 2021-02-12 11:30:52 -07:00
mount_udf
mount_unionfs
natd natd: Remove uneeded in_cksum.h includes 2021-11-24 13:31:16 -05:00
newfs Explain the newfs naming convention 2021-04-17 23:16:17 +02:00
newfs_msdos newfs_msdos: connect the ATF test from NetBSD 2022-02-16 09:56:16 -06:00
nfsiod pkgbase: Add nfsiod to the FreeBSD-nfs package 2021-08-06 14:37:35 +02:00
nos-tun pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
nvmecontrol nvme: fix spelling of Namespace 2022-02-21 10:34:46 -08:00
pfctl libpfctl: fix creatorid endianness 2022-01-27 09:07:27 +01:00
pfilctl pfilctl: improve formatting of "hooks" and "heads" command output. 2021-03-19 11:18:05 -07:00
pflogd
ping update external URL 2022-02-05 17:11:18 +00:00
ping6 Merge ping6 to ping 2020-11-26 04:29:30 +00:00
quotacheck Normally when an attempt is made to mount a UFS/FFS filesystem whose 2018-12-06 00:09:39 +00:00
rcorder [rcorder] [crunch] Fix C function declarations to include void 2020-09-21 17:59:45 +00:00
reboot boottrace: annotate init and shutdown utilities 2022-02-21 20:16:07 -04:00
recoverdisk Register the bad read before bailing on terminal errors. 2021-02-02 12:01:38 +00:00
resolvconf
restore Clean up global variable declarations in the dump and restore 2020-04-04 00:56:56 +00:00
route route: remove write-only struct hostent from getaddr() 2022-01-06 10:45:44 -05:00
routed sbin/routed: Remove unused code for sgi and NetBSD. 2020-12-25 17:42:47 -08:00
rtsol Update Makefile.depend files 2019-12-11 17:37:53 +00:00
savecore savecore: emit information about saved cores under verbose 2021-12-07 18:39:34 -06:00
sconfig pkgbase: Put sconfig in FreeBSD-utilities 2021-12-21 10:16:08 +01:00
setkey update external URL 2022-02-05 17:14:27 +00:00
shutdown boottrace: annotate init and shutdown utilities 2022-02-21 20:16:07 -04:00
swapon swapon(8): adapt to the new swapoff(2) interface 2021-12-09 02:48:59 +02:00
sysctl sysctl: Small style fix 2021-12-05 21:40:47 -07:00
tests
tunefs Remove #define _KERNEL hacks from libprocstat 2021-02-21 11:38:21 +02:00
umount Document that umount -A does not unmount /dev 2020-06-18 23:12:55 +00:00
veriexec veriexec(8): explain that only a unique prefix is required 2022-02-14 13:54:22 -08:00
zfsbootcfg loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
Makefile sbin: build ping if at least one of INET & INET6 is enabled 2021-11-28 13:05:39 -05:00
Makefile.amd64 Revert "amd64: Do not build sconfig" 2021-12-21 10:14:45 +01:00
Makefile.arm
Makefile.i386 NVME support is only for x86 and powerpc64. 2018-06-14 01:15:19 +00:00
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00
Makefile.mips
Makefile.powerpc64 NVME support is only for x86 and powerpc64. 2018-06-14 01:15:19 +00:00