diff --git a/README.md b/README.md index 2ac54fc..b62cfed 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ # arch-zbm -Helper script to install Arch Linux with ZFSBootMenu from within a running Arch live CD ISO image +Helper script to install Arch Linux with ZFSBootMenu from within a running Arch Linux live CD ISO image # Prep -The script expects minimal prep on your end. Please make sure that before execution the following conditions are met. +We expect minimal prep on your end. Please make sure that before execution the following conditions are met. -- Arch live CD ISO image sees exactly one partition with partition type code `BF00` ("Solaris root") -- Arch live CD ISO image sees exactly one partition with partition type code `EF00` ("EFI system partition") +- Arch Linux live CD ISO image sees exactly one partition with partition type code `BF00` ("Solaris root") +- Arch Linux live CD ISO image sees exactly one partition with partition type code `EF00` ("EFI system partition") - No ZFS zpool exists The script will create a single ZFS zpool `zpool` on the `BF00` partition with dataset child `zpool/root` which itself has one child `zpool/root/archlinux`, that's where Arch Linux gets installed. Parallel to `zpool/root` it'll create `zpool/data` with a `zpool/data/home` child dataset that gets mounted at `/home`. -The script will use the `EF00` partition to install a ZFSBootMenu EFI executable if - and only if - `efibootmgr` says that no such `ZFSBootMenu` entry exists. If ZFSBootMenu gets added to the EFI partition it'll become primary boot option. +The script will use the `EF00` partition to install a ZFSBootMenu EFI executable if `efibootmgr` says that no such `ZFSBootMenu` entry exists. If ZFSBootMenu gets added to the EFI partition it'll become primary boot option. # How to run this? @@ -22,27 +22,40 @@ The script will use the `EF00` partition to install a ZFSBootMenu EFI executable export SCRIPT_URL='https://quico.space/quico-os-setup/arch-zbm/raw/branch/main/setup.sh' curl -s "${SCRIPT_URL}" | bash ``` - The script will call itself when it changes into its `chroot`, that's why we `export SCRIPT_URL`. Feel free to update `"${SCRIPT_URL}"` with whatever branch or revision you want to use from [quico.space/quico-os-setup/arch-zbm](https://quico.space/quico-os-setup/arch-zbm). Typically `.../branch/main/setup.sh` as shown above is what you want. + During execution the script will call itself when it changes into its `chroot`, that's why we `export SCRIPT_URL`. Feel free to update `"${SCRIPT_URL}"` with whatever branch or revision you want to use from [quico.space/quico-os-setup/arch-zbm](https://quico.space/quico-os-setup/arch-zbm). Typically `.../branch/main/setup.sh` as shown above is what you want. # Steps The scripts takes the following installation steps. -1. Install ZFS with [github.com/eoli3n/archiso-zfs](https://github.com/eoli3n/archiso-zfs) +1. Install ZFS tools and kernel module with [github.com/eoli3n/archiso-zfs](https://github.com/eoli3n/archiso-zfs) +1. Create one encrypted ZFS zpool on top of `BF00` partition, password `password` +1. Create dataset for Arch Linux and `/home` +1. Install Arch Linux into pool +1. Add ZFSBootMenu to `EF00` partition if it doesn't exist already +1. Exit into Arch Linux live CD ISO image shell for you to `reboot` and frolick + +# Flavor choices + +We make the following opinionated flavor choices. Feel free to change them to your liking. + +* Arch Linux locale is set to `en_US.UTF-8` +* Keymap is set `de-latin1` + * Consult `/etc/vconsole.conf` + * Change `zfs set org.zfsbootmenu:commandline=...` +* No X.Org Server, Wayland compositors or other GUI elements get installed # Post-run manual steps -When all is said and done you're goig to want to at least touch these points in your new Arch Linux install: +After installation you're goig to want to at least touch these points in your new Arch Linux install: -* Hostname: We chose a pseudo-randomly generated 8-character string with `pwgen` +* Hostname: Installation chose a pseudo-randomly generated 8-character string with `pwgen` * Unprivileged user accounts: The OS was installed only with a `root` account * Passwords * ZFS: The password for all datasets underneath `zpool` is `password`. * Local `root` account: The local `root` account's password is `password`. * Arch User Repository (AUR) helper: We installed [paru](https://github.com/Morganamilo/paru) as our AUR helper, we installed from GitHub via `makepkg -si`. You may want to replace that by an AUR native installation e.g. by doing `paru paru`. -# Assumptions - # Development ## Conventional commits