iPXE discussion forum

Full Version: Display bug with console/PNG feature
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm using ipxe.efi compiled on Ubuntu (approximately one week ago).

When booting windows from an iscsi target (SANBOOT) the display is unreadable. I have traced the issue to the following command in my ipxe menu script -

console --picture ipxe.png

Commenting out this line removed the issue. Screenshots of the problem -

http://mistyprojects.co.uk/screenshots/2019.05.20_1.jpg

http://mistyprojects.co.uk/screenshots/2019.05.20_2.jpg

This bug/error was discovered when installing windows to an iscsi target by booting into WinPE (SANHOOK target and booting via wimboot) and running setup.exe. Stage 1 of setup (selecting the target disk and applying install.wim, etc) completed fine and the display was rendered properly. Following the reboot and starting stage 2 resulted in the display issue.

I lengthy thread I started on the reboot.pro forum documents my setup and this issue in much more detail -

http://reboot.pro/topic/22026-sanboot-wi...efi-system

Misty

P.s. let me know if there is anything I can do to try and trace the issue, or if any more details are required.
which arguments are you using to wimboot?

Have you tried removing the image / reseting console before starting wimboot?
(2019-05-22 06:33)NiKiZe Wrote: [ -> ]which arguments are you using to wimboot?

Have you tried removing the image / reseting console before starting wimboot?

Hi NiKiZe
wimboot works fine. The issue is encountered during the second stage of Windows setup (and also when booting an installed Windows) after issuing a SANBOOT command. wimboot is not used at all during this stage.

I am happy to try resetting the console - can you provide an example command for me to try when I get home.

Misty
humor me, how are you booting wimboot, since you don't have issues there correct?
(2019-05-22 18:21)NiKiZe Wrote: [ -> ]humor me, how are you booting wimboot, since you don't have issues there correct?

Happy to humour you. No issues with wimboot. iPXE menu entry for stage 1 (used to run Windows setup.exe) -
Code:
set gateway 0.0.0.0
set initiator-iqn iqn.client
echo -n Enter IQN filename:
read IQN
set iscsi-target iscsi:${boot-ip}::::${IQN}
echo iscsi-target = ${iscsi-target}
prompt Press any key to continue...
sanhook ${iscsi-target}
kernel ${boot-url}/wimboot pause
iseq ${platform} efi && initrd -n bootx64.efi ${boot-url}/bootx64.efi bootx64.efi ||
iseq ${platform} pcbios && initrd -n bootmgr ${boot-url}/bootmgr bootmgr ||
initrd -n BCD         ${boot-url}/boot/BCD           BCD ||
initrd -n boot.sdi    ${boot-url}/boot/boot.sdi      boot.sdi ||
initrd -n boot.wim    ${boot-url}/boot/boot.wim      boot.wim ||
prompt press any key to continue...
boot

Thanks for the tip about clearing the console. Adding the following to my menu entry worked -
Code:
console

Full menu entry for stage 2 (SANBOOT) with console command now added to clear the console -
Code:
console
set gateway 0.0.0.0
set initiator-iqn iqn.client
echo -n Enter IQN filename:
read IQN
set iscsi-target iscsi:${boot-ip}::::${IQN}
echo iscsi-target = ${iscsi-target}
prompt Press any key to continue...
sanboot ${iscsi-target}
boot

Misty
So no gui on the wimboot lne, could you try with gui on the wimboot line?
I would expect you to get the same result there as well - just looking for a reproducable test case.

Great hearing that console clears it, maybe this is something that should be handled by iPXE boot part, or wimboot
(2019-05-22 19:55)NiKiZe Wrote: [ -> ]So no gui on the wimboot lne, could you try with gui on the wimboot line?
I would expect you to get the same result there as well - just looking for a reproducable test case.

Great hearing that console clears it, maybe this is something that should be handled by iPXE boot part, or wimboot

@NiKiZe
My previous post only contained a part of my iPXE menu. The full menu that can hopefully be used to reproduce the display bug is contained below.

I should also mention for those that do not want to trawl through the lengthy thread on reboot.pro that this display bug was encountered with a Client system booting in UEFI mode with CSM disabled.

Stage 1 (menu item iscsia) booted fine and the display bug was not encountered. Stage 1 (SANHOOK the iSCSI Target and boot WinPE) was used to install Windows - using Windows setup.exe. After setup completed an automatic reboot occured.

The bug occurred when booting Stage 2 (menu item iscsib), executed after the Stage 1 reboot. Interestingly during one of my tests (after adding a displaybootmenu yes entry to the BCD store) a boot menu was correctly displayed followed by a Windows background image for a few seconds, then the console bug was encountered and I was not able to read the display.

Hope this makes sense.

Misty


Code:
#!ipxe
#SET BACKGROUND PICTURE AND PROCEED - IF ERROR, GOTO NEXT LINE
console --picture ipxe.png ||
iseq ${next-server} ${dhcp-server} && goto dhcp ||
set boot-url http://${next-server}
set boot-ip ${next-server}
goto main

:dhcp
set boot-url http://${dhcp-server}
set boot-ip ${dhcp-server}
goto main

#================ Main Menu =================
:main
menu iPXE boot menu
item --gap --           next-server - ${next-server}
item --gap --           dhcp-server - ${dhcp-server}
item --gap --           boot-url    - ${boot-url}
item --gap --           boot-ip     - ${boot-ip}
item --gap --         ----------------- Options --------------
item iscsia        iSCSI - Define IQN and SANHOOK (+wimboot)
item iscsib        iSCSI - Define IQN and SANBOOT
item winpe        WinPE (wimboot)
item --gap --         ------------------- Misc ---------------
item config        View configuration settings
item shell        Shell
item exit        Exit
choose target && goto ${target}

#============= END Main Menu ================

:iscsia
set gateway 0.0.0.0
set keep-san 1
set initiator-iqn iqn.client
echo -n Enter IQN filename:
read IQN
set iscsi-target iscsi:${boot-ip}::::${IQN}
echo iscsi-target = ${iscsi-target}
prompt Press any key to continue...
sanhook ${iscsi-target}
kernel ${boot-url}/wimboot pause
iseq ${platform} efi && initrd -n bootx64.efi ${boot-url}/bootx64.efi bootx64.efi ||
iseq ${platform} pcbios && initrd -n bootmgr ${boot-url}/bootmgr bootmgr ||
initrd -n BCD         ${boot-url}/boot/BCD           BCD ||
initrd -n boot.sdi    ${boot-url}/boot/boot.sdi      boot.sdi ||
initrd -n boot.wim    ${boot-url}/boot/boot.wim      boot.wim ||
prompt press any key to continue...
boot

:iscsib
set gateway 0.0.0.0
set keep-san 1
set initiator-iqn iqn.client
echo -n Enter IQN filename:
read IQN
set iscsi-target iscsi:${boot-ip}::::${IQN}
echo iscsi-target = ${iscsi-target}
prompt Press any key to continue...
sanboot ${iscsi-target}
boot

:winpe
kernel ${boot-url}/wimboot pause
iseq ${platform} efi && initrd -n bootx64.efi ${boot-url}/bootx64.efi bootx64.efi ||
iseq ${platform} pcbios && initrd -n bootmgr ${boot-url}/bootmgr bootmgr ||
initrd -n BCD         ${boot-url}/boot/BCD           BCD ||
initrd -n boot.sdi    ${boot-url}/boot/boot.sdi      boot.sdi ||
initrd -n boot.wim    ${boot-url}/boot/boot.wim      boot.wim ||
prompt press any key to continue...
boot

:config
config
goto main

:shell
shell
goto main

:exit
exit
Reference URL's