docs(zbm): Explain install and post-install steps (#1)

This commit is contained in:
hygienic-books 2023-02-19 22:35:19 +01:00
parent f2572c333c
commit 5fa9e07bac

View File

@ -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