{
    "mode": "man",
    "parameter": "CRYPTSETUP-CONFIG",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/CRYPTSETUP-CONFIG/8/json",
    "generated": "2026-10-06T09:52:56Z",
    "synopsis": "cryptsetup config <options> <device>",
    "sections": {
        "NAME": {
            "content": "cryptsetup-config - set permanent configuration options (store to LUKS header)\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "cryptsetup config <options> <device>\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Set permanent configuration options (store to LUKS header). The config command is supported\nonly for LUKS2.\n\nThe permanent options can be --priority to set priority (normal, prefer, ignore) for keyslot\n(specified by --key-slot) or --label and --subsystem.\n\n<options> can be [--priority, --label, --subsystem, --key-slot, --header, --disable-locks].\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "--key-slot, -S <0-N>",
                    "content": "For LUKS operations that add key material, this option allows you to specify which key\nslot is selected for the new key.\n\nThe maximum number of key slots depends on the LUKS version. LUKS1 can have up to 8 key\nslots. LUKS2 can have up to 32 key slots based on key slot area size and key size, but a\nvalid key slot ID can always be between 0 and 31 for LUKS2.\n",
                    "flag": "-S",
                    "long": "--key-slot",
                    "arg": "<0-N>"
                },
                {
                    "name": "--header <device or file storing the LUKS header>",
                    "content": "Use a detached (separated) metadata device or file where the LUKS header is stored. This\noption allows one to store ciphertext and LUKS header on different devices.\n\nFor commands that change the LUKS header (e.g. luksAddKey), specify the device or file\nwith the LUKS header directly as the LUKS device.\n",
                    "long": "--header",
                    "arg": "LUKS"
                },
                {
                    "name": "--disable-locks",
                    "content": "Disable lock protection for metadata on disk. This option is valid only for LUKS2 and\nignored for other formats.\n\nWARNING: Do not use this option unless you run cryptsetup in a restricted environment\nwhere locking is impossible to perform (where /run directory cannot be used).\n",
                    "long": "--disable-locks"
                },
                {
                    "name": "--priority <normal|prefer|ignore>",
                    "content": "Set a priority for LUKS2 keyslot. The prefer priority marked slots are tried before\nnormal priority. The ignored priority means, that slot is never used, if not explicitly\nrequested by --key-slot option.\n",
                    "long": "--priority",
                    "arg": "<normal|prefer|ignore>"
                },
                {
                    "name": "--label <LABEL> --subsystem <SUBSYSTEM>",
                    "content": "Set label and subsystem description for LUKS2 device. The label and subsystem are\noptional fields and can be later used in udev scripts for triggering user actions once\nthe device marked by these labels is detected.\n",
                    "long": "--subsystem",
                    "arg": "<SUBSYSTEM>"
                },
                {
                    "name": "--batch-mode, -q",
                    "content": "Suppresses all confirmation questions. Use with care!\n\nIf the --verify-passphrase option is not specified, this option also switches off the\npassphrase verification.\n",
                    "flag": "-q",
                    "long": "--batch-mode"
                },
                {
                    "name": "--debug or --debug-json",
                    "content": "Run in debug mode with full diagnostic logs. Debug output lines are always prefixed by #.\n\nIf --debug-json is used, additional LUKS2 JSON data structures are printed.\n",
                    "long": "--debug-json"
                },
                {
                    "name": "--version, -V",
                    "content": "Show the program version.\n",
                    "flag": "-V",
                    "long": "--version"
                },
                {
                    "name": "--usage",
                    "content": "Show short option help.\n",
                    "long": "--usage"
                },
                {
                    "name": "--help, -?",
                    "content": "Show help text and default parameters.\n",
                    "flag": "-?",
                    "long": "--help"
                }
            ]
        },
        "REPORTING BUGS": {
            "content": "Report bugs at cryptsetup mailing list <cryptsetup@lists.linux.dev> or in Issues project\nsection <https://gitlab.com/cryptsetup/cryptsetup/-/issues/new>.\n\nPlease attach output of the failed command with --debug option added.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "Cryptsetup FAQ <https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions>\n\ncryptsetup(8), integritysetup(8) and veritysetup(8)\n",
            "subsections": []
        },
        "CRYPTSETUP": {
            "content": "Part of cryptsetup project <https://gitlab.com/cryptsetup/cryptsetup/>.\n\ncryptsetup 2.7.0                             2024-11-14                         CRYPTSETUP-CONFIG(8)",
            "subsections": []
        }
    },
    "summary": "cryptsetup-config - set permanent configuration options (store to LUKS header)",
    "flags": [
        {
            "flag": "-S",
            "long": "--key-slot",
            "arg": "<0-N>",
            "description": "For LUKS operations that add key material, this option allows you to specify which key slot is selected for the new key. The maximum number of key slots depends on the LUKS version. LUKS1 can have up to 8 key slots. LUKS2 can have up to 32 key slots based on key slot area size and key size, but a valid key slot ID can always be between 0 and 31 for LUKS2."
        },
        {
            "flag": "",
            "long": "--header",
            "arg": "LUKS",
            "description": "Use a detached (separated) metadata device or file where the LUKS header is stored. This option allows one to store ciphertext and LUKS header on different devices. For commands that change the LUKS header (e.g. luksAddKey), specify the device or file with the LUKS header directly as the LUKS device."
        },
        {
            "flag": "",
            "long": "--disable-locks",
            "arg": null,
            "description": "Disable lock protection for metadata on disk. This option is valid only for LUKS2 and ignored for other formats. WARNING: Do not use this option unless you run cryptsetup in a restricted environment where locking is impossible to perform (where /run directory cannot be used)."
        },
        {
            "flag": "",
            "long": "--priority",
            "arg": "<normal|prefer|ignore>",
            "description": "Set a priority for LUKS2 keyslot. The prefer priority marked slots are tried before normal priority. The ignored priority means, that slot is never used, if not explicitly requested by --key-slot option."
        },
        {
            "flag": "",
            "long": "--subsystem",
            "arg": "<SUBSYSTEM>",
            "description": "Set label and subsystem description for LUKS2 device. The label and subsystem are optional fields and can be later used in udev scripts for triggering user actions once the device marked by these labels is detected."
        },
        {
            "flag": "-q",
            "long": "--batch-mode",
            "arg": null,
            "description": "Suppresses all confirmation questions. Use with care! If the --verify-passphrase option is not specified, this option also switches off the passphrase verification."
        },
        {
            "flag": "",
            "long": "--debug-json",
            "arg": null,
            "description": "Run in debug mode with full diagnostic logs. Debug output lines are always prefixed by #. If --debug-json is used, additional LUKS2 JSON data structures are printed."
        },
        {
            "flag": "-V",
            "long": "--version",
            "arg": null,
            "description": "Show the program version."
        },
        {
            "flag": "",
            "long": "--usage",
            "arg": null,
            "description": "Show short option help."
        },
        {
            "flag": "-?",
            "long": "--help",
            "arg": null,
            "description": "Show help text and default parameters."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "cryptsetup",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/cryptsetup/8/json"
        },
        {
            "name": "integritysetup",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/integritysetup/8/json"
        },
        {
            "name": "veritysetup",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/veritysetup/8/json"
        }
    ]
}