Added first version of ISO build

This commit is contained in:
Torxed committed 2025-07-27 16:42:10 +02:00
1 parent 022da3919e
commit 4ad4aad4c0
6 files changed
+86 -1

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
out/
**/**.iso
+3
View File
@@ -0,0 +1,3 @@
[submodule "archiso"]
path = archiso
url = https://gitlab.archlinux.org/archlinux/archiso.git
+31 -1
View File
@@ -1 +1,31 @@
# omarchy-iso
# omarchy-iso
This will create an ISO that does two things:
1. Auto-boot into Live Arch Linux (without prompt)
2. Will auto-launch `omarchy-tui`
# Build instructions
```
$ docker run --rm \
--privileged \
-v "./out/:/out/" \
-v "./build_iso.sh:/build_iso.sh:ro" \
-v "./archiso:/archiso:ro" \
-v "./grub-autoboot.patch:/grub-autoboot.patch:ro" \
archlinux/archlinux:latest /build_iso.sh
```
Finished result should be in `./out`.
Note that `--privileged` is used. The main reason being `mkarchiso` mounts `/sys/proc` and other locations, which requires privileged permissions.
# Signing
```
$ gpg --local-user 0xD4B58E897A929F2E \
--output ./out/*.iso.sig \
--detach-sig ./out/*.iso
```
Note that `gpg --list-keys --fingerprint --keyid-format 0xLONG torxed@archlinux.org` can give you your GPG Key ID. In my case `ed25519/0xD4B58E897A929F2E`.
Submodule
+1
Submodule archiso added at 69047bdc03.
Executable
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
set -e
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Sy archiso git
# Packages to add to the archiso profile packages
# As a base example (the TUI packages needs to be here)
packages=(
git
)
cache_dir=$(realpath --canonicalize-missing ~/.cache/omarchy/iso_$(date +%Y-%m-%d))
mkdir -p $cache_dir/
cp -r archiso/configs/releng/* $cache_dir/
# We add in our auto-start applications
# We'll assume the TUI installer is called omarchy-tui for now
cat <<- _EOF_ | tee $cache_dir/airootfs/root/.zprofile
omarchy-tui
_EOF_
# Add packages to the archiso profile packages
for package in "${packages[@]}"; do
echo "$package" >> "$cache_dir/packages.x86_64"
done
# We patch grub to our liking:
(cd $cache_dir/ && git apply /grub-autoboot.patch)
# We could also use:
# patch -p1 < grub-autoboot.patch
mkarchiso -v -w "$cache_dir/work/" -o "/out/" "$cache_dir/"
+13
View File
@@ -0,0 +1,13 @@
--- a/grub/grub.cfg
+++ b/grub/grub.cfg
@@ -45,8 +45,8 @@ fi
# Set default menu entry
default=archlinux
-timeout=15
-timeout_style=menu
+timeout=0
+timeout_style=hidden
# Menu entries