{
    "mode": "man",
    "parameter": "systemd-storagetm",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/systemd-storagetm/8/json",
    "generated": "2026-10-09T18:33:34Z",
    "synopsis": "systemd-storagetm.service\n/usr/lib/systemd/systemd-storagetm [OPTIONS...] [DEVICE]",
    "sections": {
        "NAME": {
            "content": "systemd-storagetm.service, systemd-storagetm - Exposes all local block devices as NVMe-TCP\nmass storage devices\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "systemd-storagetm.service\n\n/usr/lib/systemd/systemd-storagetm [OPTIONS...] [DEVICE]\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "systemd-storagetm.service is a service that exposes all local block devices as NVMe-TCP mass\nstorage devices. Its primary use-case is to be invoked by the storage-target-mode.target unit\nthat can be booted into.\n\nWarning: the NVMe disks are currently exposed without authentication or encryption, in\nread/write mode. This means network peers may read from and write to the device without any\nrestrictions. This functionality should hence only be used in a local setup.\n\nNote that to function properly networking must be configured too. The recommended mechanism\nto boot into a storage target mode is by adding \"rd.systemd.unit=storage-target-mode.target\nip=link-local\" on the kernel command line. Note that \"ip=link-local\" only configures\nlink-local IP, i.e. IPv4LL and IPv6LL, which means non-routable addresses. This is done for\nsecurity reasons, so that only systems on the local link can access the devices. Use\n\"ip=dhcp\" to assign routable addresses too. For further details see systemd-network-\ngenerator.service(8).\n\nUnless the --all switch is used expects one or more block devices or regular files to expose\nvia NVMe-TCP as argument.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "The following options are understood:\n",
            "subsections": [
                {
                    "name": "--nqn=",
                    "content": "Takes a string. If specified configures the NVMe Qualified Name to use for the exposed\nNVMe-TCP mass storage devices. The NQN should follow the syntax described in NVM Express\nBase Specification 2.0c[1], section 4.5 \"NVMe Qualified Names\". Note that the NQN\nspecified here will be suffixed with a dot and the the block device name before it is\nexposed on the NVMe target. If not specified defaults to\n\"nqn.2023-10.io.systemd:storagetm.ID\", where ID is replaced by a 128bit ID derived from\nmachine-id(5).\n\nAdded in version 255.\n\n--all, -a\nIf specified exposes all local block devices via NVMe-TCP, current and future (i.e. it\nwatches block devices come and go and updates the NVMe-TCP list as needed). Note that by\ndefault any block devices that originate on the same block device as the block device\nbacking the current root file system are excluded. If the switch is specified twice this\nsafety mechanism is disabled.\n\nAdded in version 255.\n"
                },
                {
                    "name": "-h --help",
                    "content": "Print a short help text and exit.\n",
                    "flag": "-h",
                    "long": "--help"
                },
                {
                    "name": "--version",
                    "content": "Print a short version string and exit.\n",
                    "long": "--version"
                }
            ]
        },
        "SEE ALSO": {
            "content": "systemd(1), systemd.special(7)\n",
            "subsections": []
        },
        "NOTES": {
            "content": "1. NVM Express Base Specification 2.0c\nhttps://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-2.0c-2022.10.04-Ratified.pdf\n\nsystemd 255                                                             SYSTEMD-STORAGETM.SERVICE(8)",
            "subsections": []
        }
    },
    "summary": "systemd-storagetm.service, systemd-storagetm - Exposes all local block devices as NVMe-TCP mass storage devices",
    "flags": [
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Takes a string. If specified configures the NVMe Qualified Name to use for the exposed NVMe-TCP mass storage devices. The NQN should follow the syntax described in NVM Express Base Specification 2.0c[1], section 4.5 \"NVMe Qualified Names\". Note that the NQN specified here will be suffixed with a dot and the the block device name before it is exposed on the NVMe target. If not specified defaults to \"nqn.2023-10.io.systemd:storagetm.ID\", where ID is replaced by a 128bit ID derived from machine-id(5). Added in version 255. --all, -a If specified exposes all local block devices via NVMe-TCP, current and future (i.e. it watches block devices come and go and updates the NVMe-TCP list as needed). Note that by default any block devices that originate on the same block device as the block device backing the current root file system are excluded. If the switch is specified twice this safety mechanism is disabled. Added in version 255."
        },
        {
            "flag": "-h",
            "long": "--help",
            "arg": null,
            "description": "Print a short help text and exit."
        },
        {
            "flag": "",
            "long": "--version",
            "arg": null,
            "description": "Print a short version string and exit."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "systemd",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/systemd/1/json"
        },
        {
            "name": "systemd.special",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/systemd.special/7/json"
        }
    ]
}