various fixes, data subvols changed, mostly handled elsewhere now
[automated-distro-installer] / chboot
diff --git a/chboot b/chboot
index 426fd9a2cef87b83d8fbf22fc6fc146cd7223b38..2a357e6d2f1dba5e01d92bdd8fa597a3958cbfd0 100755 (executable)
--- a/chboot
+++ b/chboot
@@ -39,6 +39,9 @@ EOF
     exit $1
 }
 
+
+grub_extn=4
+
 ###### begin command line parsing #####
 reboot=true
 temp=$(getopt -l opt o "$@") || usage 1
@@ -58,7 +61,8 @@ distro=$1
 
 if [[ ! $distro ]]; then
     echo "available distros:"
-    btrfs subvolume list /boot | sed -rn 's/^.*boot_(.*)/\1/p'
+    cur=$(btrfs subvol show /boot| sed -rn 's/^.*Name:\s*(\S*).*/\1/p')
+    btrfs subvolume list /boot | awk '{print $9}' | sed "s/$cur/$cur (current)/"
     exit 0
 fi
 
@@ -90,6 +94,13 @@ boot_disk=${boot_dev%%[0-9]*}
 # https://www.gnu.org/software/grub/manual/html_node/Device-map.html
 e grub-bios-setup -d $mount_point/grub/i386-pc -s -m $mount_point/grub/device.map $boot_disk
 
+# todo, mount_point needs subvolid=0
+
+e umount $mount_point
+
+e mount $boot_disk$grub_extn $mount_point
+e grub-editenv $mount_point/grubenv set last_boot=/boot_$distro
+e grub-editenv $mount_point/grubenv set did_fai_check=true
 e umount $mount_point
 e rmdir $mount_point