GLABEL(8)               FreeBSD System Manager's Manual              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:

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

     Support for partition metadata is implemented for:

           o   GPT labels (directory /dev/gpt/).
           o   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>

FreeBSD 15.1-STABLE-HBSD        April 19, 2024                       GLABEL(8)