#
# OPTIONS:
#
-# mkroot2: for running outside of fai and setting up the root2/boot2 luks and btrfs
+# mkroot2: for running outside of fai and setting up the root2/boot2 luks and btrfs and tab files
+#
+# mkroot2tab: for running outside of fai and setting up the root2/boot2 tab files, in case luks and btrfs
+# happen to already be setup.
+#
#
# environment variables:
#
# raid10.
# RAID1: forces raid1 filesystem.
+mkroot2tab=false
mkroot2=false
-case $1 in
- mkroot2)
- mkroot2=true
- ;;
- *)
- echo "$0: error: unsupported arg: $1" >&2
- exit 1
- ;;
-esac
-
+if [[ $1 ]]; then
+ case $1 in
+ mkroot2)
+ mkroot2=true
+ ;;
+ mkroot2tab)
+ mkroot2tab=true
+ ;;
+ *)
+ echo "$0: error: unsupported arg: $1" >&2
+ exit 1
+ ;;
+ esac
+fi
if [[ $SPECIAL_DISK ]]; then
if ! type -p devbyid; then
for d in $FAI/distro-install-common \
- /a/bin/fai/fai/config/distro-install-common $FAI $PWD; do
+ /a/bin/fai/fai/config/distro-install-common $FAI $PWD; do
[[ -d $d ]] || continue
if [[ -e $d/devbyid ]]; then
devbyid=$d/devbyid
# cryptsetup luksAddKey --pbkdf pbkdf2
# then remove the new format keys with cryptsetup luksRemoveKey
# then cryptsetup convert DEV --type luks1, then readd old keys and remove temp.
- yes YES | cryptsetup luksFormat $luksdev $luks_file \
- --type luks1 -c aes-cbc-essiv:sha256 -s 256 || [[ $? == 141 ]]
+ yes YES | cryptsetup luksFormat $luksdev $luks_file || [[ $? == 141 ]]
yes "$lukspw" | \
cryptsetup luksAddKey --key-file $luks_file \
$luksdev || [[ $? == 141 ]]
fi
declare -A disk_excludes
-if ! $mkroot2 && ! ifclass USE_MOUNTED; then
+if ! $mkroot2 && ! $mkroot2tab ! ifclass USE_MOUNTED; then
## ignore disks that are mounted, eg when running from fai-cd
while read -r l; do
eval "$l"
# becuase I keep a minimal debian install on it for
# recovery needs and for doing pxe-kexec.
boot_mib=10000
- root2_mib=200000
- boot2_mib=2000
-elif (( boot_spa_ce > 30000 )); then
+ root2_mib=1000000
+ boot2_mib=5000
+elif (( boot_space > 30000 )); then
boot_mib=$(( 5000 + (boot_space - 30000) / 2 ))
root2_mib=100
boot2_mib=100
else
# Small vms don't have room for /boot recovery. With 3 kernels
# installed, i'm using 132M on t8, so this seems like plenty of
- # room. note: rhel 8 recomments 1g for /boot.
- boot_mib=500
+ # room. note: rhel 8 recomments 1g for /boot. u20.04 with 3 kernels =
+ # 308 mb, so things have grown significantly
+ boot_mib=1000
root2_mib=100
boot2_mib=100
fi
if [[ ! $DISTRO ]]; then
- if ifclass VOL_BUSTER_BOOTSTRAP; then
- DISTRO=debianbuster_bootstrap
+ if ifclass VOL_BULLSEYE_BOOTSTRAP; then
+ DISTRO=debianbullseye_bootstrap
elif ifclass VOL_STRETCH; then
DISTRO=debianstretch
elif ifclass VOL_BUSTER; then
DISTRO=debianbuster
elif ifclass VOL_BULLSEYE; then
DISTRO=debianbullseye
+ elif ifclass VOL_BOOKWORM; then
+ DISTRO=debianbookworm
elif ifclass VOL_TESTING; then
DISTRO=debiantesting
elif ifclass VOL_XENIAL; then
DISTRO=trisqueletiona
elif ifclass VOL_NABIA; then
DISTRO=trisquelnabia
- elif $mkroot2; then
+ elif $mkroot2 || $mkroot2tab; then
:
else
echo "PARTITIONER ERROR: no distro class/var set" >&2
# because these are filesystems created after our current root, and so
# this allows us to update other root filesystems too.
rm -f /mnt/root/root2-{fs,crypt}tab
-if $mkroot2; then
+if $mkroot2 || $mkroot2tab; then
if $partition; then
echo $0: error: found partition=true but have mkroot2 arg
exit 1
fi
for dev in ${devs[@]}; do
- luks_file=$luks_dir/host-amy
- lukspw=$(cat $luks_dir/amy)
- luks-setup $(root2dev)
+ if $mkroot2; then
+ luks_file=$luks_dir/host-amy
+ lukspw=$(cat $luks_dir/amy)
+ luks-setup $(root2dev)
+ fi
cat >>/mnt/root/root2-crypttab <<EOF
$(root2-cryptname) $(root2dev) $luks_file discard,luks,initramfs
EOF
done
- bpart $(for dev in ${devs[@]}; do root2-cryptdev; done)
- bpart ${boot2_devs[@]}
+ if $mkroot2; then
+ bpart $(for dev in ${devs[@]}; do root2-cryptdev; done)
+ bpart ${boot2_devs[@]}
+ fi
mkdir -p /mnt/root2 /mnt/boot2
cat >>/mnt/root/root2-fstab <<EOF
$(root2-cryptdev ${devs[0]}) /mnt/root2 btrfs nofail,x-systemd.device-timeout=30s,x-systemd.mount-timeout=30s,noatime,subvolid=0$mopts 0 0
fi
-if $wipe && [[ $DISTRO != debianbuster_bootstrap ]]; then
+if $wipe && [[ $DISTRO != debianbullseye_bootstrap ]]; then
# bootstrap distro doesn't use separate encrypted root.
mount -o subvolid=0 $first_root_crypt /mnt
# systemd creates subvolumes we want to delete.
mkdir -p /mnt/grub2
cp $FAI/distro-install-common/libreboot_grub.cfg /mnt/grub2
-if [[ $DISTRO == debianbuster_bootstrap ]]; then
+if [[ $DISTRO == debianbullseye_bootstrap ]]; then
# this is just convenience for the libreboot_grub config
# so we can glob the other ones easier.
boot_vol=$DISTRO
umount /mnt
fstabstd=x-systemd.device-timeout=30s,x-systemd.mount-timeout=30s
-if [[ $DISTRO == debianbuster_bootstrap ]]; then
+if [[ $DISTRO == debianbullseye_bootstrap ]]; then
cat > /tmp/fai/fstab <<EOF
$first_boot_dev / btrfs noatime,subvol=$boot_vol 0 0
$first_efi /boot/efi vfat nofail,$fstabstd 0 0