t11 and new partitioner fixes
authorIan Kelling <iank@fsf.org>
Mon, 8 Aug 2022 03:11:24 +0000 (23:11 -0400)
committerIan Kelling <iank@fsf.org>
Mon, 8 Aug 2022 03:11:24 +0000 (23:11 -0400)
fai/config/distro-install-common/devbyid
fai/config/hooks/partition.DEFAULT
faiserver-setup

index 056a83f356395e3af43e924374f29a32cc8af963..af97643fd5753c44426252eea7dd7876f697cc53 100755 (executable)
@@ -4,17 +4,21 @@
 # output: /dev/disk/by-id/model+serial, or if no link exists, the same as input
 
 short_dev=$1
+if [[ ! -e $short_dev ]]; then
+  echo "devbyid: error: argument=$short_dev does not exist"
+  exit 1
+fi
 
 # devices are identified by model+serial num
 # and for ssd/hdd: wwn, and for nvme: eui.
 # model+serial gives me more info, so use that.
 shopt -s extglob
 for id in /dev/disk/by-id/!(nvme-eui*|wwn*); do
-    [[ -e $id ]] || break # if we matched nothing
-    if [[ $(readlink -f $id) == "$short_dev" ]]; then
-        printf '%s\n' "$id"
-        exit
-    fi
+  [[ -e $id ]] || break # if we matched nothing
+  if [[ $(readlink -f $id) == "$short_dev" ]]; then
+    printf '%s\n' "$id"
+    exit
+  fi
 done
 # a vm may not have a by-id link.
 printf '%s\n' "$short_dev"
index 7990a19918faf90e56760428b54fce9e032f1120..1586e48a2f86866c16552ff7b4ce27be3d0e161f 100755 (executable)
@@ -358,6 +358,7 @@ EOF
 # todo: update for lvm
 doroot2() {
 
+
   # We write to these files instead of just /etc/fstab, /etc/crypttab,
   # because these are filesystems created after our current root, and so
   # this allows us to update other root filesystems too.
@@ -366,10 +367,16 @@ doroot2() {
     echo $0: error: found partition=true but have mkroot2 arg
     exit 1
   fi
+
+
   root2_devs=()
   for vg in ${vgs[@]}; do
+
+
     root2_devs+=(/dev/mapper/crypt-$vg-root2)
     if $mkroot2; then
+      lvcreate -y -L $root2_part_mib $vg -n root2
+      lvcreate -y -L $boot2_part_mib $vg -n boot2
       luks-setup /dev/$vg/root2 crypt-$vg-root2
     fi
     cat >>/mnt/root/root2-crypttab <<EOF
@@ -658,11 +665,11 @@ fi
 boot_part_mib=$(( boot_mib * raid_duplication / ${#boot_devs[@]} ))
 
 if zilap; then
-  boot2_part_mib=0
-  root2_part_mib=0
-else
   boot2_part_mib=$(( boot2_mib * raid_duplication / ${#boot_devs[@]}  ))
   root2_part_mib=$(( root2_mib * raid_duplication / ${#root_devs[@]}  ))
+else
+  boot2_part_mib=0
+  root2_part_mib=0
 fi
 ### end calculate boot partition space
 
@@ -744,14 +751,18 @@ if $partition; then
     # we do lvm removals just for the disks we are using
     pv_wipes=()
     vg_wipes=()
+    declare -A vg_map
     pv_devs=$(pvs --noheadings -o pvname)
     for pv_dev in $pv_devs; do
-      pv_disk=${pv_dev%%[0-9]*}
       for short_dev in ${short_devs[@]}; do
-        if [[ $pv_disk == "$short_dev" ]]; then
+        if [[ $pv_dev == $short_dev* ]]; then
           pv_wipes+=($pv_dev)
-          vgs=$(pvs --noheadings -o vgname $pv_dev)
-          for vg in $vgs; do
+          vgs_of_pv=$(pvs --noheadings -o vgname $pv_dev)
+          for vg in $vgs_of_pv; do
+            if [[ ${vg_map[$vg]} ]]; then
+              continue
+            fi
+            vg_map[$vg]=t
             vg_wipes+=($vg)
             lvs=$(vgs --noheadings -o lv_path $vg)
             for lv in $lvs; do
@@ -779,7 +790,10 @@ if $partition; then
       while ! wipefs -a $dev; do
         sleep 2
         count_down=$((count_down - 1))
-        (( count_down > 0 )) || exit 1
+        if (( count_down <= 0 )); then
+          echo "$0: wipefs failed 10 times. exiting" >&2
+          exit 1
+        fi
       done
     done
   fi
@@ -869,12 +883,6 @@ if $partition; then
       fi
     fi
 
-    if zilap; then
-      # todo: now that we are using lvm, this doesnt need to be done until mkroot2
-      lvcreate -y -L $root2_part_mib $vg -n root2
-      lvcreate -y -L $boot2_part_mib $vg -n boot2
-    fi
-
     $pcmd mkpart primary "" ${pv_end}MiB ${disk_mib}MiB
     $pcmd name $bootn boot
     $pcmd set $bootn boot on
index 4003a2466207c5fc458b71067cefa70242abb110..959b7d33dea68fc765059c84478678cea9e98291 100755 (executable)
@@ -294,6 +294,12 @@ else # not armhf
   e fai-setup -evf -B $basefile
   # fai-setup expert mode avoids writing to /var/log/fai/variables
   # at least config_src is needed for autodiscover
+
+
+  # lld /var/log/fai/remote-logs:
+  # d 750  fai nogroup 100 08-07 08:51 pm /var/log/fai/remote-logs
+  # We could change the group or something, but why not just give me more permissions :)
+  e usermod -a -G nogroup iank
   $sed '/^FAI_CONFIGDIR|^FAI_CONFIG_SRC|^LOGUSER/d' /var/log/fai/variables
   tee -a /var/log/fai/variables <<'EOF'
 LOGUSER=fai