root2 partitions, various improvements
[automated-distro-installer] / fai / config / files / boot / chboot / DEFAULT
index 7c89c471ea4c220927db3158a7dd7fa14a00c25e..adfbe1c31d71661d685b64abca31137f6bc0617a 100755 (executable)
@@ -46,9 +46,9 @@ pxe-server # disable pxe server
 ssh root@some_hostname
 lsblk # identify boot dev. if boot dev is a raid, this could be repeated on all boot devs.
 mount /dev/sdd3 /mnt
-mount_point=/mnt/boot_debiantesting # the subvol i want to chboot to
+mp=/mnt/boot_debiantesting # the subvol i want to chboot to
 boot_disk=/dev/sdd
-grub-bios-setup -d $mount_point/grub/i386-pc -s -m $mount_point/grub/device.map $boot_disk
+grub-bios-setup -d $mp/grub/i386-pc -s -m $mp/grub/device.map $boot_disk
 reboot
 
 todo: figure out if it's possible to make a multi-distro grub like I have with libreboot
@@ -64,7 +64,6 @@ EOF
 }
 
 
-grub_extn=4
 
 ###### begin command line parsing #####
 reboot=true
@@ -125,7 +124,16 @@ for boot_dev in $(btrfs fil show $mnt | sed -nr 's#.*path\s+(\S+)$#\1#p'); do
   e umount $mount_point
 done
 
-e mount $boot_disk$grub_extn $mount_point
+if [[ $(blockdev --getsize64 ${boot_disk}4) == 8388608 ]]; then
+  # old partition scheme
+  grub_dev=${boot_disk}4
+elif [[ $(blockdev --getsize64 ${boot_disk}5) == 8388608 ]]; then
+  grub_dev=${boot_disk}5
+else
+  grub_dev=${boot_disk}7
+fi
+
+e mount $grub_dev $mount_point
 e grub-editenv $mount_point/grubenv set last_boot=/$distro
 e grub-editenv $mount_point/grubenv set did_fai_check=true
 e umount $mount_point