diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2025-11-26 12:03:39 -0500 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2025-11-26 12:03:39 -0500 |
| commit | 8090ee305b8759beb2afce335640db244c132455 (patch) | |
| tree | eeca7492cc78f509fa8bde36e45287895376888a | |
| parent | 4e8db800787b181a917efa093848c2476af4f31c (diff) | |
| download | voussoir-8090ee305b8759beb2afce335640db244c132455.tar.gz voussoir-8090ee305b8759beb2afce335640db244c132455.tar.xz | |
Some more tweaking to the installer, bake packages into the image
| -rw-r--r-- | archiso_config/packages.x86_64 | 5 | ||||
| -rw-r--r-- | archiso_config/pacman.conf | 1 | ||||
| -rw-r--r-- | archiso_config/profiledef.sh | 5 | ||||
| -rw-r--r-- | installer/run.sh | 21 | ||||
| -rwxr-xr-x | mkrepo.sh | 9 | ||||
| -rw-r--r-- | readme.md | 41 |
6 files changed, 73 insertions, 9 deletions
diff --git a/archiso_config/packages.x86_64 b/archiso_config/packages.x86_64 index abda48e..b83a4c0 100644 --- a/archiso_config/packages.x86_64 +++ b/archiso_config/packages.x86_64 @@ -33,6 +33,7 @@ dosfstools e2fsprogs edk2-shell efibootmgr +entr espeakup ethtool exfat-utils @@ -101,6 +102,7 @@ nmap noto-fonts-emoji ntfs-3g nvme-cli +obs-studio open-iscsi open-vm-tools openbsd-netcat @@ -116,9 +118,10 @@ pass pass-otp pavucontrol pcsclite +pipewire +pipewire-pulse ppp pptpclient -pulseaudio pv pwgen qemu-guest-agent diff --git a/archiso_config/pacman.conf b/archiso_config/pacman.conf index 03c9a15..c65616e 100644 --- a/archiso_config/pacman.conf +++ b/archiso_config/pacman.conf @@ -11,6 +11,7 @@ # If you wish to use different paths, uncomment and update the paths. #RootDir = / #DBPath = /var/lib/pacman/ +CacheDir = /tmp/isopkgcache #CacheDir = /var/cache/pacman/pkg/ #LogFile = /var/log/pacman.log #GPGDir = /etc/pacman.d/gnupg/ diff --git a/archiso_config/profiledef.sh b/archiso_config/profiledef.sh index d627c03..aba5ff6 100644 --- a/archiso_config/profiledef.sh +++ b/archiso_config/profiledef.sh @@ -8,9 +8,8 @@ iso_application="Installer for Voussir, an arch boostrapper with snapshotting" iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" install_dir="arch" buildmodes=('iso') -bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' - 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp' - 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito') +bootmodes=('bios.syslinux' + 'uefi.grub' ) arch="x86_64" pacman_conf="pacman.conf" airootfs_image_type="erofs" diff --git a/installer/run.sh b/installer/run.sh index 74e15a5..ff9ff43 100644 --- a/installer/run.sh +++ b/installer/run.sh @@ -26,7 +26,14 @@ if [ "$(id -u)" -ne 0 ] ; then fi # temporary Workaround for slow mirrors -reflector | grep rit.edu > /etc/pacman.d/mirrorlist +# reflector | grep rit.edu > /etc/pacman.d/mirrorlist + +# Our local repository should have most of our packages: +cat >> /etc/pacman.conf <<EOF +[bootstrapper] +SigLevel = Optional TrustAll +Server = file:///home/pkgrepo +EOF echo "############################################################" echo "INSTALL PROCESS" @@ -208,6 +215,7 @@ pacstrap -K "$_install_path" \ btop \ btrfs-progs \ chromium \ + chrony \ clonezilla \ cloud-init \ cryptsetup \ @@ -222,6 +230,7 @@ pacstrap -K "$_install_path" \ e2fsprogs \ edk2-shell \ efibootmgr \ + entr \ espeakup \ ethtool \ exfat-utils \ @@ -290,6 +299,7 @@ pacstrap -K "$_install_path" \ noto-fonts-emoji \ ntfs-3g \ nvme-cli \ + obs-studio \ open-iscsi \ open-vm-tools \ openbsd-netcat \ @@ -305,9 +315,10 @@ pacstrap -K "$_install_path" \ pass-otp \ pavucontrol \ pcsclite \ + pipewire \ + pipewire-pulse \ ppp \ pptpclient \ - pulseaudio \ pv \ pwgen \ qemu-guest-agent \ @@ -362,8 +373,9 @@ pacstrap -K "$_install_path" \ xorg-server \ xorg-xkill \ zsh \ - chrony \ zstd \ + yay \ + brave-bin \ set +x @@ -515,7 +527,8 @@ case $(lspci | grep VGA) in ;; *Intel*) # OpenCL Drivers - do_chroot pacman -S --needed intel-compute-runtime + do_chroot pacman -S --needed \ + intel-compute-runtime intel-media-driver libva-utils vulkan-intel vulkan-mesa ;; *) echo "No GPU detected" @@ -25,7 +25,14 @@ cd pkgs/brave-bin makepkg -sf cd - +sudo pacman --noconfirm --cachedir "/tmp/arch_pkgrepo2" \ + -Sw $(cat archiso_config/packages.x86_64 | grep -vE '^(brave-bin|yay)') + +sudo mv "/tmp/arch_pkgrepo2"/* "${PKGDEST}"/ cd /tmp/arch_pkgrepo -repo-add ./bootstrapper.db.tar.zst ./* +repo-add ./bootstrapper.db.tar.zst ./*pkg.tar.zst cd - + +# And put the whole repo onto the ISO... +sudo cp -r pkgrepo archiso_config/airootfs/home/ diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..84684e8 --- /dev/null +++ b/readme.md @@ -0,0 +1,41 @@ +# Voussoir, an Arch Linux installer and rescue system + +Really, it's just an install script and ISO with some extra flair + + +## Building an ISO + +From the base of the repository: + +```bash +$ ./mkrepo.sh +$ sudo ./mkiso.sh +``` + +Note, you may wish to clean your pacman cache (`pacman -Scc`) if you want it to +skip downloading packages from upstream mirrors. + +## Installing from the ISO + +Open a terminal and type `sudo install.sh`, follow the prompts. + +Once you reboot into your new system, run `sudo setup.sh` to make sure snapshots +are properly enabled. + +## Notes: + +Installer assumes you want the entire disk wiped with encrypted btrfs root +and snapshotting. + +The installer has a lot of prompts especially towards the end where the AUR is +used more heavily, you should be able to just hit "enter" on them for the most +part. + +All the regular Arch Linux install tools should be available to you if you'd +like to do something custom instead. + + +## Todo: + +Remove the aur building and post install script. Shouldn't be too difficult +to build the packages into the ISO, but I haven't bothered to yet. |
