From 3c51bfe2e6a798a7b811f903159c6a53bb7b1b5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Tue, 11 May 2021 18:46:11 +0200
Subject: [PATCH] README: add disk format documentation

---
 README.md | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 6539dcf..3ae37ba 100644
--- a/README.md
+++ b/README.md
@@ -90,12 +90,38 @@ $ ./deploy --force-reboot --include build02
 ```
 
 ## Install/Fix system from Hetzner recovery mode
+1. Format and/or mount all filesystems to /mnt:
+
+``` console
+# format disk with as follow:
+# - partition 1 will be the boot partition, needed for legacy (BIOS) boot
+# - partition 2 is for boot partition
+# - partition 3 takes up the rest of the space and is for the system
+$ sgdisk -n 1:2048:4095 -n 2:4096:+512M -N 3 -t 1:ef02 -t 2:8304 -t 3:8304 /dev/nvme0n1
+$ sgdisk -n 1:2048:4095 -n 2:4096:+512M -N 3 -t 1:ef02 -t 2:8304 -t 3:8304 /dev/nvme1n1
+# create mdadm raid for /boot with ext4
+$ sudo mdadm --create --verbose /dev/md127 --level=0 --raid-devices=2 /dev/nvme{0,1}n1p2
+$ sudo mkfs.ext4 -F /dev/md127
+# format zpool
+$ zpool create zroot -O acltype=posixacl -O xattr=sa -O compression=lz4 mirror /dev/nvme{0,1}n1p3
+$ zfs create -o mountpoint=none zroot/root
+$ zfs create -o mountpoint=legacy zroot/root/nixos
+$ zfs create -o mountpoint=legacy zroot/root/home
+
+# and finally mount
+$ mount -t zfs zroot/root/nixos /mnt
+$ mkdir /mnt/{home,boot}
+$ mount -t zfs zroot/root/home /mnt/home
+$ mount -t ext4 /dev/md127 /mnt/boot
+```
 
-1. Mount all filesystems to /mnt
 2. Install kexec image from Hetzner recovery system as described in [kexec.nix](roles/kexec.nix) and boot into it
 3. Download infra repo
 ``` console
 $ nix-shell -p git --run "git clone https://github.com/nix-community/infra && cd infra && nix-shell"
+# Just in case generate hardware-configuration.nix and compare it with what we have in the repos
+$ nixos-generate-config  --root /mnt
+$ diff -aur /mnt/etc/nixos/hardware-configuration.nix buildXX/hardware-configuration.nix
 ```
 
 4. Build new system closure: