Bug #6725
openThe "LOCALBOOT 0" entry causes some bare metal machines to stuck during boot
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1122153
++ This bug was initially created as a clone of Bug #1122152 ++
Foreman: The "LOCALBOOT 0" entry causes some bare metal machines to stuck during boot.
Environment:
rhel-osp-installer-0.1.1-1.el6ost.noarch
foreman-proxy-1.6.0.8-1.el6sat.noarch
foreman-installer-1.5.0-0.4.RC2.el6ost.noarch
ruby193-rubygem-foreman-tasks-0.6.4-2.el6sat.noarch
rubygem-foreman_api-0.1.11-4.el6sat.noarch
openstack-foreman-installer-2.0.15-1.el6ost.noarch
foreman-discovery-image-6.5-20140620.2.el6sat.noarch
ruby193-rubygem-foreman_openstack_simplify-0.0.6-8.el6ost.noarch
openstack-puppet-modules-2014.1-19.1.el6ost.noarch
Description:
The PXE file created for VMs with intention to boot from the HD (here: /var/lib/tftpboot/pxelinux.cfg/<MAC>) contains the following:
DEFAULT menu
PROMPT 0
MENU TITLE PXE Menu
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT 0
Result:
Some HW (for example Dell PowerEdge C6100) isn't able to boot the OS from the HD when this option is selected after booting via PXE.
Expected result:
All machines should be able to boot from the HD, when selecting the "local" option after booting via PXE.
Note: the following workaround found to be working on all machines (so far):
label local
MENU LABEL (local)
MENU DEFAULT
COM32 chain.c32
APPEND hd0 0
Updated by Dominic Cleal over 10 years ago
- Subject changed from Foreman: The "LOCALBOOT 0" entry causes some bare metal machines to stuck during boot. to The "LOCALBOOT 0" entry causes some bare metal machines to stuck during boot
- Category set to Templates
Updated by The Foreman Bot over 10 years ago
- Status changed from New to Ready For Testing
- Target version set to 1.7.5
- Pull request https://github.com/Katello/katello/pull/4585 added
- Pull request deleted (
)
Updated by Dominic Cleal over 10 years ago
- Status changed from Ready For Testing to New
- Target version deleted (
1.7.5) - Pull request added
- Pull request deleted (
https://github.com/Katello/katello/pull/4585)
Updated by Simone Caldana over 8 years ago
This happens also on virtual hosts with more than 1 NIC.
The workaround of adding
COM32 chain.c32 APPEND hd0 0
to the "PXELinux default local boot" template works
Updated by Ohad Levy over 8 years ago
Simone Caldana wrote:
This happens also on virtual hosts with more than 1 NIC.
The workaround of adding
[...]
to the "PXELinux default local boot" template works
this can be done conditionally in the template too, e.g. if you have more than one nic, or on specific hardware model. maybe you could consider sending it as a patch to https://github.com/theforeman/community-templates ?
thanks!
Updated by Lukas Zapletal almost 8 years ago
Experiencing this on RHEV 4.0 (reported by Sat QA https://bugzilla.redhat.com/show_bug.cgi?id=1421656). Weird, what is causing this?
Updated by Denis Müller over 7 years ago
Ohad Levy wrote:
Simone Caldana wrote:
This happens also on virtual hosts with more than 1 NIC.
The workaround of adding
[...]
to the "PXELinux default local boot" template worksthis can be done conditionally in the template too, e.g. if you have more than one nic, or on specific hardware model. maybe you could consider sending it as a patch to https://github.com/theforeman/community-templates ?
thanks!
Is it possible to select another Template for PXE local boot? Now we are using "Kickstart default PXELinux" as PXE Template, but there is no option to select a another template for pxe local boot.
Updated by Lukas Zapletal over 7 years ago
Is it possible to select another Template for PXE local boot? Now we are using "Kickstart default PXELinux" as PXE Template, but there is no option to select a another template for pxe local boot.
Unfortunately no, this is hardcoded in codebase: "#{kind} default local boot
Feel free to send a patch, this could be global variable or even host variable.
Updated by Lukas Zapletal over 7 years ago
For the record, I patched community-templates already, it's an alternative localboot option now. Not the default one tho.
Updated by Lukas Zapletal over 7 years ago
For the record, a change has been pushed into community-templates repository [1] which adds an entry called "Chainload the first hard drive (hd0)" which uses chain.c32 method. Users can make it a default easily via "MENU DEFAULT" and "DEFAULT" options for all of their systems, unfortunately there is no way of changing that per host as I believe @host variable is not available during template rendering (I haven't verified this, template is currently locked due to issue #19677).
This change will be available in Foreman 1.15, users are able to easily do template edits in older versions tho. This is trivial operation.
Updated by Frederic Schaer over 7 years ago
Lukas Zapletal wrote:
(...) as I believe @host variable is not available during template rendering (I haven't verified this, template is currently locked due to issue #19677).
Hi,
I faced the exact same issue, and another weird one too.
But to reply to previous comment, yes, the @host variable is available during template building, so I "fixed" this by editing the pxelinux_chainload snippet with this :
(...) LABEL local MENU LABEL Chainload into bootloader on the first disk MENU DEFAULT <% if @host.hostgroup.to_s.match(".*C6220.*") -%> LOCALBOOT -1 <% else -%> LOCALBOOT 0 <% end -%> (...)
Or put whatever you want in the if condition.
! WARNING !
Don't put a LOCALBOOT -1 on old dell R510s : I jut got bitten and faced PCIe fatal errors on the network card after I reinstalled a host and after it exited pxelinux after the install (I previously set localboot -1 for all hosts)
Cheers