Files
darkforge/src/install
2026-03-20 10:03:00 +01:00
..
Wip
2026-03-20 10:03:00 +01:00

DarkForge Linux Installer

A CRUX-style interactive text-mode installer that runs from the DarkForge live ISO.

Overview

The installer walks through 9 steps to get a working DarkForge system on disk:

  1. Disk selection — choose the target drive
  2. Partitioning — GPT auto-partition (ESP 512MB + Swap 96GB + Root)
  3. Filesystem creation — FAT32 (ESP), ext4 (root), swap
  4. Base system install — via dpack or direct copy from live environment
  5. Kernel install — copies kernel to ESP
  6. User setup — root password, user account with groups
  7. Locale/timezone — timezone, locale, keyboard layout
  8. Boot config — EFISTUB boot entry via efibootmgr
  9. Optional packages — desktop, gaming, dev tool groups

Requirements

Environment: The installer runs exclusively from the DarkForge live ISO. It is a set of bash scripts designed for the DarkForge live environment and is not intended to be run from another distro or from macOS/Windows.

Hardware:

  • UEFI firmware (no legacy BIOS support — the target machine must boot in UEFI mode)
  • At least one NVMe or SATA disk with enough space (minimum 250GB recommended)
  • Wired ethernet connection (for DHCP during post-install package downloads)

Tools provided by the live ISO:

  • bash 5.x, sgdisk (GPT partitioning from gdisk package)
  • mkfs.ext4 (from e2fsprogs), mkfs.fat (from dosfstools), mkswap (from util-linux)
  • efibootmgr (UEFI boot entry creation)
  • dpack (package manager — for base system installation)

All of these are included in the live ISO. You do not need to install them separately.

Usage

Boot the DarkForge live ISO, then:

install

Or run directly:

/install/install.sh

Module Structure

install/
├── install.sh           # Main entry point (9-step wizard)
└── modules/
    ├── disk.sh          # Disk selection, partitioning, formatting, mounting
    ├── user.sh          # User account and hostname setup
    ├── locale.sh        # Timezone, locale, keyboard
    └── packages.sh      # Base system install, kernel, optional packages

Partition Scheme

The auto-partitioner creates:

# Type Size Filesystem Mount
1 EFI System 512MB FAT32 /boot/efi
2 Linux Swap 96GB swap
3 Linux Root Remaining ext4 /

The 96GB swap matches the RAM size to enable hibernation.

Post-Install

After installation and reboot, the system boots via EFISTUB directly to a tty1 auto-login, which launches the dwl Wayland compositor.

Repository

git@git.dannyhaslund.dk:danny8632/darkforge.git