✅ Full LUKS1 & LUKS2 Guide
✅ Complete cryptsetup Commands
✅ Password & Keyslot Management
✅ Keyfile Authentication
✅ LUKS Header Backup & Restore
✅ Auto Unlock with crypttab & fstab
✅ File-Based Encrypted Containers
✅ LPIC-2 & LPIC-3 Ready
This is a complete and professional LUKS Cheat Sheet written for Linux system administrators, DevOps engineers, and security students.
LUKS cheat sheet
cryptsetup cheat sheet
linux disk encryption
luks encryption guide
luks header backup
luks keyfile
luks fstab crypttab
luks full disk encryption
luks tutorial
LUKS (Linux Unified Key Setup) is the standard disk encryption system for Linux.
It provides strong encryption at the block-device level and is widely used for:
/dev/sdX, /dev/nvmeX, LVM, RAID/dev/mapper/<name>sudo apt update
sudo apt install cryptsetup
sudo dnf install cryptsetup
sudo pacman -S cryptsetup
Check version:
cryptsetup --version
sudo cryptsetup luksFormat /dev/sdX1
sudo cryptsetup luksFormat --type luks1 /dev/sdX1
sudo cryptsetup luksFormat --type luks2 /dev/sdX1
sudo cryptsetup luksFormat \
--cipher aes-xts-plain64 \
--key-size 512 \
--hash sha256 \
--iter-time 5000 \
/dev/sdX1
⚠️ Non-interactive (NOT recommended):
echo "password" | sudo cryptsetup luksFormat /dev/sdX1 -
sudo cryptsetup open /dev/sdX1 secure
Result:
/dev/mapper/secure
sudo cryptsetup close secure
sudo cryptsetup open --readonly /dev/sdX1 secure
sudo mkfs.ext4 /dev/mapper/secure
sudo mkdir -p /mnt/secure
sudo mount /dev/mapper/secure /mnt/secure
Unmount:
sudo umount /mnt/secure
View info:
sudo cryptsetup luksDump /dev/sdX1
Add password:
sudo cryptsetup luksAddKey /dev/sdX1
Remove password:
sudo cryptsetup luksRemoveKey /dev/sdX1
Remove specific slot:
sudo cryptsetup luksKillSlot /dev/sdX1 1
Change password:
sudo cryptsetup luksChangeKey /dev/sdX1
Create keyfile:
sudo dd if=/dev/urandom of=/root/luks.key bs=64 count=1
sudo chmod 600 /root/luks.key
Add keyfile:
sudo cryptsetup luksAddKey /dev/sdX1 /root/luks.key
Unlock with keyfile:
sudo cryptsetup open /dev/sdX1 secure --key-file /root/luks.key
Backup:
sudo cryptsetup luksHeaderBackup /dev/sdX1 \
--header-backup-file /root/luks-header.img
Restore:
sudo cryptsetup luksHeaderRestore /dev/sdX1 \
--header-backup-file /root/luks-header.img
⚠️ Wrong restore = permanent data loss!
Resize mapping:
sudo cryptsetup resize secure
Resize filesystem:
sudo e2fsck -f /dev/mapper/secure
sudo resize2fs /dev/mapper/secure
Status:
sudo cryptsetup status secure
LUKS UUID:
sudo cryptsetup luksUUID /dev/sdX1
Filesystem UUID:
sudo blkid /dev/mapper/secure
Repair:
sudo e2fsck -f /dev/mapper/secure
secure UUID=<LUKS_UUID> none luks
With keyfile:
secure UUID=<LUKS_UUID> /root/luks.key luks
/dev/mapper/secure /mnt/secure ext4 defaults 0 2
Or with UUID:
UUID=<FS_UUID> /mnt/secure ext4 defaults 0 2
Create file:
dd if=/dev/urandom of=secure.img bs=1M count=2048
Encrypt:
sudo cryptsetup luksFormat secure.img
Open:
sudo cryptsetup open secure.img securefile
Create filesystem:
sudo mkfs.ext4 /dev/mapper/securefile
sudo mount /dev/mapper/securefile /mnt/securefile
Close:
sudo umount /mnt/securefile
sudo cryptsetup close securefile
Suspend:
sudo cryptsetup luksSuspend secure
Resume:
sudo cryptsetup luksResume secure
✅ Always backup LUKS header ✅ Use strong passwords (16+ characters) ✅ Never store keyfile on same disk ✅ Encrypt swap partition ✅ Avoid passwords in command history ✅ Always test on VM first ✅ Prefer LUKS2 ✅ Use AES-XTS-512
Created by Mahdi Norouzi Linux Administrator & DevOps Candidate
🌐 Website: https://netpilot.ir 📂 GitHub: https://github.com/
⭐ If this repository helps you, please give it a star to support the project!