X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Ffiles%2Fboot%2Fchboot%2FDEFAULT;h=6354ed95ecd06f71f118c39f37277b8453d188d9;hb=61c3a58fcfadab7c333487f887b3f9f3a53bb93a;hp=7800764614737e4e871caca7d3f23a1514e4f6b9;hpb=45a2a286083772abc0688e663a6ecc68af0a8d0e;p=automated-distro-installer diff --git a/fai/config/files/boot/chboot/DEFAULT b/fai/config/files/boot/chboot/DEFAULT index 7800764..6354ed9 100755 --- a/fai/config/files/boot/chboot/DEFAULT +++ b/fai/config/files/boot/chboot/DEFAULT @@ -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 @@ -110,7 +109,7 @@ fi e() { echo "$@"; "$@"; } -for boot_dev in $(s btrfs fil show $mnt | sed -nr 's#.*path\s+(\S+)$#\1#p'); do +for boot_dev in $(btrfs fil show $mnt | sed -nr 's#.*path\s+(\S+)$#\1#p'); do mount_point=$(mktemp -d) @@ -125,11 +124,17 @@ for boot_dev in $(s 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 +else + grub_dev=${boot_disk}5 +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 -y if $reboot; then touch /tmp/keyscript-off reboot now