1

I have linux on usb(32bit x86) and two PCs,

  1. one an laptop 64x uefi boots fine.
  2. one tablet having 64bit processor but 32bit uefi-bios do not boot.

The second one has no option for legacy boot, but it has the possibillity to boot from .efi-File.

Unfortunately none of the .efi-files ...

  • /efi/boot/bootx64.efi
  • /efi/boot/grubx64.efi

... loads and give the same message: \efi\boot\bootx64.efi boot failed.

Any suggestions?

4
  • Your system is not capable of booting a 32-bit kernel while in UEFI mode. So either use legacy mode or use a 64-bit kernel. Since only one is possible, your options are limited, none of those files are meant for a 32-bit operating system. They both specifically indicate 64-bit.
    – Ramhound
    Commented Jan 30, 2016 at 14:33
  • how can that even be possible: a 32-bit linux having 64-bit .efi-File!?
    – Grim
    Commented Jan 30, 2016 at 14:40
  • It isn't possible. The EFI files are only for the 64-bit installation on the disk.
    – Ramhound
    Commented Jan 30, 2016 at 14:57
  • 1
    It is possible to do what Peter is asking; it's just a very bleeding-edge configuration. See my answer for more information.
    – Rod Smith
    Commented Jan 31, 2016 at 20:28

1 Answer 1

2

EFIs support programs, including boot loaders, of like bit depth. In other words, an x86-64 (aka AMD64, x64, or EM64T) EFI can launch a 64-bit binary, which normally has a filename ending in x64.efi; and an x86 (aka IA32, i686 or related) EFI can launch a 32-bit binary, which normally has a filename ending in ia32.efi. Note that, if you have a 32-bit EFI, the bit depth of the CPU is irrelevant. The result is that your system with a 32-bit EFI and 64-bit CPU is limited to running 32-bit EFI programs.

Normally, the bit depth of the EFI boot loader (which is just a particular type of EFI program) also limits the bit depth of the OS it runs. Thus, it's easiest to install a 32-bit OS on a computer with a 32-bit EFI. There are ways around this limit, though. In particular, both Apple's OS X boot loader and Linux's GRUB support cross-bit-depth kernel booting, so you can launch a 64-bit kernel from a 32-bit boot loader or vice-versa. (Obviously, you need a 64-bit CPU to launch a 64-bit kernel.) Since you say you're using Linux, but don't say what distribution you're using, I can't give very detailed instructions -- and in fact I don't have the details handy. Such cross-bit-depth installations are very much "bleeding edge," and I recommend avoiding them if at all possible.

Sticking with a 32-bit OS is likely to be easier, but many OSes (including most Linux distributions) have neglected 32-bit EFIs, so you may need to add a boot loader yourself. This process is described for Ubuntu here. IIRC, Debian now provides 32-bit EFI support, so you might get it working "out of the box."

Ultimately, to have one disk that's bootable on both 32-bit and 64-bit EFIs, with BIOS/CSM/legacy-mode boot support out of the question, you'll need to install both 32-bit and 64-bit versions of a boot loader, and configure one to boot in a cross-bit-depth manner. It's likely to be better to have two disks, or at least two installations on one disk, one being 32-bit and the other 64-bit. For an external disk, the 32-bit boot loader will be EFI/BOOT/bootia32.efi and the 64-bit boot loader will be EFI/BOOT/bootx64.efi.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.