Compare commits
	
		
			2 Commits
		
	
	
		
			e1d6f64a09
			...
			5fa9e07bac
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5fa9e07bac | |||
| f2572c333c | 
							
								
								
									
										38
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								README.md
									
									
									
									
									
								
							@@ -1,12 +1,18 @@
 | 
				
			|||||||
# arch-zbm
 | 
					# 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
 | 
					# Prep
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The script expects minimal prep on your end. Please make sure that before execution at least one of the following conditions are met.
 | 
					We expect minimal prep on your end. Please make sure that before execution the following conditions are met.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Your machine has exactly one partition with partition type code `BF00` ("Solaris root")
 | 
					- 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 `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?
 | 
					# How to run this?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,26 +22,40 @@ The script expects minimal prep on your end. Please make sure that before execut
 | 
				
			|||||||
    export SCRIPT_URL='https://quico.space/quico-os-setup/arch-zbm/raw/branch/main/setup.sh'
 | 
					    export SCRIPT_URL='https://quico.space/quico-os-setup/arch-zbm/raw/branch/main/setup.sh'
 | 
				
			||||||
    curl -s "${SCRIPT_URL}" | bash
 | 
					    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
 | 
					# Steps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The scripts takes the following installation 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
 | 
					# 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
 | 
					* Unprivileged user accounts: The OS was installed only with a `root` account
 | 
				
			||||||
* Passwords
 | 
					* Passwords
 | 
				
			||||||
    * ZFS: The password for all datasets underneath `zpool` is `password`.
 | 
					    * ZFS: The password for all datasets underneath `zpool` is `password`.
 | 
				
			||||||
    * Local `root` account: The local `root` account's password 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`.
 | 
					* 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
 | 
					# Development
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Conventional commits
 | 
					## Conventional commits
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user