GLABEL(8)

NAME
glabel - disk labelization control utility

SYNOPSIS
glabel create [-v] name dev
glabel destroy [-fv] name ...
glabel label [-v] name dev
glabel stop [-fv] name ...
glabel clear [-v] dev ...
glabel dump dev ...
glabel refresh dev ...
glabel list
glabel status
glabel load
glabel unload

DESCRIPTION
The glabel utility is used for GEOM provider labelization. A label can be set up on a GEOM provider in two ways: “manual” or “automatic”. When using the “manual” method, no metadata are stored on the devices, so a label has to be configured by hand every time it is needed. The “automatic” method uses on-disk metadata to store the label and detect it automatically in the future.

This GEOM class also provides volume label detection for file systems. Those labels cannot be set with glabel, but must be set with the appropriate file system utility, e.g. for UFS the file system label is set with tunefs(8). Currently supported file systems are:

•   UFS1 volume names (directory /dev/ufs/).
•   UFS2 volume names (directory /dev/ufs/).
•   UFS1 file system IDs (directory /dev/ufsid/).
•   UFS2 file system IDs (directory /dev/ufsid/).
•   MSDOSFS (FAT12, FAT16, FAT32) (directory /dev/msdosfs/).
•   CD ISO9660 (directory /dev/iso9660/).
•   EXT2FS (directory /dev/ext2fs/).
•   NTFS (directory /dev/ntfs/).
•   Swap Linux (directory /dev/swaplinux/).

Support for partition metadata is implemented for:

•   GPT labels (directory /dev/gpt/).
•   GPT UUIDs (directory /dev/gptid/).

Generic disk ID strings are exported as labels in the format /dev/diskid/GEOM_CLASS-ident e.g. /dev/diskid/DISK-6QG3Z026.

Generic labels created and managed solely by glabel are created in the /dev/label/ directory. Note that generic, automatic labels occupy some space on the device and thus should not be added to a device already containing a file system. In particular, glabel reserves the last sector of the device to store the label information. If the device already contains a file system, glabel will overwrite the last sector, possibly damaging the file system, and the file system may later overwrite the label sector. Instead, create a label before initializing the file system, and initialize that file system on the device created by glabel under the /dev/label/ directory. Then the file system will correctly account for the space occupied by the generic label, since the glabel device will be one sector smaller than the device from which it was created.

Note that for all label types, nested GEOM classes will cause additional device nodes to be created, with context-specific data appended to their names. E.g. for every node like /dev/label/bigdisk there will be additional entries for any partitions which the device contains, like /dev/label/bigdiskp1 and /dev/label/bigdiskp1a.

glabel requires write access to a device to create, modify, and destroy "automatic" labels. It will fail to persist changes if they are applied while a file system on the device is currently mounted. To ensure that modifications are stored across a reboot, the file system needs to be unmounted first. If the device holds the system's root file system, entering into single user mode and mounting in read-only mode is required to persist the change.

The first argument to glabel indicates an action to be performed:

create
    Create temporary label name for the given provider. This is the “manual” method. The kernel module geom_label.ko will be loaded if it is not loaded already.

label
    Set up a label name for the given provider. This is the “automatic” method, where metadata is stored in a provider's last sector. The kernel module geom_label.ko will be loaded if it is not loaded already.

stop
    Turn off the given label by its name. This command does not touch on-disk metadata!

destroy
    Same as stop.

clear
    Clear metadata on the given devices.

dump
    Dump metadata stored on the given devices.

refresh
    Refresh / rediscover metadata from the given devices.

list
    See geom(8).

status
    See geom(8).

load
    See geom(8).

unload
    See geom(8).

Additional options:

-f  Force the removal of the specified labels.

-v  Be more verbose.

SYSCTL VARIABLES
The following sysctl(8) variables can be used to control the behavior of the LABEL GEOM class. The default value is shown next to each variable.

kern.geom.label.debug: 0
    Debug level of the LABEL GEOM class. This can be set to a number between 0 and 2 inclusive. If set to 0 minimal debug information is printed, and if set to 2 the maximum amount of debug information is printed.

kern.geom.label.*.enable: 1
    Most LABEL providers implement a sysctl(8) flag and a tunable variable named in the above format. This flag controls if the label provider will be active, tasting devices and creating label nodes in the devfs(4) tree. It is sometimes desirable to disable certain label types if they conflict with other classes in complex GEOM topologies.

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

EXAMPLES
The following example shows how to set up a label for disk “da2”, create a file system on it, and mount it:

    glabel label -v usr /dev/da2
    newfs /dev/label/usr
    mount /dev/label/usr /usr
    [...]
    umount /usr
    glabel stop usr
    glabel unload

The next example shows how to set up a label for a UFS file system:

    tunefs -L data /dev/da4s1a
    mount /dev/ufs/data /mnt/data

SEE ALSO
geom(4), loader.conf(5), geom(8), mount(8), newfs(8), sysctl(8), tunefs(8), umount(8)

HISTORY
The glabel utility appeared in FreeBSD 5.3.

AUTHORS
Pawel Jakub Dawidek <pjd@FreeBSD.org>