#771465 Please add UEFI boot files to i386 and amd64 netboot images

Package:
debian-installer
Source:
debian-installer
Description:
Debian Installer documentation
Submitter:
Teemu Ikonen
Date:
2015-09-13 10:51:08 UTC
Severity:
normal
#771465#5
Date:
2014-11-29 21:45:05 UTC
From:
To:
Hi,

I recently installed jessie on a 2007 intel Macbook by booting d-i
from a USB drive. Getting the installer to start required quite a bit
of hand tuning.

The Macbook versions Macbook1,1 and Macbook2,1 from 2006-2007 require
a 32-bit EFI bootloader and thus do not work with amd64 version of
d-i. On the other hand, the i386 hd-media/boot.img.gz image only works
with BIOS systems.

I got the installer running by manually installing GRUB (the i386-efi
version) to a USB drive with an MBR partition table and a FAT32
filesystem, copying grub.conf from the amd64 netboot ISO image and
copying the kernel image and initrd from the i386 netboot image. This
procedure is straightforward, but requires an existing linux computer
and probably does not win any usability awards.

The straightforward fix would be to install both syslinux and GRUB to
the hd-media image, as they seem to be able to coexist without
problem. If this is for some reason not possible, then the procedure
to get i386 EFI systems booting should be at least documented on the
Installation guide, somewhere around chapter 4.3.3.1.

Best,
Teemu

#771465#10
Date:
2014-11-30 12:58:23 UTC
From:
To:
[ CCing debian-kernel@lists.debian.org for some more insights ]

Teemu Ikonen <tpikonen@gmail.com> writes:

Are you sure they don't run amd64 code? From what I've found on the web
these two models have Intel Core Duo and Core 2 Duo processors. Early
Intel based Macs have a 32bit EFI but perfectly run 64 bit code AFAIK.
Earlier kernels (before 3.4 IIRC) are not capable of crossefi booting
(different kernel arch than EFI arch), but that should not be a problem
on jessie's 3.16 kernel.

What you however need is a 32bit grub EFI image because your EFI
environment is 32bit.

Can you test if you can boot the 64bit kernel and initrd from the amd64
image with this procedure (using the 32bit grub-efi)?

I know this works the other way around (64bit grub and EFI booting into
a 32 bit kernel) but never tested the 32bit to 64bit kernel case.

EFI 32bit and 64bit and BIOS images of grub can all coexist on the same
installation media. IMO it would make sense to install all of them to
the 32bit and 64bit x86 images.

Gaudenz

#771465#15
Date:
2014-11-30 19:48:37 UTC
From:
To:
AFAIK Core Duo is 32-bit and Core 2 Duo (which I am testing with) is 64-bit.

I made a USB stick with 32-bit EFI grub and kernel and initrd copied from amd64
netboot ISO. Grub naturally works ok, and interestingly, even the kernel boots
but it does not find a working init.

I'm not sure if the amd64 init can be made to work with this machine, but of
course it would be nice to be able to install 64-bit Debian to this computer.

This would be the ideal solution. The 32-bit EFI Macs have a somewhat
strange firmware though and only seem to work when the bootloader is
installed as /EFI/BOOT/BOOTIA32.EFI. Adding the --removable flag to
grub-install produces a working grub installation, also when grub is
installed to the EFI partition of the hard drive.

Best,
Teemu

#771465#20
Date:
2014-11-30 20:05:47 UTC
From:
To:
Ah, of course I mixed the kernel from amd64 and init from i386. With the correct
combination (both from amd64 mini.iso) and 32-bit EFI grub the 64-bit installer
starts fine.

Sorry for the noise,
Teemu

#771465#25
Date:
2014-12-01 00:21:41 UTC
From:
To:
I'm working on two different UEFI setup things right now that will
make these machines work better - see

http://blog.einval.com/2014/11/20#Jessie-EFI

I'm almost done with #746662, just testing now (forcing also
installing grub to the removable media path).

Next up is the "force using a 32-bit UEFI version og grub even for
64-bit systems" (#768461)

Hopefully a combination of these 2 fixes will make your system work
out of the box...

#771465#30
Date:
2015-09-13 09:45:31 UTC
From:
To:
retitle 768461 Please add UEFI boot files to i386 and amd64 netboot images
severity 768461 normal
tags 768461 patch
thanks

I recently had to reinstall jessie to my MacBook2,1 and found that the
Debian 8.2 i386 netinst image now works out of the box even with the
strange EFI implementation in this box. Many thanks to Steve McIntyre
for making this work, yay!

In general I like to do my installations with the netboot images,
since the 28 M image is sure to fit any USB stick which happens to be
at hand. It would be super-duper if the 32-bit and 64-bit EFI boot
files could also be added to these images, so that they too would
start to work like magic. For old intel MacBooks the EFI boot file
needs to be in the removable path, i.e. efi/boot/bootia32.efi

[I added the patch tag because the fix to this bug is known and
trivial, no patch attached though]

Best,
Teemu

#771465#41
Date:
2015-09-13 10:11:58 UTC
From:
To:
Control: tags -1 -patch
http://ftp.uk.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/mini.iso
or something else?

No patch, so removed, whether the fix is known or trivial in principal
an actual patch which actually does the required thing is what needs to
be produced.

I'm not actually 100% clear what you are asking for. Given the above
mini.iso I have in the ESP:

$ isoinfo -x /boot/grub/efi.img -RJ -i mini.iso-sid > efi.img
$ mdir -i efi.img -/ -b
::/efi/
::/efi/boot/
::/efi/boot/bootx64.efi

and

$ isoinfo -f -RJ -i mini.iso-sid

shows lots of stuff in /boot/grub/x86_64-efi of the main image, all of
which I believe is sufficient to boot on a 64-bit EFI system.

The i386 version of mini.iso instead has bootia32.efi in the ESP and
/boot/grub/i386-efi on the main ISO.

So either this isn't working for you or the request you are making is
for something else in addition.

Ian.

#771465#48
Date:
2015-09-13 10:36:24 UTC
From:
To:
Hi Ian,

Yes, that's the one, although I've tested with the i386 image.

The latest mini.iso netboot image is not booting on my Macbook2,1 but
the official Debian 8.2 netinst image (315 MB) does.

The USB-sticks I've managed to boot in this machine all have had the
file efi/boot/bootia32.efi on the single partition they've had, either
a vfat partition prepared by grub-install or a is9660 filesystem
copied from the installer image. That's also the case with the 8.2
netinst image:

$ 7z l debian-8.2.0-i386-netinst.iso | grep bootia
2015-09-06 12:00:44 .....       272384       272384  efi/boot/bootia32.efi

This file is not present in the netboot mini.iso.

The EFI implementation on old intel Macbooks is probably broken in
several ways, but to me it looks like the fix is easy, known, and
takes all of 272384 bytes in the installation image. But you are
right, the patch is not there yet.

Best,
Teemu

#771465#53
Date:
2015-09-13 10:46:37 UTC
From:
To:
It is present in the ESP (efi.img within the iso image), which is
pointed to be (AIUI) the El Torito headers in the ISO.

Perhaps there are some systems for which this is not sufficient?

The fact that it is easy to describe in prose what needs to happen does
not mean that it is actually easy to implement I'm afraid.

Ian.