librefos/arch-bootstrap
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Este repositório contém scripts para automatizar uma implantação minimalista do Arch Linux para um sistema AMD Ryzen 7 5700G. A arquitetura baseia-se em um ambiente puramente X11 e no conjunto de ferramentas suckless. --- Arquitetura do Sistema e Justificativas ---------------------------- A inicialização utiliza o systemd-boot para integração UEFI nativa. Imagens de Kernel Unificadas (UKIs) são construídas para empacotar o kernel, initramfs, microcódigo e argumentos em um único executável. Isso simplifica o Secure Boot via sbctl e evita adulterações. A partição EFI (ESP) recebe 1GiB para acomodar múltiplos UKIs. O sistema raiz é criptografado com LUKS2 e vinculado ao TPM 2.0 (PCR 0 e 7) para descriptografia automática segura. Internamente, é formatado como Btrfs com subvolumes isolados (@, @home, @cache, @log) para garantir que reversões de snapshots não destruam o cache do pacman ou o histórico de logs. O pacote snap-pac automatiza snapshots seguros durante transações de pacotes. O desempenho é otimizado através do zram-generator, que cria um swap comprimido dinâmico em até metade da RAM, eliminando o desgaste do NVMe. O processador é fixado no governador de performance para reduzir latência. O PipeWire atua como servidor de áudio padrão, ativado globalmente para todos os usuários. Um gerenciador de exibição é omitido para evitar daemons redundantes. Sessões X11 são inicializadas a partir do TTY via startx. A rede é gerenciada pelo systemd-networkd, com tráfego filtrado pelo UFW. --- Fluxo de Execução dos Scripts -------------------------------------- A implantação ocorre em duas fases para manter um núcleo minimalista. install.sh (Fase 1 - ISO Live) Apaga o disco, constrói a topologia Btrfs sobre LUKS2, inicializa os pacotes base e compila os UKIs. Transfere os scripts da Fase 2 para o novo ambiente. post_install.sh (Fase 2 - Sistema Inicializado) Aplica regras do UFW, matricula o TPM 2.0 e chaves do Secure Boot, configura o zram e políticas do Snapper. Oferece prompts interativos para compilar PKGBUILDs e implantar dotfiles de forma automatizada. --- Licença ------------------------------------------------------------ Copyright (C) 2026 Thiago C Silva. Distribuído sob a licença GPLv3 ou posterior. Consulte o arquivo LICENSE para mais detalhes. --- English Version ---------------------------------------------------- This repository contains scripts to automate a minimal Arch Linux deployment for an AMD Ryzen 7 5700G system. The architecture relies on a pure X11 environment and the suckless toolset. --- System Architecture & Rationale ------------------------------------ The boot sequence utilizes systemd-boot for native UEFI integration. Unified Kernel Images (UKIs) are built dynamically to package the kernel, initramfs, CPU microcode, and boot arguments into a single EFI executable. This simplifies Secure Boot enrollment via sbctl and prevents tampering. The EFI partition is allocated 1GiB to comfortably accommodate multiple UKIs. The root filesystem is fully encrypted using LUKS2 and bound to the TPM 2.0 (PCRs 0 and 7) for secure, automatic decryption. Inside the encrypted boundary, it is formatted as Btrfs with isolated subvolumes (@, @home, @cache, @log). This isolation guarantees that restoring a root snapshot does not inadvertently downgrade cached packages or destroy recent log history. The snap-pac package automates protective snapshots during pacman transactions. System performance is optimized via zram-generator, which provisions a dynamically compressed swap device in up to half the system memory, eliminating NVMe wear-and-tear. The CPU governor is locked to performance to minimize state-transition latency. PipeWire serves as the default audio backend, globally enabled for seamless login. A display manager is explicitly omitted to prevent background daemon overhead. X11 sessions are initialized manually from the TTY. The network stack relies on systemd-networkd, heavily restricted by UFW. --- Script Execution Flow ---------------------------------------------- The deployment is split into two distinct phases to maintain a minimal core system. install.sh (Phase 1 - Live ISO) Wipes the target disk, constructs the Btrfs on LUKS2 topology, bootstraps the base packages, and generates the UKIs. It transfers the Phase 2 scripts to the new filesystem before reboot. post_install.sh (Phase 2 - Booted System) Enforces UFW rules, enrolls the TPM 2.0 and Secure Boot keys, configures zram, and establishes Snapper policies. It utilizes interactive prompts to seamlessly compile custom PKGBUILDs and deploy dotfiles. --- License ------------------------------------------------------------ Copyright (C) 2026 Thiago C Silva. Distributed under the GPLv3 license or later. See the LICENSE file for details.