---
name: "geom"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/geom/8"
---

# geom(8)

universal control utility for GEOM classes

## NAME

**geom** – universal control utility for GEOM classes

## SYNOPSIS

**geom** *class* **help**

**geom** \[**--libxo**\] *class* **list** \[**-a**\] \[*name* *...*\]

**geom** \[**--libxo**\] *class* **status** \[**-ags**\] \[*name* *...*\]

**geom** *class* **load** \[**-v**\]

**geom** *class* **unload** \[**-v**\]

**geom** \[**--libxo**\] **-p** *provider-name*

**geom** **-t**

## DESCRIPTION

The **geom** utility is used to control various GEOM classes. A class has to be aware of **geom** communication methods, but there are also some standard commands which can be used for existing **geom** unaware classes. Here is the list of standard commands:

- **help**

  List all available commands for the given class.

- **list**

  Print detailed information (within the given class) about all geoms (if no additional arguments were specified) or the given geoms. This command is only available if the given class exists in the kernel. Additional options include:

  - **-a**

    Print information for geoms without providers.

- **status**

  Print general information (within the given class) about all geoms (if no additional arguments were specified) or the given geoms. This command is only available if the given class exists in the kernel.

  Additional options include:

  - **-a**

    When used with **-g**, print status for geoms without providers.

  - **-g**

    Report statuses for geoms instead of providers.

  - **-s**

    Produce script-friendly output.

- **load**

  Load the kernel module that implements the given class. This command is only available if the class does not yet exist in the kernel and the file *geom\_*⟨*class*⟩*.ko* can be found in one of the directories specified in *kern.module\_path* sysctl.

- **unload**

  Unload the kernel module which implements the given class. This command is only available if the given class is loaded as a kernel module.

Additional options include:

- **-p** *provider-name*

  Print detailed information about the geom which provides *provider-name*.

- **-t**

  Display geoms hierarchy as a tree.

- **--libxo**

  Generate output via [libxo(3)](/libxo/3.md) in a selection of different human and machine readable formats. See [xo\_options(7)](/xo_options/7.md) for details on command line arguments.

Class-specific commands are implemented as shared libraries which are stored in */lib/geom/* directory and are loaded via [dlopen(3)](/dlopen/3.md) function when the class name is known. When a class-specific shared library exists, a direct utility should also be available under the name of **g***class*.

Currently, classes aware of **geom** are:

| | | |
| --- | --- | --- |
| • CACHE | • MIRROR | • SCHED |
| • CONCAT | • MOUNTVER | • SHSEC |
| • DISK | • MULTIPATH | • STRIPE |
| • ELI | • NOP | • UNION |
| • JOURNAL | • PART | • VFS |
| • LABEL | • RAID | • VIRSTOR |
| • MD | • RAID3 | • ZONED |

## ENVIRONMENT

The following environment variables affect the execution of **geom**:

- GEOM\_LIBRARY\_PATH

  Specifies the path where shared libraries are stored instead of */lib/geom/*. Multiple paths can be specified with a colon-separated list of paths.

## EXIT STATUS

Exit status is 0 on success, and 1 if the command fails.

## EXAMPLES

The following example shows how to set up a stripe on three disks for automatic configuration:

```
geom stripe label -v -s 65536 data /dev/da0 /dev/da1 /dev/da2
```

or:

```
gstripe label -v -s 65536 data /dev/da0 /dev/da1 /dev/da2
```

Print the list of all providers from the DISK class:

```
geom disk list
```

Unload a kernel module which implements the MD class:

```
geom md unload
```

## SEE ALSO

[libgeom(3)](/libgeom/3.md), [geom(4)](/geom/4.md), [xo\_options(7)](/xo_options/7.md), [gcache(8)](/gcache/8.md), [gconcat(8)](/gconcat/8.md), [geli(8)](/geli/8.md), [gjournal(8)](/gjournal/8.md), [glabel(8)](/glabel/8.md), [gmirror(8)](/gmirror/8.md), [gmountver(8)](/gmountver/8.md), [gmultipath(8)](/gmultipath/8.md), [gnop(8)](/gnop/8.md), [gpart(8)](/gpart/8.md), [graid3(8)](/graid3/8.md), [gshsec(8)](/gshsec/8.md), [gstripe(8)](/gstripe/8.md), [gunion(8)](/gunion/8.md), [gvirstor(8)](/gvirstor/8.md), [gzoned(8)](/gzoned/8.md)

## HISTORY

The **geom** utility appeared in FreeBSD 5.3.

## AUTHORS

Pawel Jakub Dawidek ⟨*pjd@FreeBSD.org*⟩
