Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


DMSETUP(8)                   MAINTENANCE COMMANDS                   DMSETUP(8)



NAME
       dmsetup - low level logical volume management

SYNOPSIS
       dmsetup help [-c|-C|--columns]
       dmsetup create device_name [-u uuid] [--notable | --table <table> |
       table_file]
       dmsetup remove [-f|--force] device_name
       dmsetup remove_all [-f|--force]
       dmsetup suspend [--nolockfs] [--noflush] device_name
       dmsetup resume device_name
       dmsetup load device_name [--table <table> | table_file]
       dmsetup clear device_name
       dmsetup reload device_name [--table <table> | table_file]
       dmsetup rename device_name new_name
       dmsetup message device_name sector message
       dmsetup ls [--target target_type] [--exec command] [--tree [-o
       options]]
       dmsetup info [device_name]
       dmsetup info -c|-C|--columns [--noheadings] [--separator separator] [-o
       fields] [-O|--sort sort_fields] [device_name]
       dmsetup deps [device_name]
       dmsetup status [--target target_type] [device_name]
       dmsetup table [--target target_type] [device_name]
       dmsetup wait device_name [event_nr]
       dmsetup mknodes [device_name]
       dmsetup targets
       dmsetup version
       dmsetup setgeometry device_name cyl head sect start

       devmap_name major minor
       devmap_name major:minor

DESCRIPTION
       dmsetup manages logical devices that use the device-mapper driver.
       Devices are created by loading a table that specifies a target for each
       sector (512 bytes) in the logical device.

       The first argument to dmsetup is a command.  The second argument is the
       logical device name or uuid.

       Invoking the command as devmap_name is equivalent to
       dmsetup info -c --noheadings -j major -m minor.

OPTIONS
       -c|-C|--columns
              Display output in columns rather than as Field: Value lines.

       -j|--major major
              Specify the major number.

       -m|--minor minor
              Specify the minor number.

       -n|--noheadings
              Suppress the headings line when using columnar output.

       --noopencount
              Tell the kernel not to supply the open reference count for the
              device.

       --notable
              When creating a device, don't load any table.

       -o|--options
              Specify which fields to display.

       -r|--readonly
              Set the table being loaded read-only.

       --readahead [+]<sectors>|auto|none
              Specify read ahead size in units of sectors.  The default value
              is "auto" which allows the kernel to choose a suitable value
              automatically.  The + prefix lets you specify a minimum value
              which will not be used if it is smaller than the value chosen by
              the kernel.  "None" is equivalent to specifying zero.

       --table <table>
              Specify a one-line table directly on the command line.

       -u|--uuid
              Specify the uuid.

       -v|--verbose [-v|--verbose]
              Produce additional output.

       --version
              Display the library and kernel driver version.

