Syncopated ISO Builder

ArchLabs: Re-imagined for research & development

$ git clone https://gitlab.com/syncopatedX/syncopated-iso-builder.git
$ cd syncopated-iso-builder
$ ansible-playbook draft_build_playbook.yml
$ ls -lh out/
syncopated-2023.07.15-x86_64.iso
$

✨ Key Features

Arch Linux Base

Leverages the flexibility and up-to-date nature of Arch Linux with bleeding-edge packages.

Multiple Kernel Options

Standard LTS RT RT-LTS

CachyOS Integration

Optional CachyOS repositories and mirrorlist for performance-optimized packages with modern CPU optimizations.

Multiple Boot Modes

Supports BIOS (Syslinux) and UEFI (GRUB) with PXE boot options (NBD, NFS, HTTP).

Custom Theming

Includes the beautiful "oomox-soundbot" theme with carefully selected color schemes.

Accessibility

Boot options with speakup screen reader for both BIOS and UEFI, making it accessible to all users.

🛠️ Building the ISO

# pacman -S archiso ansible curl
$ git clone https://gitlab.com/syncopatedX/syncopated-iso-builder.git
$ cd syncopated-iso-builder
$ nano draft_build_playbook.yml
# Configure kernel options by setting variables to true: # enable_lts_kernel, enable_rt_kernel, enable_rt_lts_kernel
$ ansible-playbook draft_build_playbook.yml
$ ls -lh out/
-rw-r--r-- 1 user user 1.2G Jul 15 14:30 syncopated-2023.07.15-x86_64.iso

Prerequisites

  • archiso package installed
  • Ansible for playbook execution
  • Approximately 5GB of free disk space

Configuration Options

🧪 Testing with QEMU

Test VM Setup

The run_test_vm.rb script provides an interactive way to test your generated ISO in a virtual environment.

Prerequisites:

  • Ruby and required gems (tty-prompt, shellwords, fileutils)
  • QEMU/KVM or Libvirt (virt-install) installed
$ ruby run_test_vm.rb
Select virtualization type:
> 1) virt-install (Libvirt)
> 2) qemu-system-x86_64 (QEMU)
Enter number of vCPUs (default: 2):
> 4
Enter memory in MB (default: 2048):
> 4096
Starting VM with selected parameters...

Testing Workflow

  1. 1 Generate your ISO using the build process
  2. 2 Run the test VM script and select your virtualization method
  3. 3 Configure VM resources (vCPUs, memory)
  4. 4 Select the generated ISO file when prompted
  5. 5 Choose whether to create a new QCOW2 disk or use existing
  6. 6 The script launches the VM with your ISO

Troubleshooting Tips:

  • Ensure your user is in the kvm and libvirt groups
  • Check BIOS settings for virtualization support (VT-x/AMD-V)
  • For nested virtualization, additional kernel parameters may be needed

⚙️ Post-Installation Bootstrap

$ cat /usr/local/bin/bootstrap.sh
#!/bin/bash
# Detect distribution
if [ -f /etc/arch-release ]; then
sudo pacman -S --needed base-devel ansible git openssh rsync
elif [ -f /etc/fedora-release ]; then
sudo dnf install -y ansible git openssh-clients rsync
else # Assume Debian-based
sudo apt-get install -y ansible git openssh-client rsync
# Set up passwordless sudo
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USER
# Configure Git
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# Clone dotfiles and run Ansible
git clone https://gitlab.com/syncopatedX/SyncopatedOS.git ~/.dotfiles
cd ~/.dotfiles && ansible-playbook playbooks/full.yml

Bootstrap Process

The bootstrap.sh script automates the setup of a newly installed system with all necessary tools and configurations.

Package Installation

Installs essential packages based on detected distribution (Arch, Fedora, or Debian-based).

Passwordless Sudo

Configures passwordless sudo for the current user for seamless administration.

Git Configuration

Sets up basic Git configuration with your name and email.

Dotfiles Setup

Clones the SyncopatedOS dotfiles repository and executes the Ansible playbook for full system configuration.

Customization Notes:

Before running the bootstrap script, you may want to edit it to:

  • Add your actual Git username and email
  • Include additional packages specific to your needs
  • Modify the dotfiles repository URL if using a personal fork
  • Add SSH key transfer from another host if needed

Made with DeepSite LogoDeepSite - 🧬 Remix