Skip to content

Instantly share code, notes, and snippets.

@fensoft
Last active February 25, 2025 04:47
Show Gist options
  • Save fensoft/b27368b5588448bbe82eeb63c75edfac to your computer and use it in GitHub Desktop.
Save fensoft/b27368b5588448bbe82eeb63c75edfac to your computer and use it in GitHub Desktop.
install ubuntu 22 64 bits on 32 bits EFI
copy https://github.com/hirotakaster/baytail-bootia32.efi/blob/master/bootia32.efi to /EFI/BOOT
after installing ubuntu:
sudo passwd ubuntu
sudo apt update
sudo apt install openssh-server
ssh to your computer, then:
sudo mount /dev/mmcblk1p2 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount -t proc /proc /mnt/proc
sudo mount --bind /run /mnt/run
sudo mount --bind /sys /mnt/sys
sudo modprobe efivars
sudo chroot /mnt
in chroot:
mount -t devpts devpts /dev/pts
mkdir -p /boot/efi
mount /dev/mmcblk1p1 /boot/efi/
apt update
apt-get remove --allow-remove-essential shim-signed
apt install grub-efi-ia32 grub-efi-ia32-bin
rm -rf /boot/efi/EFI/ubuntu
grub-install -v --target=i386-efi --efi-directory=/boot/efi
update-grub
exit
reboot
@WouterGritter
Copy link

WouterGritter commented Nov 4, 2024

Thanks a lot! With some additions, these instructions allowed me to install KUbuntu 22.04 on an Acer Aspire Switch 10 E (32-bit uefi, 64-bit cpu).

I used some additional mounts according to this post:

sudo mount /dev/mmcblk1p2 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /sys /mnt/sys
sudo mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
sudo mount -t proc /proc /mnt/proc
sudo mount --bind /run /mnt/run

Then, I ran sudo modprobe efivarfs instead of sudo modprobe efivars (not sure if it's a different module, or the snippet contains a typo)

This made it possible for me to run this command in chroot, which I couldn't do with the mount commands provided in the snippet (you might need to apt install efibootmgr):
sudo efibootmgr --create --disk /dev/mmcblk1 --part 1 --loader /EFI/BOOT/bootia32.efi --label "Ubuntu"

HOWEVER, I am not totally sure if I actually needed this! Because I still had no bootable device after these modifications.

What fixed it for me:
In my UEFI, I had to ENABLE secure boot, and manually add the 32-bit .efi file (in /EFI/ubuntu) as a file (give it a name), then push it to the top of the boot entries. No additional boot entry showed up after executing the efibootmgr command. If someone's trying this, you might want to try using the .efi file in /EFI/ubuntu instead of /EFI/BOOT when running efibootmgr, which might produce the same result as I got from manually adding this entry through the UEFI GUI.

Some notes:

  • On the Acer Aspire Switch 10 E, you can only modify some UEFI settings after setting a password.
  • I wasn't able to install KUbuntu 24.04 (haven't tried Ubuntu 24.04) due to the install failing after trying to install a 32-bit bootloader package. It seems like it realizes it needs one, but fails installing it. I attempted the install when connected to WiFi, you might get better results when not connecting to WiFi during the install.
  • After installing and upgrading KUbuntu 22.04, I was able to upgrade to KUbuntu 24.04 without any problems with the 32-bit bootloader. This makes me believe the KUbuntu 24.04 installer should work as well, if we could get past the error installing a package (again, maybe disabling WiFi could work?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment