3.3 KiB
arch-zbm
Helper script to install Arch Linux with ZFSBootMenu from within a running Arch live CD ISO image
Prep
The script expects 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") - 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.
How to run this?
- Boot an Arch Linux live CD ISO image
- Run:
The script will call itself when it changes into itsexport SCRIPT_URL='https://quico.space/quico-os-setup/arch-zbm/raw/branch/main/setup.sh' curl -s "${SCRIPT_URL}" | bash
chroot
, that's why weexport 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. Typically.../branch/main/setup.sh
as shown above is what you want.
Steps
The scripts takes the following installation steps.
- Install ZFS with github.com/eoli3n/archiso-zfs
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:
- Hostname: We 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
ispassword
. - Local
root
account: The localroot
account's password ispassword
.
- ZFS: The password for all datasets underneath
- Arch User Repository (AUR) helper: We installed 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 doingparu paru
.
Assumptions
Development
Conventional commits
This project uses Conventional Commits for its commit messages.
Commit types
Commit types besides fix
and feat
are:
build
: Project structure, directory layout, build instructions for roll-outrefactor
: Keeping functionality while streamlining or otherwise improving function flowtest
: Working on test coveragedocs
: Documentation for project or components
Commit scopes
The following scopes are known for this project. A Conventional Commits commit message may optionally use one of the following scopes or none:
iso
: Changing Arch Linux ISO CDzbm
: Adjusting ZFSBootMenu's behaviorzfs
: A change to how ZFS interacts with the system, either a pool or a datasetos
: Getting an perating system set up to correctly work in a ZFS boot environmentmeta
: Affects the project's repo layout, readme content, file names etc.