swapn=2
bootn=3
# ext partition so grub can write persistent variables,
-# so it can do a one time boot.
+# so it can do a one time boot. grub can't write to
+# btrfs or any cow fs because it's more
+# more complicated to do and they don't want to.
grub_extn=4
# bios boot partition,
# https://wiki.archlinux.org/index.php/GRUB
bios_grubn=5
lastn=$bios_grubn
+# this is larger than needed for several /boot subvols,
+# becuase I keep a minimal debian install on it, for
+# recovery needs, and for doing pxe-kexec.
boot_mib=10000
cd /mnt
btrfs subvolume create root_$DISTRO
- [[ -e q ]] || btrfs subvolume create q
- chown root:1000 q
mkdir -p /mnt/root_$DISTRO/boot
- for x in q/a q/i; do
- mkdir -p $x
- chown 1000:1000 $x
- chmod 755 $x
- done
- # could set default like this, but no reason to.
+ # could set default subvol like this, but no reason to.
# btrfs subvolume set-default \
# $(btrfs subvolume list . | grep "root_$DISTRO$" | awk '{print $2}') .
# no cow on the root filesystem. it's setup is fully scripted,
- # (immutable in buzzwords). if it messes up, we will just recreated it,
+ # if it's messed up, we will just recreated it,
# and we can get better perf with this.
# I can't remember exactly why, but this is preferable to mounting with
# -o nodatacow, I think because subvolumes inherit that.
cd /mnt
btrfs subvolume set-default 0 /mnt # already default, just ensuring it.
-# for libreboot systems.
+# for libreboot systems. grub2 only reads from subvolid=0
mkdir -p /mnt/grub2
cp $FAI/distro-install-common/libreboot_grub.cfg /mnt/grub2
ROOT_PARTITION=$first_boot_dev
EOF
else
- # note, the mount point /a seems to get automatically created somewhere
+ # note, fai creates the mountpoints listed here
cat > /tmp/fai/fstab <<EOF
$first_root_crypt / btrfs noatime,subvol=root_$DISTRO 0 0
-$first_root_crypt /q btrfs noatime,subvol=q 0 0
-/q/a /a none bind 0 0
+$first_root_crypt /mnt/root btrfs noatime,subvolid=0 0 0
$first_boot_dev /boot btrfs noatime,subvol=$boot_vol 0 0
EOF
-
swaps=()
for dev in ${devs[@]}; do
swaps+=(`swap-cryptname`)