a few fixes, a few dns
[automated-distro-installer] / fai / config / hooks / partition.DEFAULT
index 80f0d7c4a70afd9dfb86f616c7830089bb06bcc3..f3df8652b9532ab4f38f97ed70ad30ecd6c01e0d 100755 (executable)
@@ -35,7 +35,11 @@ fi
 #
 # 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:
 #
@@ -64,12 +68,16 @@ fi
 # raid10.
 # RAID1: forces raid1 filesystem.
 
+mkroot2tab=false
 mkroot2=false
 if [[ $1 ]]; then
   case $1 in
     mkroot2)
       mkroot2=true
       ;;
+    mkroot2tab)
+      mkroot2tab=true
+      ;;
     *)
       echo "$0: error: unsupported arg: $1" >&2
       exit 1
@@ -91,7 +99,7 @@ skiptask partition || ! type skiptask
 
 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
@@ -220,7 +228,7 @@ if (($(nproc) > 2)); then
 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"
@@ -360,17 +368,18 @@ if (( boot_space > 60000 )); then
   # 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
@@ -410,7 +419,7 @@ if [[ ! $DISTRO ]]; 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
@@ -480,21 +489,25 @@ shopt -s nullglob
 # 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