lots of updates, some t11 stuff
[distro-setup] / mount-latest-subvol
index 7f54a4c2cfd9c958647dbc68039469df2e59c1ef..d2e41f33f7e4f65388019d28b068d8860ebad8aa 100644 (file)
@@ -37,6 +37,8 @@ EOF
   exit $1
 }
 
+all_vols=(q a o i ar qr)
+
 
 tu() {
   while read -r line; do
@@ -132,6 +134,7 @@ umount-kill() {
 }
 
 # duplicated in check-subvol
+# Reassign $1 var from /dev/dm- to corresponding /dev/mapper/
 mapper-dev() {
   local mapdev
   local -n devref=$1
@@ -185,8 +188,15 @@ if [[ -e /mnt/root/root2-fstab ]]; then
   mnt /mnt/boot2
 fi
 
+do_o=true
 root_dev=$(awk '$2 == "/" {print $1}' /etc/mtab)
 mapper-dev root_dev
+o_dev=$(awk '$2 == "/mnt/o" {print $1}' /etc/mtab)
+mapper-dev o_dev
+
+if [[ $o_dev == "$root_dev" ]]; then
+  do_o=false
+fi
 
 # root2_dev=$(awk '$2 == "/mnt/root2" {print $1}' /etc/mtab)
 # mapper-dev root2_dev
@@ -198,6 +208,7 @@ if cryptsetup status $root_dev &>/dev/null; then
   crypt_dev=$root_dev
 else # if we are in a recovery boot, find the next best crypt device
   mopts=,noauto
+  do_o=false
   for dev in $(dmsetup ls --target crypt | awk '{print $1}'); do
     dev=/dev/mapper/$dev
     if awk '{print $1}' /etc/mtab | grep -Fx $dev &>/dev/null; then
@@ -232,12 +243,14 @@ $crypt_dev  /q  btrfs  noatime,subvol=q,gid=1000$mopts  0 0
 EOF
 fi
 
-f=(/mnt/root/btrbk/o.*); f=${f[0]}
+f=(/mnt/o/btrbk/o.*); f=${f[0]}
 if [[ -e $f ]]; then
   fstab <<EOF
-$crypt_dev  /o  btrfs  noatime,subvol=o$mopts  0 0
+$o_dev  /o  btrfs  noatime,subvol=o$mopts  0 0
 /o/m  /m  none  bind$mopts  0 0
 EOF
+else
+  do_o=false
 fi
 
 if [[ $HOSTNAME == frodo ]]; then
@@ -264,7 +277,7 @@ while [[ ${my_pids[-1]} != 1 && ${my_pids[-1]} != ${my_pids[-2]} && $count -lt $
 done
 ### end get pids that this program depends on so we dont kill them
 
-for vol in q a o i; do
+for vol in ${all_vols[@]}; do
   d=/$vol
   if ! awk '{print $2}' /etc/fstab | grep -xF $d &>/dev/null; then
     continue
@@ -366,7 +379,7 @@ for vol in q a o i; do
       #pi python-jmespath # dependency of btrfs-snapshots-diff
       # todo: need python3 port of btrfs-snapshots-diff, py2 no exist on nabia
       parentid=$(btrfs sub show $leaf | awk '$1 == "Parent" && $2 == "UUID:" {print $3}')
-      bsubs=(/mnt/root/btrbk/$vol.*)
+      bsubs=(btrbk/$vol.*)
       bsub=
       # go in reverse order as its more likely to be at the end
       for ((i=${#bsubs[@]}-1; i>=0; i--)); do