Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Devuan Linux Automated Installation Script

Automated installer for Devuan Linux with LUKS2 encryption, BTRFS filesystem, and UEFI support.

Inspired by: easy-arch and SysGuides

Features

  • 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)

Prerequisites

  • Boot from Devuan Linux live image
  • UEFI-capable system
  • Internet connection configured

Installation Steps

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

What the Script Does

  1. Preparation: Checks permissions, checks internet connection, installs dependencies
  2. User Input: Passwords (LUKS, root, user), hostname, user account, disk selection
  3. Partitioning: Creates ESP (1GB) + encrypted root partition
  4. Encryption: LUKS2 with keyfile for passwordless boot (after GRUB unlocks it)
  5. Filesystem: BTRFS with subvolumes (@, @home, @opt, etc.)
  6. Installation: Base system via debootstrap + kernel + firmware + microcode + GRUB + btrfs-progs + snapper + grub-btrfs + zram + NetworkManager
  7. Configuration: Fstab, crypttab, timezone, locales, users, sudoers, initramfs (with keyfile), GRUB (cryptodisk enabled)
  8. Boot Setup: GRUB with LUKS2 support and BTRFS integration
  9. Finalization: Snapper configs, grub-btrfsd sysvinit service, initial root snapshot

BTRFS Layout

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)

Post-Installation

Network Configuration

Use nmcli or nmtui after installation to set up networking.

Snapshot Management

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>

APT Integration

Snapper on Devuan/Debian ships with apt hooks built in. Pre/post snapshots are created automatically on every apt operation - no additional setup needed.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

An automated installation of Devuan Linux

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages