It’s not really necessary to install a full Linux just to load the EFI GRUB that’s included with the x86 image. We can just create a small partition and install GRUB into it and point it at the existing
grub.cfg file. Use your favorite Linux live CD/DVD/USB (I’m liking Parrot OS today).
gparted to create a small
ext4 partition on the HassIO drive. I’m assuming it’s
/dev/sda. It’ll probably tell you that the partition table doesn’t include the whole disk and offer to fix it. Let it. A 10MB partition should be fine. Tell
gparted to leave 0 bytes after the partition so it ends up at the end of the disk. That way HassIO will be able to resize its partitions and use all the unallocated space.
Note: You may end up with a tiny bit of unallocated space after this partition even if tell
gparted to make it 0. That’s due to alignment. Don’t worry about it.
Mount the new partition (should be
sda9 but check):
sudo mount /dev/sda9 /mnt
Install GRUB on the new partition. If you’re using Parrot OS you’ll need to install the GRUB package first:
sudo apt install grub2
Then install GRUB onto the HassIO drive. Replace
/dev/sda with your device if different:
sudo grub-install --compress=xz --root-directory=/mnt /dev/sda --force
Now that GRUB is installed, all that’s left is to configure it to redirect to the HassIO installation. Run the following to create the necessary config file in
/mnt/boot/grub/grub.cfg (the first line tells it to use the first partition on the first drive, the second tells it where HassIO’s GRUB config file is):
cat <<! | sudo dd of=/mnt/boot/grub/grub.cfg
Remove the boot media and reboot. You should go straight to the HassIO boot menu.