Discussion:
[cobbler] EFI PXE boot with cobbler
Erinn Looney-Triggs
2012-07-04 20:13:00 UTC
Permalink
I am pretty new to this, as in I started working on this last night, so
I imagine there are some things that I am overlooking. The basic issue
is getting EFI to PXE boot properly with a cobbler controlled DHCP server.

There is a very old ticket that is here:
https://fedorahosted.org/cobbler/ticket/567#no1, if the cobbler devs are
still looking for a person with an EFI system, well here I am :).

It looks like the EFI files are copied over as part of the cobbler sync
and placed into tftpboot/grub, so that piece is in place.

The DHCP template doesn't at this point seem to allow for EFI PXE boot
except in the case of an ia64 system, so I had to modify it to output
the following, which works on a RHEL 6.3 dhcp server:

ddns-update-style interim;

allow booting;
allow bootp;

ignore client-updates;
set vendorclass = option vendor-class-identifier;

option pxe-system-type code 93 = unsigned integer 16;

subnet 10.0.0.1 netmask 255.255.255.0 {
option routers 10.0.0.1;
option domain-name-servers 10.0.0.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.0.0.10 10.0.0.254;
default-lease-time 21600;
max-lease-time 43200;

class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) =
"PXEClient";
next-server 10.0.0.1;

if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}
}

# group for Cobbler DHCP tag: default
group {
host foo.example.com_em0 {
hardware ethernet XX:XX:XX:XX:XX;
fixed-address 10.0.0.10;
option host-name "foo.example.com";
option subnet-mask 255.255.255.224;
option routers 10.0.0.1;
}
}

This is borrowed heavily from here:
https://fedoraproject.org/wiki/QA:Testcase_UEFI_pxeboot.

Fine, I receive the grub prompt with the appropriate listing from
install images. At this point it attempts to load the files, but nothing
really happens, so that is as far as I have made it.

Would it be possible to incorporate the above into the default cobbler
dhcp template? It would seem to be a pretty decent solution to my
untrained eye.

Is there a reason why the filename and next-server should be specified
for every fixed-address? It is fine if there is I just couldn't figure
out how to set those via cobbler itself. Perhaps those are there for
support of ia64?

Finally anyone have any ideas on why the system goes into grub, grabs
vmlinuz and initrd and then just sits there? Nothing happens after this
point so this is where I am stuck this morning.

All in all it seems like EFI PXE support is almost there in cobbler,

-Erinn

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <https://fedorahosted.org/pipermail/cobbler/attachments/20120704/f9d94521/attachment.sig>
Erinn Looney-Triggs
2012-07-04 22:23:21 UTC
Permalink
Post by Erinn Looney-Triggs
I am pretty new to this, as in I started working on this last night, so
I imagine there are some things that I am overlooking. The basic issue
is getting EFI to PXE boot properly with a cobbler controlled DHCP server.
https://fedorahosted.org/cobbler/ticket/567#no1, if the cobbler devs are
still looking for a person with an EFI system, well here I am :).
It looks like the EFI files are copied over as part of the cobbler sync
and placed into tftpboot/grub, so that piece is in place.
The DHCP template doesn't at this point seem to allow for EFI PXE boot
except in the case of an ia64 system, so I had to modify it to output
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 10.0.0.1 netmask 255.255.255.0 {
option routers 10.0.0.1;
option domain-name-servers 10.0.0.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.0.0.10 10.0.0.254;
default-lease-time 21600;
max-lease-time 43200;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) =
"PXEClient";
next-server 10.0.0.1;
if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}
}
# group for Cobbler DHCP tag: default
group {
host foo.example.com_em0 {
hardware ethernet XX:XX:XX:XX:XX;
fixed-address 10.0.0.10;
option host-name "foo.example.com";
option subnet-mask 255.255.255.224;
option routers 10.0.0.1;
}
}
https://fedoraproject.org/wiki/QA:Testcase_UEFI_pxeboot.
Fine, I receive the grub prompt with the appropriate listing from
install images. At this point it attempts to load the files, but nothing
really happens, so that is as far as I have made it.
Would it be possible to incorporate the above into the default cobbler
dhcp template? It would seem to be a pretty decent solution to my
untrained eye.
Is there a reason why the filename and next-server should be specified
for every fixed-address? It is fine if there is I just couldn't figure
out how to set those via cobbler itself. Perhaps those are there for
support of ia64?
Finally anyone have any ideas on why the system goes into grub, grabs
vmlinuz and initrd and then just sits there? Nothing happens after this
point so this is where I am stuck this morning.
All in all it seems like EFI PXE support is almost there in cobbler,
-Erinn
In a reply to my own message the hang on PXE boot appears to be a known
problem with no solution, see here:
http://lists.us.dell.com/pipermail/linux-poweredge/2011-November/045603.html


As for the rest of it, could we get something like that rolled into the
DHCP template for cobbler? In my testing switching between BIOS and EFI
it has worked well thus far.

-Erinn


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <https://fedorahosted.org/pipermail/cobbler/attachments/20120704/b679fea1/attachment.sig>
James Cammarata
2012-07-05 01:58:53 UTC
Permalink
Post by Erinn Looney-Triggs
As for the rest of it, could we get something like that rolled into the
DHCP template for cobbler? In my testing switching between BIOS and EFI
it has worked well thus far.
Absolutely, can you send a pull request via github?
Erinn Looney-Triggs
2012-07-10 19:20:11 UTC
Permalink
Post by James Cammarata
Post by Erinn Looney-Triggs
As for the rest of it, could we get something like that rolled into the
DHCP template for cobbler? In my testing switching between BIOS and EFI
it has worked well thus far.
Absolutely, can you send a pull request via github?
No problem, done.

-Erinn




-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <https://fedorahosted.org/pipermail/cobbler/attachments/20120710/436c4a19/attachment.sig>
Loading...