COMMANDS
       create device_name [-u uuid] [--notable | --table <table> | table_file]
              Creates a device with the given name.  If table_file or <table>
              is supplied, the table is loaded and made live.  Otherwise a
              table is read from standard input unless --notable is used.  The
              optional uuid can be used in place of device_name in subsequent
              dmsetup commands.  If successful a device will appear as
              /dev/device-mapper/<device-name>.  See below for information on
              the table format.

       deps   [device_name]
              Outputs a list of (major, minor) pairs for devices referenced by
              the live table for the specified device.

       help   [-c|-C|--columns]
              Outputs a summary of the commands available, optionally
              including the list of report fields.

       info   [device_name]
              Outputs some brief information about the device in the form:
                  State: SUSPENDED|ACTIVE, READ-ONLY
                  Tables present: LIVE and/or INACTIVE
                  Open reference count
                  Last event sequence number (used by wait)
                  Major and minor device number
                  Number of targets in the live table
                  UUID

       info   [--noheadings] [--separator separator] [-o fields] [-O|--sort
              sort_fields] [device_name]
              Output you can customise.  Fields are comma-separated and chosen
              from the following list: name, major, minor, attr, open,
              segments, events, uuid.  Attributes are: (L)ive, (I)nactive,
              (s)uspended, (r)ead-only, read-(w)rite.  Precede the list with
              '+' to append to the default selection of columns instead of
              replacing it.  Precede any sort_field with - for a reverse sort
              on that column.

       ls     [--target target_type] [--exec command] [--tree [-o options]]
              List device names.  Optionally only list devices that have at
              least one target of the specified type.  Optionally execute a
              command for each device.  The device name is appended to the
              supplied command.  --tree displays dependencies between devices
              as a tree.  It accepts a comma-separate list of options.  Some
              specify the information displayed against each node:
              device/nodevice; active, open, rw, uuid.  Others specify how the
              tree is displayed: ascii, utf, vt100; compact, inverted,
              notrunc.

       load|reload
              device_name [--table <table> | table_file]
              Loads <table> or table_file into the inactive table slot for
              device_name.  If neither is supplied, reads a table from
              standard input.

       message
              device_name sector message
              Send message to target. If sector not needed use 0.

       mknodes
              [device_name]
              Ensure that the node in /dev/mapper for device_name is correct.
              If no device_name is supplied, ensure that all nodes in
              /dev/mapper correspond to mapped devices currently loaded by the
              device-mapper kernel driver, adding, changing or removing nodes
              as necessary.

       remove [-f|--force] device_name
              Removes a device.  It will no longer be visible to dmsetup.
              Open devices cannot be removed except with older kernels that
              contain a version of device-mapper prior to 4.8.0.  In this case
              the device will be deleted when its open_count drops to zero.
              From version 4.8.0 onwards, if a device can't be removed because
              an uninterruptible process is waiting for I/O to return from it,
              adding --force will replace the table with one that fails all
              I/O, which might allow the process to be killed.

       remove_all
              [-f|--force]
              Attempts to remove all device definitions i.e. reset the driver.
              Use with care!  From version 4.8.0 onwards, if devices can't be
              removed because uninterruptible processes are waiting for I/O to
              return from them, adding --force will replace the table with one
              that fails all I/O, which might allow the process to be killed.
              This also runs mknodes afterwards.

       rename device_name new_name
              Renames a device.

       resume device_name
              Un-suspends a device.  If an inactive table has been loaded, it
              becomes live.  Postponed I/O then gets re-queued for processing.

       setgeometry
              device_name cyl head sect start
              Sets the device geometry to C/H/S.

       status [--target target_type] [device_name]
              Outputs status information for each of the device's targets.
              With --target, only information relating to the specified target
              type is displayed.

       suspend
              [--nolockfs] [--noflush] device_name
              Suspends a device.  Any I/O that has already been mapped by the
              device but has not yet completed will be flushed.  Any further
              I/O to that device will be postponed for as long as the device
              is suspended.  If there's a filesystem on the device which
              supports the operation, an attempt will be made to sync it first
              unless --nolockfs is specified.  Some targets such as recent
              (October 2006) versions of multipath may support the --noflush
              option.  This lets outstanding I/O that has not yet reached the
              device to remain unflushed.

       table  [--target target_type] [device_name]
              Outputs the current table for the device in a format that can be
              fed back in using the create or load commands.  With --target,
              only information relating to the specified target type is
              displayed.

       targets
              Displays the names and versions of the currently-loaded targets.

       version
              Outputs version information.

       wait   device_name [event_nr]
              Sleeps until the event counter for device_name exceeds event_nr.
              Use -v to see the event number returned.  To wait until the next
              event is triggered, use info to find the last event number.

TABLE FORMAT
       Each line of the table specifies a single target and is of the form:
           logical_start_sector num_sectors target_type target_args

       There are currently three simple target types available together with
       more complex optional ones that implement snapshots and mirrors.


       linear destination_device start_sector
              The traditional linear mapping.


       striped
              num_stripes chunk_size [destination start_sector]+
              Creates a striped area.
              e.g. striped 2 32 /dev/hda1 0 /dev/hdb1 0 will map the first
              chunk (16k) as follows:
                  LV chunk 1 -> hda1, chunk 1
                  LV chunk 2 -> hdb1, chunk 1
                  LV chunk 3 -> hda1, chunk 2
                  LV chunk 4 -> hdb1, chunk 2
                  etc.


       error
              Errors any I/O that goes to this area.  Useful for testing or
              for creating devices with holes in them.


EXAMPLES
       # A table to join two disks together
       0 1028160 linear /dev/hda 0
       1028160 3903762 linear /dev/hdb 0


       # A table to stripe across the two disks,
       # and add the spare space from
       # hdb to the back of the volume

       0 2056320 striped 2 32 /dev/hda 0 /dev/hdb 0
       2056320 2875602 linear /dev/hdb 1028160


ENVIRONMENT VARIABLES
       DM_DEV_DIR
              The device directory name.  Defaults to "/dev" and must be an
              absolute path.


AUTHORS
       Original version: Joe Thornber (thornber@sistina.com)


SEE ALSO
       Device-mapper resource page: http://sources.redhat.com/dm/



Linux                             Apr 06 2006                       DMSETUP(8)