---
name: "cryptsetup-convert"
section: "8"
platform: "linux"
package: "cryptsetup"
version: "2.8.8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/cryptsetup-convert"
---

# cryptsetup-convert(8)

converts the device between LUKS1 and LUKS2 format

## NAME

cryptsetup-convert - converts the device between LUKS1 and LUKS2 format

## SYNOPSIS

**cryptsetup** *convert* **--type \<format\> \[\<options\>\] \<device\>**

## DESCRIPTION

*Converts the device between LUKS1 and LUKS2 format (if possible).* *The conversion will not be performed if there is an additional LUKS2 feature or LUKS1 has an unsupported header size.*

*For conversion from LUKS2 to LUKS1, all active keyslots must use the PBKDF2 key-derivation function.* *The PBKDF2 and anti-forensic filter (AF) hash must be the same as the hash used in the digest.* *All keyslot numbers must be lower than 8 (LUKS1 maximum slot number).* *There must be at least one active keyslot and no unbound or reencryption keyslots.*

*Conversion (both directions) must be performed on an inactive device.* *There must not be an active dm-crypt mapping established for the LUKS header requested for conversion.*

*The* **--type** *option is mandatory with the following accepted values: luks1 or luks2.*

**WARNING:** *The convert action can destroy the LUKS header in the case of a crash during conversion or if a media error occurs.* *Always create a header backup before performing this operation!*

**\<options\>** *can be \[--header, --type, --disable-locks\].*

## OPTIONS

**--batch-mode***,* **-q**

*Suppresses all confirmation questions.* *Use with care!*

*If the --verify-passphrase option is not specified, this option also switches off the passphrase verification.*

**--debug** *or* **--debug-json**

*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.*

- **--disable-locks**

  *Disable lock protection for metadata on disk.* *This option is valid only for LUKS2 and is 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).*

**--header** *\<device or file storing the LUKS header\>*

*Use a detached (separated) metadata device or file where the LUKS header is stored.* *This option allows one to store the 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.*

**--help***,* **-?**

*Show help text and default parameters.*

**--type** *type*

*Specifies required device type, for more info, read the BASIC ACTIONS section in* **cryptsetup***(8).*

- **--usage**

  *Show short option help.*

**--version***,* **-V**

*Show the program version.*

## REPORTING BUGS

*Report bugs at* *cryptsetup mailing list \<cryptsetup@lists.linux.dev\>* *or in* *Issues project section \<https://gitlab.com/cryptsetup/cryptsetup/-/issues/new\>.*

*Please attach the output of the failed command with --debug option added.*

## SEE ALSO

*Cryptsetup FAQ \<https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions\>*

**cryptsetup***(8),* **integritysetup***(8) and* **veritysetup***(8)*

## CRYPTSETUP

*Part of* *cryptsetup project \<https://gitlab.com/cryptsetup/cryptsetup/\>.*
