Automated installer for Devuan Linux with LUKS2 encryption, BTRFS filesystem, and UEFI support.
Inspired by: easy-arch and SysGuides
- Full Disk Encryption (LUKS2)
- BTRFS with Subvolumes (snapshots, compression)
- UEFI Boot (GRUB with encryption support)
- Performance (zram swap, optimized mount options)
- Snapshot Management (snapper for root and home, grub-btrfs for bootable snapshots)
- Sysvinit (no systemd - pure Devuan)
- Boot from Devuan Linux live image
- UEFI-capable system
- Internet connection configured
- Initial Setup:
# Download and run
curl -O https://raw.githubusercontent.com/debelio/devuan-install/refs/heads/main/devuan-install.sh
chmod +x devuan-install.sh
sudo ./devuan-install.sh- Preparation: Checks permissions, checks internet connection, installs dependencies
- User Input: Passwords (LUKS, root, user), hostname, user account, disk selection
- Partitioning: Creates ESP (1GB) + encrypted root partition
- Encryption: LUKS2 with keyfile for passwordless boot (after GRUB unlocks it)
- Filesystem: BTRFS with subvolumes (@, @home, @opt, etc.)
- Installation: Base system via debootstrap + kernel + firmware + microcode + GRUB + btrfs-progs + snapper + grub-btrfs + zram + NetworkManager
- Configuration: Fstab, crypttab, timezone, locales, users, sudoers, initramfs (with keyfile), GRUB (cryptodisk enabled)
- Boot Setup: GRUB with LUKS2 support and BTRFS integration
- Finalization: Snapper configs, grub-btrfsd sysvinit service, initial root snapshot
The installation creates separate BTRFS subvolumes for different parts of the filesystem:
/ (@)
/home (@home)
/home/.snapshots (@home/.snapshots) - snapper snapshots for home
/opt (@opt)
/.snapshots (@.snapshots) - snapper snapshots for root
/var/cache (@var/cache)
/var/lib/docker (@var/lib/docker)
/var/lib/libvirt (@var/lib/libvirt)
/var/log (@var/log)
/var/spool (@var/spool)
/tmp (@tmp)
This layout allows:
- Separate snapshots for root and home directories via snapper
- Selective exclusion of cache, logs, and temporary data from snapshots
- Optimized mount options (compression, noatime, SSD support)
- Boot into any snapshot via GRUB menu (grub-btrfs integration)
Use nmcli or nmtui after installation to set up networking.
Use snapper to manage snapshots manually:
# List snapshots
snapper -c root list
# See what changed between snapshots
snapper -c root status 1..0
# Diff a specific file
snapper -c root diff 1..0 -- /etc/fstab
# Rollback to a snapshot
snapper -c root rollback <snapshot-number>Snapper on Devuan/Debian ships with apt hooks built in. Pre/post snapshots are created automatically on every apt operation - no additional setup needed.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.