Whole disk image feature is broken in UEFI environment for pxe drivers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
High
|
Shivanand Tendulker |
Bug Description
The whole disk image support feature is broken for pxe driver. I tested this with pxe_ilo driver in UEFI boot mode.
the config file generated is syntatically incorrect.
Incorrect elilo config file in tftproot directory
-------
default=deploy
image=/
image= <<<---- This is empty
initrd=
image=chain.c32
append mbr:{{ DISK_IDENTIFIER }} <<--- it should be "append="
-------
upon fixing above mentioned errors and re-generating the elilo config config file.It proceeded to deploy, but the actual boot into whole disk image failed. elilo threw some error, which was too fast for me to note and change.
-------
default=
image=/
image=/
image=chain.c32
-------
summary: |
- Whole disk image feature is broken in UEFI environment for pxe + Whole disk image feature is broken in UEFI environment for pxe driver |
summary: |
- Whole disk image feature is broken in UEFI environment for pxe driver + Whole disk image feature is broken in UEFI environment for pxe drivers |
Changed in ironic: | |
status: | New → Confirmed |
importance: | Undecided → High |
milestone: | none → kilo-rc1 |
Changed in ironic: | |
assignee: | nobody → Shivanand Tendulker (shivanand-tendulker) |
Changed in ironic: | |
assignee: | Haomeng,Wang (whaom) → Shivanand Tendulker (shivanand-tendulker) |
Changed in ironic: | |
status: | Fix Committed → Fix Released |
Changed in ironic: | |
milestone: | kilo-rc1 → 2015.1.0 |
Discussed this with Shivanand just now, and I think the solution is to treat the combination of whole disk image, UEFI mode, and boot-instance- from-network as unsupported for the time being.
I'm copying the IRC log here for reference:
16:57:06 < stendulker> devananda: What do you suggest?
16:57:55 < devananda> besides fixing it? do you know why it's not working?
16:59:03 < stendulker> primarily there is syntax errors in the config file that gets generated.
16:59:22 < stendulker> then it tries to use chain.c32 which is valid only for BIOS
16:59:46 < devananda> stendulker: oh, right. UEFI support for chain loading is handled differently
17:00:01 < stendulker> if we were to use syslinux for UEFI, it does not support chainloding
17:00:19 < stendulker> thirdly elilo do not support chainloading itself
17:00:57 < stendulker> grub2 does have support for chainloading, but that is a different investigation
17:02:21 < devananda> stendulker: grub2 is also local and has to be invoked by UEFI, so really, we'd be unnecessarily layering a net boot on top of grub2 bootloader on top of UEFI.
17:02:40 < devananda> *has to be invoked by UEFI, in the case where you're booting via UEFI
17:02:57 < tiagogomes_> on the ssh_agent driver, when I run `validate-node` I get this error: "failed to validate deploy image info". Any clue about what is missing?
17:03:11 < devananda> stendulker: so if I understand correctly, UEFI actually has some support for chainloading natively, but we dont have a good mechanism to pass that in remotely right now
17:03:31 < stendulker> devananda: yes
17:03:40 < devananda> stendulker: you can provide support for UEFI boot of whole disk images (eg, for windows deployment) via iscsi_ilo driver. is there a need for the pxe_ilo driver to support this?
17:05:26 < stendulker> devananda: i think this feature never came from ilo driver team. It was implemeneted as a independent feature. Also this bug would apply to all pxe drivers.
17:06:25 < devananda> stendulker: it seems like a poor interaction between UEFI support, whole-disk-imaging, and PXE drivers (ie, requiring the instance to net-boot after provisioning)
17:07:18 < devananda> *and using a legacy network boot loader (eg, not UEFI's own network boot program)
17:07:37 < stendulker> devananda: i feel we should disable whole disk image support for pxe drivers in uefi boot mode
17:07:41 < devananda> stendulker: I'd suggest we add some error checking to the PXE driver and error early if this combination was requested
17:07:49 < devananda> stendulker: :)
17:08:22 < stendulker> devananda: ok. I will investigate and fix on these lines.
17:08:27 < devananda> stendulker: thanks much