Jump to content











Photo
- - - - -

SANBOOT Windows on UEFI system?


  • Please log in to reply
79 replies to this topic

#76 misty

misty

    Silver Member

  • Developer
  • 969 posts
  •  
    United Kingdom

Posted 4 days ago

@Erwan
Thanks to your help and suggestions I have traced the issue with my display to the following line in my iPXE menu -
console --picture ipxe.png ||
Commenting out this line resulted in a working Windows installation - to an iSCSI Target with the Client PC in UEFI Mode with CSM disabled. I tested this by using my original iPXE menu and setup (W530 server with a Client PC connected via a CAT5E Crossover cable), but with this single line in my original iPXE menu commented out.

Whilst I'm so pleased to finally get this working, this is just so bloody frustrating :ranting2: :frusty: - I have lost track of the number of tests I have completed and hours wasted. Although it's not all bad as I have learned a lot along the way. Thanks to your inspired/educated guess this is now working :thumbsup: :worship:

Successfully installed 64-bit Windows 10.0.14393 (LTSB - 1603) to an iSCSI Target, using StarWind 5.2 iSCSI Target.

If we ever manage an IRL then I owe you a beer.

:cheers:

Misty

P.s. My working iPXE menu -
#!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


  • wimb likes this

#77 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 2618 posts
  • Location:Nantes - France
  •  
    France

Posted 4 days ago

Excellent news :)
I was sharing your frustration as well.

You really had bad luck on this one !
Kernsafe iscsi target behavior to start with was really a surprise.
And this last display bug clearly again is an odd one.

You reached your objective : happy for you !
  • misty likes this

#78 misty

misty

    Silver Member

  • Developer
  • 969 posts
  •  
    United Kingdom

Posted 3 days ago

@Everyone
Having figured out the console/PNG issue I thought I'd retry with some other iSCSI software.
 
* Kernsafe 6.0 is still a no go and has already been well tested by Erwan and I - not working. ntoskrnl.exe error.
* Windows 2008R2 with Microsoft iSCSI Target 3.3 - not working hangs at SANBOOT command.
* Windows 2012R2 - not working hangs at SANBOOT command.
* Windows 2016 - working

NOTE - Windows Server 2012R2 and 2016 both ship with iSCSI Target software.

After a number of tests tonight I got bored and ran out of the energy and concentration required to test other iSCSI Software Targets.

Thanks to some feedback on the iPXE forum following a post about my display issue, I have also established that clearing the console (by adding the console command) before issuing the SANBOOT command works even if the console --picture ipxe.png entry is enabled.

:cheers:

Misty

Example menu -
#!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
console
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
console
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



#79 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 2618 posts
  • Location:Nantes - France
  •  
    France

Posted 2 days ago

Hi Misty,

 

I see you decided to beat the topic to the end of it : i like that :)

 

Nice knowledge sharing about the console / clear command : I was about to suggest you to report it to the ipxe guys - job done !

 

About the iscsi targets, i have been using a few of them but always came back to Starwind.

It has never failed on me and the "free" version offers all I need even if I would not mind getting a full version (hint to the Starwind guys if they ever read this  :P  ).

I have started to test the script side as well and there is some nice potential there.

 

I am bit disappointed by the MS Iscsi target results thus :(

Not sure if worth mentioning but i kinda remember that you could download 3.1 version from MS and "tweak" it to install it on a workstation (originally meant to be installed on a server only).

 

About scripting, and without deviating too much, be aware that latest TPS version now has a start of "server side scripting" option now : you can use php, python, vbs, etc scripts to dynamically do stuff on the "server" side.

But not the point here... just shamelessly doing myself some free publicity  :hypocrite: .

 

Iscsi booting is such a vast topic...

 

Cheers,

Erwan



#80 GertJ

GertJ

    Newbie

  • Members
  • 12 posts
  •  
    Denmark

Posted 17 hours ago

First thanks work done and especially the steps/guides

 

Then just for info, a Gigabit Crossover cable does not exist (only a sales gimmick, and persons that want to look smarter)

https://en.wikipedia...crossover_cable

 

In the Gigabit NIC/Standard it is build-in to automatic detect if crossing are needed, so you can take 2 gigabit switches and just join them with a standard CAT5E or higher cable, and one of them will automatic internally cross the signals.

Using a old Crossover cable, often slow connect down to 100Mbit, and cause extra handshake delays.

 

issue are the extra timing, for detection speed and crossing, that is why cable direct between machines often can cross issue during booting, and work fine later.

Therefor I always use a small 5port Gigabit Switch for these test setups, and my ESXi host has an extra NIC connect to this switch for my Test LAN. This way I can make tests between Physical machines and Virtual, and there are nothing causing any delays.


  • wimb likes this




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users