---
name: "geom_fox"
section: "4freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/geom_fox"
---

# geom\_fox(4freebsd)

GEOM based basic disk multipathing

## NAME

**geom\_fox** – GEOM based basic disk multipathing

## SYNOPSIS

To compile this driver into the kernel, place the following line in your kernel configuration file:

**options GEOM\_FOX**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
geom_fox_load="YES"
```

## DESCRIPTION

This driver is obsolete. Users are advised to use [gmultipath(8)](/gmultipath/8.md) instead. This driver will be removed in FreeBSD 12.

The intent of the **geom\_fox** framework is to provide basic multipathing support to access direct access devices. Basic in the above sentence should be read as: **geom\_fox** only provides path failover functionality, not load balancing over the available paths etc. Using suitable hardware like SCSI or FibreChannel disks it is possible to have multiple (typically 2) host bus adapters access the same physical disk drive.

Without a multipathing driver the FreeBSD kernel would probe the disks multiple times, resulting in the creation of multiple */dev* entries for the same underlying physical device. A unique label written in the GEOM label area allows **geom\_fox** to detect multiple paths. Using this information it creates a unique *da#.fox* device.

The **geom\_fox** device is subsequently used by the FreeBSD kernel to access the disks. Multiple physical access paths ensure that even in case of a path failure the FreeBSD kernel can continue to access the data.

The **geom\_fox** driver will disallow write operations to the underlying devices once the fox device has been opened for writing.

## EXAMPLES

- **geom\_fox** needs a label on the disk as follows in order to work properly:

  ```
  "0123456789abcdef0123456789abcdef"
  "GEOM::FOX       <--unique--id-->"
  ```

  For the unique ID 16 bytes are available. The “GEOM::FOX” is the magic to mark a **geom\_fox** device.

  The actual labelling is accomplished by

  ```
  echo "GEOM::FOX       someid" | dd of=/dev/da2 conv=sync
  ```

  For FibreChannel devices it is suggested to use the Node World Wide Name (Node WWN) as this is guaranteed by the FibreChannel standard to be worldwide unique. The use of the Port WWN not recommended as each port of a given device has a different WWN, thereby confusing things.

  The Node WWN can be obtained from a verbose boot as in for example

  ```
  isp1: Target 1 (Loop 0x1) Port ID 0xe8 (role Target) Arrived
   Port WWN 0x21000004cfc8aca2
   Node WWN 0x20000004cfc8aca2
  ```

  This Node WWN would then be used like so:

  ```
  echo "GEOM::FOX       20000004cfc8aca2" | dd of=/dev/da2 conv=sync
  ```

  For non-FibreChannel devices you could for example use the serial number of the device. Regardless of what you use, make sure the label is unique.

  Once the labelling has been performed and assuming the **geom\_fox** module is loaded the kernel will inform you that it has found a new **geom\_fox** device with a message similar to

  ```
  Creating new fox (da2)
  fox da2.fox lock 0xfffffc0000fdba20
  ```

- To check which physical devices match a given **geom\_fox** device:

  ```
  # geom fox list
  Geom name: da2.fox
  Providers:
  1. Name: da2.fox
     Mediasize: 73407865344 (68G)
     Sectorsize: 512
     Mode: r0w0e0
  Consumers:
  1. Name: da2
     Mediasize: 73407865856 (68G)
     Sectorsize: 512
     Mode: r0w0e0
  2. Name: da6
     Mediasize: 73407865856 (68G)
     Sectorsize: 512
     Mode: r0w0e0
  ```

- To check the status of the **geom\_fox** components:

  ```
  # geom fox status
     Name  Status  Components
  da2.fox     N/A  da2
                   da6
  ```

## SEE ALSO

[GEOM(4)](/GEOM/4.md), [geom(8)](/geom/8.md), [gmultipath(8)](/gmultipath/8.md)

## AUTHORS

The **geom\_fox** driver was written by Poul-Henning Kamp ⟨*phk@FreeBSD.org*⟩. This manual page was written by Wilko Bulte ⟨*wilko@FreeBSD.org*⟩.

## CAVEATS

The **geom\_fox** driver depends on the underlying hardware drivers to do the right thing in case of a path failure. If for example a hardware driver continues to retry forever, **geom\_fox** is not able to re-initiate the I/O to an alternative physical path.

You have to be very sure to provide a unique label for each of the **geom\_fox** devices. Safety belts are not provided. For FibreChannel devices it is suggested to use the Port WWN of the device. The World Wide Name is guaranteed to be worldwide unique per the FibreChannel standard.

## BUGS

The **geom\_fox** framework has only seen light testing. There definitely might be dragons here.

The name **geom\_fox** is completely obscure. Just remember that any sly fox has multiple exits from its hole.

The examples provided are too FibreChannel-centric.
