Skip to content

debelio/devuan-install

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages