{
    "content": [
        {
            "type": "text",
            "text": "# dmsetup (man)\n\n## NAME\n\ndmsetup — low level logical volume management\n\n## SYNOPSIS\n\ndmsetup clear devicename\ndmsetup create devicename [-u|--uuid uuid] [--addnodeoncreate|--addnodeonresume]\n[-n|--notable|--table table|tablefile] [--readahead [+]sectors|auto|none]\ndmsetup create --concise [concisedevicespecification]\ndmsetup deps [-o options] [devicename...]\ndmsetup help [-c|-C|--columns]\ndmsetup info [devicename...]\ndmsetup info -c|-C|--columns [--count count] [--interval seconds] [--nameprefixes]\n[--noheadings] [-o fields] [-O|--sort sortfields] [--separator separator] [de‐\nvicename]\ndmsetup load devicename [--table table|tablefile]\ndmsetup ls [--target targettype] [--exec command] [--tree] [-o options]\ndmsetup mangle [devicename...]\ndmsetup message devicename sector message\ndmsetup mknodes [devicename...]\ndmsetup reload devicename [--table table|tablefile]\ndmsetup remove [-f|--force] [--retry] [--deferred] devicename...\ndmsetup removeall [-f|--force] [--deferred]\ndmsetup rename devicename newname\ndmsetup rename devicename --setuuid uuid\ndmsetup resume devicename...  [--addnodeoncreate|--addnodeonresume] [--noflush] [--nolockfs]\n[--readahead [+]sectors|auto|none]\ndmsetup setgeometry devicename cyl head sect start\ndmsetup splitname devicename [subsystem]\ndmsetup stats command [options]\ndmsetup status [--target targettype] [--noflush] [devicename...]\ndmsetup suspend [--nolockfs] [--noflush] devicename...\ndmsetup table [--concise] [--target targettype] [--showkeys] [devicename...]\n\n## DESCRIPTION\n\ndmsetup  manages  logical  devices that use the device-mapper driver.  Devices are created by\nloading a table that specifies a target for each sector (512 bytes) in the logical device.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS** (4 subsections)\n- **DESCRIPTION**\n- **OPTIONS** (23 subsections)\n- **COMMANDS** (4 subsections)\n- **TABLE FORMAT** (2 subsections)\n- **EXAMPLES**\n- **CONCISE FORMAT**\n- **ENVIRONMENT VARIABLES**\n- **AUTHORS**\n- **SEE ALSO**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "dmsetup",
        "section": "",
        "mode": "man",
        "summary": "dmsetup — low level logical volume management",
        "synopsis": "dmsetup clear devicename\ndmsetup create devicename [-u|--uuid uuid] [--addnodeoncreate|--addnodeonresume]\n[-n|--notable|--table table|tablefile] [--readahead [+]sectors|auto|none]\ndmsetup create --concise [concisedevicespecification]\ndmsetup deps [-o options] [devicename...]\ndmsetup help [-c|-C|--columns]\ndmsetup info [devicename...]\ndmsetup info -c|-C|--columns [--count count] [--interval seconds] [--nameprefixes]\n[--noheadings] [-o fields] [-O|--sort sortfields] [--separator separator] [de‐\nvicename]\ndmsetup load devicename [--table table|tablefile]\ndmsetup ls [--target targettype] [--exec command] [--tree] [-o options]\ndmsetup mangle [devicename...]\ndmsetup message devicename sector message\ndmsetup mknodes [devicename...]\ndmsetup reload devicename [--table table|tablefile]\ndmsetup remove [-f|--force] [--retry] [--deferred] devicename...\ndmsetup removeall [-f|--force] [--deferred]\ndmsetup rename devicename newname\ndmsetup rename devicename --setuuid uuid\ndmsetup resume devicename...  [--addnodeoncreate|--addnodeonresume] [--noflush] [--nolockfs]\n[--readahead [+]sectors|auto|none]\ndmsetup setgeometry devicename cyl head sect start\ndmsetup splitname devicename [subsystem]\ndmsetup stats command [options]\ndmsetup status [--target targettype] [--noflush] [devicename...]\ndmsetup suspend [--nolockfs] [--noflush] devicename...\ndmsetup table [--concise] [--target targettype] [--showkeys] [devicename...]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "",
                "long": "--addnodeoncreate",
                "arg": null,
                "description": "Ensure /dev/mapper node exists after dmsetup create."
            },
            {
                "flag": "",
                "long": "--addnodeonresume",
                "arg": null,
                "description": "Ensure /dev/mapper node exists after dmsetup resume (default with udev)."
            },
            {
                "flag": "",
                "long": "--checks",
                "arg": null,
                "description": "Perform additional checks on the operations requested and report potential problems. Useful when debugging scripts. In some cases these checks may slow down operations noticeably."
            },
            {
                "flag": "-C",
                "long": "--columns",
                "arg": null,
                "description": "Display output in columns rather than as Field: Value lines. --count count Specify the number of times to repeat a report. Set this to zero continue until inter‐ rupted. The default interval is one second."
            },
            {
                "flag": "-f",
                "long": "--force",
                "arg": null,
                "description": "Try harder to complete operation."
            },
            {
                "flag": "-h",
                "long": "--help",
                "arg": null,
                "description": "Outputs a summary of the commands available, optionally including the list of report fields (synonym with help command)."
            },
            {
                "flag": "",
                "long": "--inactive",
                "arg": null,
                "description": "When returning any table information from the kernel report on the inactive table in‐ stead of the live table. Requires kernel driver version 4.16.0 or above. --interval seconds Specify the interval in seconds between successive iterations for repeating reports. If --interval is specified but --count is not, reports will continue to repeat until interrupted. The default interval is one second. --manglename auto|hex|none Mangle any character not on a whitelist using manglingmode when processing device- mapper device names and UUIDs. The names and UUIDs are mangled on input and unmangled on output where the mangling mode is one of: auto (only do the mangling if not mangled yet, do nothing if already mangled, error on mixed), hex (always do the mangling) and none (no mangling). Default mode is auto. Character whitelist: 0-9, A-Z, a-z, #+-.:=@. This whitelist is also supported by udev. Any character not on a whitelist is replaced with its hex value (two digits) prefixed by \\x. Mangling mode could be also set through DMDEFAULTNAMEMANGLINGMODE environment variable."
            },
            {
                "flag": "-j",
                "long": "--major",
                "arg": null,
                "description": "Specify the major number."
            },
            {
                "flag": "-m",
                "long": "--minor",
                "arg": null,
                "description": "Specify the minor number."
            },
            {
                "flag": "-n",
                "long": "--notable",
                "arg": null,
                "description": "When creating a device, don't load any table."
            },
            {
                "flag": "",
                "long": "--nameprefixes",
                "arg": null,
                "description": "Add a \"DM\" prefix plus the field name to the output. Useful with --noheadings to produce a list of field=value pairs that can be used to set environment variables (for example, in udev(7) rules). --noheadings Suppress the headings line when using columnar output. --noflush Do not flush outstading I/O when suspending a device, or do not commit thin-pool metadata when obtaining thin-pool status."
            },
            {
                "flag": "",
                "long": "--nolockfs",
                "arg": null,
                "description": "Do not attempt to synchronize filesystem eg, when suspending a device."
            },
            {
                "flag": "",
                "long": "--noopencount",
                "arg": null,
                "description": "Tell the kernel not to supply the open reference count for the device."
            },
            {
                "flag": "",
                "long": "--noudevrules",
                "arg": null,
                "description": "Do not allow udev to manage nodes for devices in device-mapper directory."
            },
            {
                "flag": "",
                "long": "--noudevsync",
                "arg": null,
                "description": "Do not synchronise with udev when creating, renaming or removing devices."
            },
            {
                "flag": "-o",
                "long": "--options",
                "arg": null,
                "description": "Specify which fields to display. --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. The value none is equivalent to specifying zero."
            },
            {
                "flag": "-r",
                "long": "--readonly",
                "arg": null,
                "description": "Set the table being loaded read-only."
            },
            {
                "flag": "-S",
                "long": "--select",
                "arg": null,
                "description": "Process only items that match selection criteria. If the command is producing report output, adding the \"selected\" column (-o selected) displays all rows and shows 1 if the row matches the selection and 0 otherwise. The selection criteria are defined by specifying column names and their valid values while making use of supported compari‐ son operators. As a quick help and to see full list of column names that can be used in selection and the set of supported selection operators, check the output of dm‐‐ setup info -c -S help command. --table table Specify a one-line table directly on the command line. See below for more information on the table format. --udevcookie cookie Use cookie for udev synchronisation. Note: Same cookie should be used for same type of operations i.e. creation of multiple different devices. It's not adviced to combine different operations on the single device."
            },
            {
                "flag": "-u",
                "long": "--uuid",
                "arg": null,
                "description": "Specify the uuid."
            },
            {
                "flag": "-y",
                "long": "--yes",
                "arg": null,
                "description": "Answer yes to all prompts automatically."
            },
            {
                "flag": "-v",
                "long": "--verbose",
                "arg": null,
                "description": "Produce additional output."
            },
            {
                "flag": "",
                "long": "--verifyudev",
                "arg": null,
                "description": "If udev synchronisation is enabled, verify that udev operations get performed cor‐ rectly and try to fix up the device nodes afterwards if not."
            },
            {
                "flag": "",
                "long": "--version",
                "arg": null,
                "description": "Display the library and kernel driver version."
            }
        ],
        "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"
        ],
        "see_also": [
            {
                "name": "dmstats",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/dmstats/8/json"
            },
            {
                "name": "udev",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/udev/7/json"
            },
            {
                "name": "udevadm",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/udevadm/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 28,
                "subsections": [
                    {
                        "name": "dmsetup targets",
                        "lines": 2
                    },
                    {
                        "name": "dmsetup udevcookie",
                        "lines": 1
                    },
                    {
                        "name": "dmsetup udevcreatecookie",
                        "lines": 2
                    },
                    {
                        "name": "dmsetup version",
                        "lines": 6
                    }
                ]
            },
            {
                "name": "DESCRIPTION",
                "lines": 9,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "--addnodeoncreate",
                        "lines": 2,
                        "long": "--addnodeoncreate"
                    },
                    {
                        "name": "--addnodeonresume",
                        "lines": 2,
                        "long": "--addnodeonresume"
                    },
                    {
                        "name": "--checks",
                        "lines": 4,
                        "long": "--checks"
                    },
                    {
                        "name": "-c -C --columns",
                        "lines": 6,
                        "flag": "-C",
                        "long": "--columns"
                    },
                    {
                        "name": "-f --force",
                        "lines": 2,
                        "flag": "-f",
                        "long": "--force"
                    },
                    {
                        "name": "-h --help",
                        "lines": 3,
                        "flag": "-h",
                        "long": "--help"
                    },
                    {
                        "name": "--inactive",
                        "lines": 18,
                        "long": "--inactive"
                    },
                    {
                        "name": "-j --major",
                        "lines": 2,
                        "flag": "-j",
                        "long": "--major"
                    },
                    {
                        "name": "-m --minor",
                        "lines": 2,
                        "flag": "-m",
                        "long": "--minor"
                    },
                    {
                        "name": "-n --notable",
                        "lines": 2,
                        "flag": "-n",
                        "long": "--notable"
                    },
                    {
                        "name": "--nameprefixes",
                        "lines": 9,
                        "long": "--nameprefixes"
                    },
                    {
                        "name": "--nolockfs",
                        "lines": 2,
                        "long": "--nolockfs"
                    },
                    {
                        "name": "--noopencount",
                        "lines": 2,
                        "long": "--noopencount"
                    },
                    {
                        "name": "--noudevrules",
                        "lines": 2,
                        "long": "--noudevrules"
                    },
                    {
                        "name": "--noudevsync",
                        "lines": 2,
                        "long": "--noudevsync"
                    },
                    {
                        "name": "-o --options",
                        "lines": 8,
                        "flag": "-o",
                        "long": "--options"
                    },
                    {
                        "name": "-r --readonly",
                        "lines": 2,
                        "flag": "-r",
                        "long": "--readonly"
                    },
                    {
                        "name": "-S --select",
                        "lines": 17,
                        "flag": "-S",
                        "long": "--select"
                    },
                    {
                        "name": "-u --uuid",
                        "lines": 2,
                        "flag": "-u",
                        "long": "--uuid"
                    },
                    {
                        "name": "-y --yes",
                        "lines": 2,
                        "flag": "-y",
                        "long": "--yes"
                    },
                    {
                        "name": "-v --verbose -v --verbose",
                        "lines": 2,
                        "flag": "-v",
                        "long": "--verbose"
                    },
                    {
                        "name": "--verifyudev",
                        "lines": 3,
                        "long": "--verifyudev"
                    },
                    {
                        "name": "--version",
                        "lines": 2,
                        "long": "--version"
                    }
                ]
            },
            {
                "name": "COMMANDS",
                "lines": 155,
                "subsections": [
                    {
                        "name": "targets",
                        "lines": 10
                    },
                    {
                        "name": "udevcookie",
                        "lines": 3
                    },
                    {
                        "name": "udevcreatecookie",
                        "lines": 23
                    },
                    {
                        "name": "version",
                        "lines": 13
                    }
                ]
            },
            {
                "name": "TABLE FORMAT",
                "lines": 39,
                "subsections": [
                    {
                        "name": "multipath",
                        "lines": 4
                    },
                    {
                        "name": "snapshot",
                        "lines": 10
                    }
                ]
            },
            {
                "name": "EXAMPLES",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "CONCISE FORMAT",
                "lines": 25,
                "subsections": []
            },
            {
                "name": "ENVIRONMENT VARIABLES",
                "lines": 11,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 8,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "dmsetup — low level logical volume management\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "dmsetup clear devicename\ndmsetup create devicename [-u|--uuid uuid] [--addnodeoncreate|--addnodeonresume]\n[-n|--notable|--table table|tablefile] [--readahead [+]sectors|auto|none]\ndmsetup create --concise [concisedevicespecification]\ndmsetup deps [-o options] [devicename...]\ndmsetup help [-c|-C|--columns]\ndmsetup info [devicename...]\ndmsetup info -c|-C|--columns [--count count] [--interval seconds] [--nameprefixes]\n[--noheadings] [-o fields] [-O|--sort sortfields] [--separator separator] [de‐\nvicename]\ndmsetup load devicename [--table table|tablefile]\ndmsetup ls [--target targettype] [--exec command] [--tree] [-o options]\ndmsetup mangle [devicename...]\ndmsetup message devicename sector message\ndmsetup mknodes [devicename...]\ndmsetup reload devicename [--table table|tablefile]\ndmsetup remove [-f|--force] [--retry] [--deferred] devicename...\ndmsetup removeall [-f|--force] [--deferred]\ndmsetup rename devicename newname\ndmsetup rename devicename --setuuid uuid\ndmsetup resume devicename...  [--addnodeoncreate|--addnodeonresume] [--noflush] [--nolockfs]\n[--readahead [+]sectors|auto|none]\ndmsetup setgeometry devicename cyl head sect start\ndmsetup splitname devicename [subsystem]\ndmsetup stats command [options]\ndmsetup status [--target targettype] [--noflush] [devicename...]\ndmsetup suspend [--nolockfs] [--noflush] devicename...\ndmsetup table [--concise] [--target targettype] [--showkeys] [devicename...]",
                "subsections": [
                    {
                        "name": "dmsetup targets",
                        "content": "dmsetup udevcomplete cookie\ndmsetup udevcompleteall [ageinminutes]"
                    },
                    {
                        "name": "dmsetup udevcookie",
                        "content": ""
                    },
                    {
                        "name": "dmsetup udevcreatecookie",
                        "content": "dmsetup udevflags cookie\ndmsetup udevreleasecookie [cookie]"
                    },
                    {
                        "name": "dmsetup version",
                        "content": "dmsetup wait [--noflush] devicename [eventnr]\ndmsetup wipetable devicename...  [-f|--force] [--noflush] [--nolockfs]\n\ndevmapname major minor\ndevmapname major:minor\n"
                    }
                ]
            },
            "DESCRIPTION": {
                "content": "dmsetup  manages  logical  devices that use the device-mapper driver.  Devices are created by\nloading a table that specifies a target for each sector (512 bytes) in the logical device.\n\nThe first argument to dmsetup is a command.  The second argument is the logical  device  name\nor uuid.\n\nInvoking  the dmsetup tool as devmapname (which is not normally distributed and is supported\nonly for historical reasons) is equivalent to dmsetup info -c --noheadings -j major -m minor.\n",
                "subsections": []
            },
            "OPTIONS": {
                "content": "",
                "subsections": [
                    {
                        "name": "--addnodeoncreate",
                        "content": "Ensure /dev/mapper node exists after dmsetup create.\n",
                        "long": "--addnodeoncreate"
                    },
                    {
                        "name": "--addnodeonresume",
                        "content": "Ensure /dev/mapper node exists after dmsetup resume (default with udev).\n",
                        "long": "--addnodeonresume"
                    },
                    {
                        "name": "--checks",
                        "content": "Perform additional checks on the operations requested and report  potential  problems.\nUseful  when  debugging  scripts.  In some cases these checks may slow down operations\nnoticeably.\n",
                        "long": "--checks"
                    },
                    {
                        "name": "-c -C --columns",
                        "content": "Display output in columns rather than as Field: Value lines.\n\n--count count\nSpecify the number of times to repeat a report. Set this to zero continue until inter‐\nrupted.  The default interval is one second.\n",
                        "flag": "-C",
                        "long": "--columns"
                    },
                    {
                        "name": "-f --force",
                        "content": "Try harder to complete operation.\n",
                        "flag": "-f",
                        "long": "--force"
                    },
                    {
                        "name": "-h --help",
                        "content": "Outputs  a  summary of the commands available, optionally including the list of report\nfields (synonym with help command).\n",
                        "flag": "-h",
                        "long": "--help"
                    },
                    {
                        "name": "--inactive",
                        "content": "When returning any table information from the kernel report on the inactive table  in‐\nstead of the live table.  Requires kernel driver version 4.16.0 or above.\n\n--interval seconds\nSpecify  the  interval in seconds between successive iterations for repeating reports.\nIf --interval is specified but --count is not, reports will continue to  repeat  until\ninterrupted.  The default interval is one second.\n\n--manglename auto|hex|none\nMangle  any  character  not on a whitelist using manglingmode when processing device-\nmapper device names and UUIDs. The names and UUIDs are mangled on input and  unmangled\non output where the mangling mode is one of: auto (only do the mangling if not mangled\nyet, do nothing if already mangled, error on mixed), hex (always do the mangling)  and\nnone  (no  mangling).   Default  mode  is  auto.   Character whitelist: 0-9, A-Z, a-z,\n#+-.:=@. This whitelist is also supported by udev. Any character not on  a  whitelist\nis  replaced  with  its hex value (two digits) prefixed by \\x.  Mangling mode could be\nalso set through DMDEFAULTNAMEMANGLINGMODE environment variable.\n",
                        "long": "--inactive"
                    },
                    {
                        "name": "-j --major",
                        "content": "Specify the major number.\n",
                        "flag": "-j",
                        "long": "--major"
                    },
                    {
                        "name": "-m --minor",
                        "content": "Specify the minor number.\n",
                        "flag": "-m",
                        "long": "--minor"
                    },
                    {
                        "name": "-n --notable",
                        "content": "When creating a device, don't load any table.\n",
                        "flag": "-n",
                        "long": "--notable"
                    },
                    {
                        "name": "--nameprefixes",
                        "content": "Add a \"DM\" prefix plus the field name to the output.   Useful  with  --noheadings  to\nproduce a list of field=value pairs that can be used to set environment variables (for\nexample, in udev(7) rules).\n\n--noheadings Suppress the headings line when using columnar output.\n\n--noflush Do not flush outstading I/O when suspending a device, or do  not  commit  thin-pool\nmetadata when obtaining thin-pool status.\n",
                        "long": "--nameprefixes"
                    },
                    {
                        "name": "--nolockfs",
                        "content": "Do not attempt to synchronize filesystem eg, when suspending a device.\n",
                        "long": "--nolockfs"
                    },
                    {
                        "name": "--noopencount",
                        "content": "Tell the kernel not to supply the open reference count for the device.\n",
                        "long": "--noopencount"
                    },
                    {
                        "name": "--noudevrules",
                        "content": "Do not allow udev to manage nodes for devices in device-mapper directory.\n",
                        "long": "--noudevrules"
                    },
                    {
                        "name": "--noudevsync",
                        "content": "Do not synchronise with udev when creating, renaming or removing devices.\n",
                        "long": "--noudevsync"
                    },
                    {
                        "name": "-o --options",
                        "content": "Specify which fields to display.\n\n--readahead [+]sectors|auto|none\nSpecify  read  ahead size in units of sectors.  The default value is auto which allows\nthe kernel to choose a suitable value automatically.  The + prefix lets you specify  a\nminimum  value  which  will  not be used if it is smaller than the value chosen by the\nkernel.  The value none is equivalent to specifying zero.\n",
                        "flag": "-o",
                        "long": "--options"
                    },
                    {
                        "name": "-r --readonly",
                        "content": "Set the table being loaded read-only.\n",
                        "flag": "-r",
                        "long": "--readonly"
                    },
                    {
                        "name": "-S --select",
                        "content": "Process only items that match selection criteria.  If the command is producing  report\noutput,  adding  the  \"selected\" column (-o selected) displays all rows and shows 1 if\nthe row matches the selection and 0 otherwise. The selection criteria are  defined  by\nspecifying  column names and their valid values while making use of supported compari‐\nson operators. As a quick help and to see full list of column names that can  be  used\nin  selection  and  the  set of supported selection operators, check the output of dm‐‐\nsetup info -c -S help command.\n\n--table table\nSpecify a one-line table directly on the command line.  See below for more information\non the table format.\n\n--udevcookie cookie\nUse  cookie  for udev synchronisation.  Note: Same cookie should be used for same type\nof operations i.e. creation of multiple different devices. It's not adviced to combine\ndifferent operations on the single device.\n",
                        "flag": "-S",
                        "long": "--select"
                    },
                    {
                        "name": "-u --uuid",
                        "content": "Specify the uuid.\n",
                        "flag": "-u",
                        "long": "--uuid"
                    },
                    {
                        "name": "-y --yes",
                        "content": "Answer yes to all prompts automatically.\n",
                        "flag": "-y",
                        "long": "--yes"
                    },
                    {
                        "name": "-v --verbose -v --verbose",
                        "content": "Produce additional output.\n",
                        "flag": "-v",
                        "long": "--verbose"
                    },
                    {
                        "name": "--verifyudev",
                        "content": "If  udev  synchronisation  is  enabled, verify that udev operations get performed cor‐\nrectly and try to fix up the device nodes afterwards if not.\n",
                        "long": "--verifyudev"
                    },
                    {
                        "name": "--version",
                        "content": "Display the library and kernel driver version.\n",
                        "long": "--version"
                    }
                ]
            },
            "COMMANDS": {
                "content": "clear devicename\nDestroys the table in the inactive table slot for devicename.\n\ncreate devicename [-u|--uuid uuid] [--addnodeoncreate|--addnodeonresume]\n[-n|--notable|--table table|tablefile] [--readahead [+]sectors|auto|none]\nCreates  a  device with the given name.  If table or tablefile is supplied, the table\nis loaded and made live.  Otherwise a table is read from standard input  unless  --no‐‐\ntable  is  used.   The optional uuid can be used in place of devicename in subsequent\ndmsetup commands.  If successful the device will appear in table and for  live  device\nthe  node  /dev/mapper/devicename  is created.  See below for more information on the\ntable format.\n\ncreate --concise [concisedevicespecification]\nCreates one or more devices from a concise device specification.  Each device is spec‐\nified  by a comma-separated list: name, uuid, minor number, flags, comma-separated ta‐\nble lines.  Flags defaults to read-write (rw) or may be read-only (ro).   Uuid,  minor\nnumber  and  flags  are optional so those fields may be empty.  A semi-colon separates\nspecifications of different devices.  Use a backslash to escape the following  charac‐\nter, for example a comma or semi-colon in a name or table. See also CONCISE FORMAT be‐\nlow.\n\ndeps [-o options] [devicename...]\nOutputs a list of devices referenced by the live table for the specified  device.  De‐\nvice  names  on  output can be customised by following options: devno (major and minor\npair, used by default), blkdevname (block device name), devname (map name for  device-\nmapper devices, equal to blkdevname otherwise).\n\nhelp [-c|-C|--columns]\nOutputs  a  summary of the commands available, optionally including the list of report\nfields.\n\ninfo [devicename...]\nOutputs some brief information about the device in the form:\nState: SUSPENDED|ACTIVE, READ-ONLY\nTables present: LIVE and/or INACTIVE\nOpen reference count\nLast event sequence number (used by wait)\nMajor and minor device number\nNumber of targets in the live table\nUUID\n\ninfo -c|-C|--columns [--count count] [--interval seconds] [--nameprefixes] [--noheadings] [-o\nfields] [-O|--sort sortfields] [--separator separator] [devicename]\nOutput  you  can  customise.  Fields are comma-separated and chosen from the following\nlist: name, major, minor, attr, open, segments, events, uuid.  Attributes are: (L)ive,\n(I)nactive,  (s)uspended, (r)ead-only, read-(w)rite.  Precede the list with '+' to ap‐\npend to the default selection of columns instead of replacing it.   Precede  any  sort\nfield with '-' for a reverse sort on that column.\n\nls [--target targettype] [--exec command] [--tree] [-o options]\nList  device names.  Optionally only list devices that have at least one target of the\nspecified type.  Optionally execute a command for each device.  The device name is ap‐\npended to the supplied command.  Device names on output can be customised by following\noptions: devno (major and minor pair,  used  by  default),  blkdevname  (block  device\nname),  devname  (map  name for device-mapper devices, equal to blkdevname otherwise).\n--tree displays dependencies between devices as a tree.  It accepts  a  comma-separate\nlist  of  options.   Some  specify  the  information  displayed against each node: de‐‐\nvice/nodevice; blkdevname; active, open, rw, uuid.  Others specify  how  the  tree  is\ndisplayed: ascii, utf, vt100; compact, inverted, notrunc.\n\nload|reload devicename [--table table|tablefile]\nLoads table or tablefile into the inactive table slot for devicename.  If neither is\nsupplied, reads a table from standard input.\n\nmangle [devicename...]\nEnsure existing device-mapper devicename and UUID is in the correct mangled form con‐\ntaining  only whitelisted characters (supported by udev) and do a rename if necessary.\nAny character not on the whitelist will be mangled based on the --manglename  setting.\nAutomatic rename works only for device names and not for device UUIDs because the ker‐\nnel does not allow changing the UUID of active devices. Any incorrect  UUIDs  are  re‐\nported  only  and they must be manually corrected by deactivating the device first and\nthen reactivating it with proper mangling mode used (see also --manglename).\n\nmessage devicename sector message\nSend message to target. If sector not needed use 0.\n\nmknodes [devicename...]\nEnsure that the node in /dev/mapper for devicename is correct.  If no devicename  is\nsupplied,  ensure that all nodes in /dev/mapper correspond to mapped devices currently\nloaded by the device-mapper kernel driver, adding, changing or removing nodes as  nec‐\nessary.\n\nremove [-f|--force] [--retry] [--deferred] devicename...\nRemoves  a  device.   It will no longer be visible to dmsetup.  Open devices cannot be\nremoved, but adding --force will replace the table with one that fails all I/O.  --de‐‐\nferred  will enable deferred removal of open devices - the device will be removed when\nthe last user closes it. The deferred  removal  feature  is  supported  since  version\n4.27.0  of  the  device-mapper driver available in upstream kernel version 3.13.  (Use\ndmsetup version to check this.)  If an attempt to remove a device fails,  perhaps  be‐\ncause  a process run from a quick udev rule temporarily opened the device, the --retry\noption will cause the operation to be retried for a few seconds  before  failing.   Do\nNOT  combine  --force and --udevcookie, as udev may start to process udev rules in the\nmiddle of error target replacement and result in nondeterministic result.\n\nremoveall [-f|--force] [--deferred]\nAttempts to remove all device definitions i.e. reset the driver.  This also runs  mkn‐‐\nodes  afterwards.   Use with care!  Open devices cannot be removed, but adding --force\nwill replace the table with one that fails all I/O.  --deferred will  enable  deferred\nremoval  of  open  devices  - the device will be removed when the last user closes it.\nThe deferred removal feature is supported since version 4.27.0  of  the  device-mapper\ndriver available in upstream kernel version 3.13.\n\nrename devicename newname\nRenames a device.\n\nrename devicename --setuuid uuid\nSets  the uuid of a device that was created without a uuid.  After a uuid has been set\nit cannot be changed.\n\nresume devicename...  [--addnodeoncreate|--addnodeonresume] [--noflush] [--nolockfs]\n[--readahead [+]sectors|auto|none]\nUn-suspends  a  device.  If an inactive table has been loaded, it becomes live.  Post‐\nponed I/O then gets re-queued for processing.\n\nsetgeometry devicename cyl head sect start\nSets the device geometry to C/H/S.\n\nsplitname devicename [subsystem]\nSplits given device name into subsystem constituents.  The default subsystem  is  LVM.\nLVM  currently  generates device names by concatenating the names of the Volume Group,\nLogical Volume and any internal Layer with a hyphen as separator.  Any hyphens  within\nthe  names  are doubled to escape them.  The precise encoding might change without no‐\ntice in any future release, so we recommend you always decode using the  current  ver‐\nsion of this command.\n\nstats command [options]\nManages IO statistics regions for devices.  See dmstats(8) for more details.\n\nstatus [--target targettype] [--noflush] [devicename...]\nOutputs  status information for each of the device's targets.  With --target, only in‐\nformation relating to the specified target type any is displayed.  With --noflush, the\nthin target (from version 1.3.0) doesn't commit any outstanding changes to disk before\nreporting its statistics.\n\n\nsuspend [--nolockfs] [--noflush] devicename...\nSuspends a device.  Any I/O that has already been mapped by the device but has not yet\ncompleted  will  be  flushed.  Any further I/O to that device will be postponed for as\nlong as the device is suspended.  If there's a filesystem on the device which supports\nthe  operation,  an  attempt will be made to sync it first unless --nolockfs is speci‐\nfied.  Some targets such as recent (October 2006) versions of  multipath  may  support\nthe  --noflush  option.  This lets outstanding I/O that has not yet reached the device\nto remain unflushed.\n\ntable [--concise] [--target targettype] [--showkeys] [devicename...]\nOutputs the current table for the device in a format that can be fed back in using the\ncreate  or  load  commands.  With --target, only information relating to the specified\ntarget type is displayed.  Real encryption keys are suppressed in the table output for\ncrypt  and  integrity  targets unless the --showkeys parameter is supplied. Kernel key\nreferences prefixed with : are not affected by the parameter and get displayed  always\n(crypt  target  only).   With --concise, the output is presented concisely on a single\nline.  Commas then separate the name, uuid, minor device number, flags ('ro' or  'rw')\nand  the table (if present). Semi-colons separate devices. Backslashes escape any com‐\nmas, semi-colons or backslashes.  See CONCISE FORMAT below.\n",
                "subsections": [
                    {
                        "name": "targets",
                        "content": "Displays the names and versions of the currently-loaded targets.\n\nudevcomplete cookie\nWake any processes that are waiting for udev  to  complete  processing  the  specified\ncookie.\n\nudevcompleteall [ageinminutes]\nRemove all cookies older than the specified number of minutes.  Any process waiting on\na cookie will be resumed immediately.\n"
                    },
                    {
                        "name": "udevcookie",
                        "content": "List all existing cookies. Cookies are system-wide semaphores with  keys  prefixed  by\ntwo predefined bytes (0x0D4D).\n"
                    },
                    {
                        "name": "udevcreatecookie",
                        "content": "Creates  a  new  cookie  to synchronize actions with udev processing.  The output is a\ncookie value. Normally we don't need to create cookies since dmsetup creates  and  de‐\nstroys  them for each action automatically. However, we can generate one explicitly to\ngroup several actions together and use only one cookie instead. We can define a cookie\nto  use  for each relevant command by using --udevcookie option. Alternatively, we can\nexport this value into the environment of the dmsetup process as DMUDEVCOOKIE  vari‐\nable and it will be used automatically with all subsequent commands until it is unset.\nInvoking this command will create system-wide semaphore that needs to  be  cleaned  up\nexplicitly by calling udevreleasecookie command.\n\nudevflags cookie\nParses  given cookie value and extracts any udev control flags encoded.  The output is\nin environment key format that is suitable for use in udev rules. If the flag has  its\nsymbolic   name   assigned   then   the  output  is  DMUDEVFLAG<flagname>  =  '1',\nDMUDEVFLAG<flagposition> = '1' otherwise.  Subsystem udev flags don't have symbolic\nnames assigned and these ones are always reported as DMSUBSYSTEMUDEVFLAG<flagposi‐\ntion> = '1'. There are 16 udev flags altogether.\n\nudevreleasecookie [cookie]\nWaits for all pending udev processing bound to given cookie value  and  clean  up  the\ncookie  with  underlying  semaphore.  If the cookie is not given directly, the command\nwill try to use a value defined by DMUDEVCOOKIE environment variable.\n"
                    },
                    {
                        "name": "version",
                        "content": "Outputs version information.\n\nwait [--noflush] devicename [eventnr]\nSleeps until the event counter for devicename exceeds eventnr.  Use -v  to  see  the\nevent  number  returned.   To wait until the next event is triggered, use info to find\nthe last event number.  With --noflush, the thin target (from version  1.3.0)  doesn't\ncommit any outstanding changes to disk before reporting its statistics.\n\nwipetable devicename...  [-f|--force] [--noflush] [--nolockfs]\nWait for any I/O in-flight through the device to complete, then replace the table with\na new table that fails any new I/O sent to the device.  If successful, this should re‐\nlease any devices held open by the device's table(s).\n"
                    }
                ]
            },
            "TABLE FORMAT": {
                "content": "Each line of the table specifies a single target and is of the form:\n\nlogicalstartsector numsectors targettype targetargs\n\nSimple target types and target args include:\n\nlinear destinationdevice startsector\nThe traditional linear mapping.\n\nstriped numstripes chunksize [destination startsector]...\nCreates a striped area.\ne.g. striped 2 32 /dev/hda1 0 /dev/hdb1 0 will map the first chunk (16k) as follows:\nLV chunk 1-> hda1, chunk 1\nLV chunk 2-> hdb1, chunk 1\nLV chunk 3-> hda1, chunk 2\nLV chunk 4-> hdb1, chunk 2\netc.\n\nerror  Errors  any  I/O  that  goes to this area.  Useful for testing or for creating devices\nwith holes in them.\n\nzero   Returns blocks of zeroes on reads.  Any data written is discarded silently.  This is a\nblock-device  equivalent  of  the  /dev/zero  character-device  data sink described in\nnull(4).\n\nMore complex targets include:\n\ncache  Improves performance of a block device (eg, a spindle) by dynamically  migrating  some\nof its data to a faster smaller device (eg, an SSD).\n\ncrypt  Transparent encryption of block devices using the kernel crypto API.\n\ndelay  Delays reads and/or writes to different devices.  Useful for testing.\n\nflakey Creates a similar mapping to the linear target but exhibits unreliable behaviour peri‐\nodically.  Useful for simulating failing devices when testing.\n\nmirror Mirrors data across two or more devices.\n",
                "subsections": [
                    {
                        "name": "multipath",
                        "content": "Mediates access through multiple paths to the same device.\n\nraid   Offers an interface to the kernel's software raid driver, md.\n"
                    },
                    {
                        "name": "snapshot",
                        "content": "Supports snapshots of devices.\n\nthin, thin-pool\nSupports thin provisioning of devices and also provides a better snapshot support.\n\nTo find out more about the various targets and their table formats and status  lines,  please\nread the files in the Documentation/device-mapper directory in the kernel source tree.  (Your\ndistribution might include a copy of this information in the documentation directory for  the\ndevice-mapper package.)\n"
                    }
                ]
            },
            "EXAMPLES": {
                "content": "# A simple linear read-only device\ntest-linear-small,,,ro,0 2097152 linear /dev/loop0 0, 2097152 2097152 linear /dev/loop1 0\n\n# Two linear devices\ntest-linear-small,,,,0 2097152 linear /dev/loop0  0;test-linear-large,,,,  0  2097152  linear\n/dev/loop1 0, 2097152 2097152 linear /dev/loop2 0\n",
                "subsections": []
            },
            "CONCISE FORMAT": {
                "content": "A concise representation of one of more devices.\n\n- A comma separates the fields of each device.\n- A semi-colon separates devices.\n\nThe representation of a device takes the form:\n\n<name>,<uuid>,<minor>,<flags>,<table>[,<table>+][;<devname>,<uuid>,<mi‐\nnor>,<flags>,<table>[,<table>+]]\n\nThe fields are:\n\nname   The name of the device.\n\nuuid   The UUID of the device (or empty).\n\nminor  The minor number of the device.  If empty, the kernel assigns a suitable minor number.\n\nflags  Supported flags are:\n\nro Sets the table being loaded for the device read-only\nrw Sets the table being loaded for the device read-write (default)\n\ntable  One line of the table. See TABLE FORMAT above.\n",
                "subsections": []
            },
            "ENVIRONMENT VARIABLES": {
                "content": "DMDEVDIR\nThe device directory name.  Defaults to \"/dev\" and must be an absolute path.\n\nDMUDEVCOOKIE\nA  cookie to use for all relevant commands to synchronize with udev processing.  It is\nan alternative to using --udevcookie option.\n\nDMDEFAULTNAMEMANGLINGMODE\nA default mangling mode. Defaults to \"auto\" and it is an alternative to  using  --man‐‐\nglename option.\n",
                "subsections": []
            },
            "AUTHORS": {
                "content": "Original version: Joe Thornber <thornber@redhat.com>\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "dmstats(8), udev(7), udevadm(8)\n\nLVM2 resource page: https://www.sourceware.org/lvm2/\nDevice-mapper resource page: http://sources.redhat.com/dm/\n\n\n\nLinux                                        Apr 06 2006                                  DMSETUP(8)",
                "subsections": []
            }
        }
    }
}