β
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.
- What is LUKS?
- Basics & Concepts
- Installation
- Formatting a Disk with LUKS
- Open & Close
- Create Filesystem & Mount
- Password & Keyslot Management
- Keyfile Authentication
- LUKS Header Backup & Restore
- Resize Encrypted Device
- Status, UUID & Recovery
- Auto Unlock at Boot
- File-Based LUKS Container
- Suspend & Resume
- Security Best Practices
- Author
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:
- Full Disk Encryption (FDE)
- Encrypted partitions
- Encrypted USB drives
- Secure containers
- Encrypted virtual machines
- LUKS β Linux disk encryption standard
- cryptsetup β LUKS management tool
- Block device encryption β
/dev/sdX,/dev/nvmeX, LVM, RAID - Keyslot β Each password stored in a separate slot
- LUKS1 β Legacy compatibility
- LUKS2 β Modern, secure, flexible metadata
- Mapping name β
/dev/mapper/<name>
sudo apt update
sudo apt install cryptsetupsudo dnf install cryptsetupsudo pacman -S cryptsetupCheck version:
cryptsetup --versionsudo cryptsetup luksFormat /dev/sdX1sudo cryptsetup luksFormat --type luks1 /dev/sdX1
sudo cryptsetup luksFormat --type luks2 /dev/sdX1sudo cryptsetup luksFormat \
--cipher aes-xts-plain64 \
--key-size 512 \
--hash sha256 \
--iter-time 5000 \
/dev/sdX1echo "password" | sudo cryptsetup luksFormat /dev/sdX1 -sudo cryptsetup open /dev/sdX1 secureResult:
/dev/mapper/secure
sudo cryptsetup close securesudo cryptsetup open --readonly /dev/sdX1 securesudo mkfs.ext4 /dev/mapper/secure
sudo mkdir -p /mnt/secure
sudo mount /dev/mapper/secure /mnt/secureUnmount:
sudo umount /mnt/secureView info:
sudo cryptsetup luksDump /dev/sdX1Add password:
sudo cryptsetup luksAddKey /dev/sdX1Remove password:
sudo cryptsetup luksRemoveKey /dev/sdX1Remove specific slot:
sudo cryptsetup luksKillSlot /dev/sdX1 1Change password:
sudo cryptsetup luksChangeKey /dev/sdX1Create keyfile:
sudo dd if=/dev/urandom of=/root/luks.key bs=64 count=1
sudo chmod 600 /root/luks.keyAdd keyfile:
sudo cryptsetup luksAddKey /dev/sdX1 /root/luks.keyUnlock with keyfile:
sudo cryptsetup open /dev/sdX1 secure --key-file /root/luks.keyBackup:
sudo cryptsetup luksHeaderBackup /dev/sdX1 \
--header-backup-file /root/luks-header.imgRestore:
sudo cryptsetup luksHeaderRestore /dev/sdX1 \
--header-backup-file /root/luks-header.imgResize mapping:
sudo cryptsetup resize secureResize filesystem:
sudo e2fsck -f /dev/mapper/secure
sudo resize2fs /dev/mapper/secureStatus:
sudo cryptsetup status secureLUKS UUID:
sudo cryptsetup luksUUID /dev/sdX1Filesystem UUID:
sudo blkid /dev/mapper/secureRepair:
sudo e2fsck -f /dev/mapper/securesecure 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=2048Encrypt:
sudo cryptsetup luksFormat secure.imgOpen:
sudo cryptsetup open secure.img securefileCreate filesystem:
sudo mkfs.ext4 /dev/mapper/securefile
sudo mount /dev/mapper/securefile /mnt/securefileClose:
sudo umount /mnt/securefile
sudo cryptsetup close securefileSuspend:
sudo cryptsetup luksSuspend secureResume:
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!