GEOM_UZIP(4)
πΈ NAME πΈ
Okay bestie, welcome to GEOM_UZIP(4) from the Kernel Interfaces Manual β¨ β this is the page for geom_uzip, aka GEOM based compressed disk images and partitions π
.
π οΈ SYNOPSIS π οΈ
To compile this driver into the kernel, place the following line in your kernel configuration file:
device xz
options zstd
options GEOM_UZIP
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
geom_uzip_load="YES"
π DESCRIPTION π
The geom_uzip framework provides support for compressed read-only disk images π. It gives you significant storage savings at the expense of some CPU time on each read β literally a tradeoff, bestie.
Data written in the GEOM label area is what lets geom_uzip detect compressed images which have been created with mkuzip(8) and presented to the kernel as a logical disk device via md(4) πΈ. And geom_uzip creates a unique md#.uzip device for each image β¨.
geom_uzip is not limited to supporting only md(4) images. The image can also reside on a block device. (For example, a disk, USB flash drive, DVD-ROM, etc.) The appropriate device node will appear with the .uzip suffix π¦:
# gpart show da0
=> 0 7833600 da0 BSD (3.7G)
0 2097152 1 freebsd-ufs (1.0G)
2097152 5736448 - free - (2.7G)
# gpart add -t freebsd-ufs -s 1G da0
da0b added
# dd if=/tmp/20160217_dcomp_zcomp.uzip bs=256k of=/dev/da0b
3190+1 records in
3190+1 records out
836331008 bytes transferred in 111.021489 secs (7533055 bytes/sec)
# fsck -t ffs /dev/da0b.uzip
** /dev/da0b.uzip (NO WRITE)
** Last Mounted on /mnt
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
97455 files, 604242 used, 184741 free (2349 frags, 22799 blocks,
0.3% fragmentation)
# mount -o ro /dev/da0b.uzip /mnt
# df /dev/da0b.uzip
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/da0b.uzip 3155932 2416968 738964 77% /mnt
The geom_uzip device is subsequently used by FreeBSD kernel to access the uncompressed data π. The geom_uzip driver does not allow write operations to the underlying disk image β no cap, itβs read-only energy only π«Ά.
To check which βprovidersβ match a given geom_uzip device:
# geom uzip list
Geom name: md1.uzip
Providers:
1. Name: md1.uzip
Mediasize: 22003712 (21M)
Sectorsize: 512
Consumers:
1. Name: md1
Mediasize: 9563648 (9.1M)
Sectorsize: 512
Geom name: da0b.uzip
Providers:
1. Name: da0b.uzip
Mediasize: 3355443200 (3.1G)
Sectorsize: 512
Consumers:
1. Name: da0b
Mediasize: 1073741824 (1.0G)
Sectorsize: 512
geom_uzip allows mounting the root file system from a compressed disk partition by setting the vfs.root.mountfrom tunable π. See loader.conf(5) for details.
π DIAGNOSTICS π
Several flags are provided for tracing geom_uzip I/O operations and TOC parsing via the following sysctls π:
kern.geom.uzip.debugβ Log level. Zero disables logging. Higher values enable more verbose debug logging forgeom_uzip. Supported levels are from0(no logging) to4(maximum amount of logging).kern.geom.uzip.debug_blockβ Log operations involving compressed cluster number.
π SEE ALSO π
Go say hi to GEOM(4), md(4), geom(8), and mkuzip(8) β¨.
π¦ HISTORY π¦
Zstd support was added in FreeBSD 13.0 π.
π AUTHORS π
- The
geom_uzipdriver was written by Max Khon<fjoe@FreeBSD.org>π . - The block de-duplication code as well as some
geom_uzipdriver optimizations have been contributed by Maxim Sobolev<sobomax@FreeBSD.org>β¨. - The LZMA decompression support and CLOOP 3.0 support have been added by Aleksandr Rybalko
<ray@FreeBSD.org>π¦. - This manual page was written by Ceri Davies
<ceri@FreeBSD.org>π.
Alright bestie, thatβs the whole vibe β source/version Debian, dated April 28, 2021, and this is the GEOM_UZIP(4) manual page πβ¨π«Ά.
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2006 Ceri Davies
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms