Erinn Looney-Triggs
2012-07-04 20:13:00 UTC
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>
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>