Jump to content











Photo
- - - - -

SANBOOT Windows on UEFI system?


  • Please log in to reply
106 replies to this topic

#76 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 21 May 2019 - 10:16 PM

@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
  • 2794 posts
  • Location:Nantes - France
  •  
    France

Posted 21 May 2019 - 10:33 PM

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

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 22 May 2019 - 08:39 PM

@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
  • 2794 posts
  • Location:Nantes - France
  •  
    France

Posted 23 May 2019 - 03:05 PM

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 25 May 2019 - 07:53 AM

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 and misty like this

#81 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 29 May 2019 - 05:24 PM

First thanks work done and especially the steps/guides...

Thanks for the feedback. My pleaure.
 

...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....

Now that is very useful information that I look forward to testing. Thank you.

@Everyone
I have now tested two other versions of StarWind and Windows Server 2019. To add to the list of iSCSI Targets in my previous post -

* 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


* StarWind 5.8 - working
* StarWind 8 - not working hangs at SANBOOT command (stage 2).
* Windows Server Standard 2019 - working

@Erwan
I have managed to test UEFI iSCSI Boot successfully in VirtualBox (version 6.0.8 r130520 (Qt5.6.2)). I used two virtual machines with Settings > Network set to "Attached to: Internal Network" and Settings > System > "Enable EFI (secial OSes only)" enabled on the Client.

The 32GB RAM in my refurbished Thinkpad W530 is really coming in handy. Sadly the limited storage is making testing slightly more time consuming.

Also I have just completed a test using BCDBoot to create boot files. I completed Stage 1 using setup.exe, then rebooted WinPE with the iSCSI Target Disk attached and deleted the boot files created by setup.exe. Then used bcdboot to create new boot files and rebooted the VirtualPC and started Stage 2. Windows installed successfully. Looks like the registry modifications completed by running setup.exe are the key. And sadly I've got no idea what they are.

:cheers:

Misty

EDIT - the Client system did not have any virtual disk attached. iPXE started from an iso. Windows 7 failed to install. Windows 10 (1903) also failed to install - I can't recall the BSOD error. Windows 8.1 Update and Windows 10 (1703) have both installed successfully on the diskless (virtual) system.

#82 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 29 May 2019 - 10:37 PM

The lack of a working free iSCSI software target is frustrating so I've been experimenting and can confirm that, in my VirtualBox test environment, Windows 8.1 Update installed successfully to a FreeNAS iSCSI Target. The following FreeNAS version was used -

* FreeNAS-11.2-U4.1

I've never used FreeNAS before and setting it up was a bit of a learning curve. Running 3 Virtual Machines at once is also interesting -

* Windows 7 running TinyPXE as PXE Boot Server
* FreeNAS with iSCSI Target
* Client

I have not tested this on physical hardware - just the VirtualBox test environment.

:cheers:

Misty

#83 erwan.l

erwan.l

    Platinum Member

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

Posted 30 May 2019 - 10:25 AM

Ah freenas, good point !

We could have thought about this one before (even if it is not a windows software as such).

 

About Freenas:

 

I wonder if the new windows 10 subsystem linux (WSL) could give us some more opportunities there ("hosting" a linux iscsi target in WSL?).

WSL version 2 sounds promising there.

 

Also, beware that although still freeware it is no longer opensource (now owned by iXsystems, Inc) and some features may have been dropped.

A new opensource fork took place after freenas 7.x named XigmaNas.

XigmasNas seems to be quite active and proposes some extra features.

The "embedded install" is handy : i was able to add XigmaNAS-x64-embedded-11.2.0.4.6625.img to a vmware host (or flash it to some media if using hw), boot it, log in the web gui, and set a iscsi target in a few mns.

Setting up a NAS (virtual or physical) has never been so easy and quick :)

 

If you are a lot into iscsi these days, it may be worth dedicating some old computer to run it in your lab to get some extra performances (a cheap Raspberry may even do although then forget about performances here).

Thus, taking that path, it could lead to another discussion around cheap NAS boxes available these days.

I own a Synology DS210 and a Iomega IX2 and although not tested thorouhly, iscsi targets there have given me satisfaction so far.

 

About virtualbox:

I need to give it a new try then as it is handy to have a one does it all platform.

I managed to boot pxe+efi using virtio nic but was not getting aby further - i'll reread your previous posts to see if I missed any details.

 

Cheers.


  • misty likes this

#84 erwan.l

erwan.l

    Platinum Member

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

Posted 30 May 2019 - 01:27 PM

Just sharing.

 

It does not "take much" (  :whistling:  )  to run Microsoft iSCSI Software Target 3.3 on Win 8.1.

And the same applies to previous version 3.2 and 3.1 and their respective O.S (Win7 and XP).

3.1, 3.2, 3.3 are available/downloadable as MS standalone packages.

 

Now trying to install Win10 on this "MS Win8.1 iscsi target" for fun ...

 

zcADtYq.png



#85 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 03:16 PM

...It does not "take much" (  :whistling:  )  to run Microsoft iSCSI Software Target 3.3 on Win 8.1.

I know. I've already modified the installer and have managed to install and run MS iSCSI 3.3 on non server versions of Windows. I can't recall the actual error, but have experienced difficulty when creating .vhd files on a different partition to the Windows OS (e.g. when trying to create a target disk on the D: drive). I have not experienced the same error when creating the .vhd on my C: drive.

And the same applies to previous version 3.2 and 3.1 and their respective O.S (Win7 and XP).
3.1, 3.2, 3.3 are available/downloadable as MS standalone packages.

Are versions 3.1 and 3.2 now available as a public download?

Misty

#86 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 03:26 PM

....Now trying to install Win10 on this "MS Win8.1 iscsi target" for fun ...

I'm a big fan of the just for fun approach. Or as my brother refers to it - for Sh!ts and giggles.

Are you trying to install a Client in UEFI or BIOS mode? My attempts to install to an iSCSI target using a client in UEFI were unfortunately unsuccessful. But it's always useful to have someone who actually knows what they are doing have a crack at it!

For those wanting to test iSCSI Target 3.3 on a different (to Windows Server 2008 R2) version of Windows, google "KB: Microsoft iSCSI Software Target 3.2 MSI package hack to remove SKU limitation" :whistling:

Misty

#87 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 03:46 PM

Error trying to create .vhd on D: drive (Windows 7 SP1 system running modified Microsoft MS iSCSI Target 3.3)
2019.05.30_1.jpg

Error trying to import a .vhd on D: drive (Windows 7 SP1 system running modified Microsoft MS iSCSI Target 3.3)
2019.05.30_2.jpg

VirtualBox network settings
2019.05.30_3.jpg

#88 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 03:51 PM

...If you are a lot into iscsi these days, it may be worth dedicating some old computer to run it in your lab to get some extra performances (a cheap Raspberry may even do although then forget about performances here)....

Lab! Hahahahahah!!!!!!!!! :rofl:

That's a grand term for a selection of refurbished laptops and an old desktop (circa 2008) running headless in a cupboard.

Misty

#89 erwan.l

erwan.l

    Platinum Member

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

Posted 30 May 2019 - 05:19 PM

I know. I've already modified the installer and have managed to install and run MS iSCSI 3.3 on non server versions of Windows. I can't recall the actual error, but have experienced difficulty when creating .vhd files on a different partition to the Windows OS (e.g. when trying to create a target disk on the D: drive). I have not experienced the same error when creating the .vhd on my C: drive.

Are versions 3.1 and 3.2 now available as a public download?

Misty

 

MS iSCSI target 3.3 seems to work well on my win8.1 for normal operations : 

-i can create vhd, re use some old ones, etc

-i can use any hard drive on my OS

-i can create snapshot

-i have not tested dynamic vhd, differencing vhd, or vhdx

-stage 1 win 10 installation (efi, gpt) works ok

-stage 2 crashes wintarget.exe (the ms iscsi target) superbly :(

 

I will retry stage 2 but this time bios/mbr as I feel either efi and/or gpt demands extra support.

 

About 3.1 and 3.2 : they use to be available.

I still have the binaries in my download folder :)

And internet being internet, i am sure the binaries are over here somewhere as well.



#90 erwan.l

erwan.l

    Platinum Member

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

Posted 30 May 2019 - 05:23 PM

Lab! Hahahahahah!!!!!!!!! :rofl:

That's a grand term for a selection of refurbished laptops and an old desktop (circa 2008) running headless in a cupboard.

Misty

 

The exact same over here but I find it so cool to call it a "lab" :)



#91 erwan.l

erwan.l

    Platinum Member

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

Posted 30 May 2019 - 05:26 PM

I'm a big fan of the just for fun approach. Or as my brother refers to it - for Sh!ts and giggles.

Are you trying to install a Client in UEFI or BIOS mode? My attempts to install to an iSCSI target using a client in UEFI were unfortunately unsuccessful. But it's always useful to have someone who actually knows what they are doing have a crack at it!

For those wanting to test iSCSI Target 3.3 on a different (to Windows Server 2008 R2) version of Windows, google "KB: Microsoft iSCSI Software Target 3.2 MSI package hack to remove SKU limitation" :whistling:

Misty

 

Sticking to UEFI/GPT for now but i would like to demonstrate that what works for BIOS/MBR does not forcily work (for now) with UEFI/GPT probably because of software not being ready (kernsafe being one good example).

 

About the MSI trick, did MS actually document this hack? :)

Sometimes I dont get MS ...

I use ORCA as a msi editor to remove/update the "launch condition".



#92 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 09:31 PM

This looks interesting - iSCSIConsole
 

About iSCSI Console:

iSCSI Console is a Free, Open Source, User-Mode iSCSI Target Server written in C#.
iSCSI Console is cross-platform, portable and requires no installation.
iSCSI Console can serve physical and virtual disks to multiple clients.

About the iSCSI library:

The iSCSI library utilized by iSCSI Console was designed to give developers an easy way to serve block storage via iSCSI.
Any storage object you wish to share needs to implement the abstract Disk class, and the library will take care of the rest.
The library was written with extensibility in mind, and was designed to fit multitude of projects.
iSCSI Console is merely a demo project that exposes some of the capabilities of this library.

Notes:

In addition to a full fledged iSCSI Target server implementation, the iSCSI library also contain a very basic iSCSI initiator implementation.

What this program can do:
1.Serve virtual disks (VHD / VMDK / IMG).
2.Serve physical disks.
3.Serve basic volumes as disks.
4.Serve dynamic volumes as disks.
5.Create VHDs.
6.Could run from Windows PE using Mono.
7.Could run from Linux / OSX using Mono (Download the Cross Platform Edition)


I have no idea how to compile it though.

Misty

EDIT - Found a pre-compiled version (here). Will test shortly after the .NET dependencies have installed.

#93 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 30 May 2019 - 10:40 PM

iSCSI Console version 1.5.1 (see here) is another success :thumbsup:

I have only tested this in my VirtualBox environment, however Windows 8.1 Update was installed successfully to an iSCSI Target running on Windows 7 SP1.

The UI for iSCSI Console is very simply and user friendly and it's possible to share a physical disk/volume, which is a useful feature. Note that the disk needs to be offline - Erwan's DiskMGR proved useful yet again :worship:

:cheers:

Misty

P.s. Night night all

#94 erwan.l

erwan.l

    Platinum Member

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

Posted 31 May 2019 - 12:38 PM

iSCSI Console version 1.5.1 (see here) is another success :thumbsup:

I have only tested this in my VirtualBox environment, however Windows 8.1 Update was installed successfully to an iSCSI Target running on Windows 7 SP1.

The UI for iSCSI Console is very simply and user friendly and it's possible to share a physical disk/volume, which is a useful feature. Note that the disk needs to be offline - Erwan's DiskMGR proved useful yet again :worship:

:cheers:

Misty

P.s. Night night all

 

Great finding !

Cannot wait to test it.

 

I have too many "fun" projects curently : a new racer drone to assemble, my 3d printer to fine tune and these nice reboot.pro topics to go thru !

 

Life is tough  :lol:



#95 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 01 June 2019 - 09:32 AM

Great finding !
Cannot wait to test it.

Me too. Here's hoping that I have bought together an open source project and a talented developer. :go_fish:
 

I have too many "fun" projects curently : a new racer drone to assemble, my 3d printer to fine tune and these nice reboot.pro topics to go thru !

Life is tough :lol:

Life really is tough. My heart bleeds for you! (not sure if this phrase is lost in translation - see here).

@Everyone
I have played around a bit more with iSCSI Console.

As I mentioned in post #92, iSCSI has .NET Framework dependencies - .NET 2.0 to be specific. Tal Aloni, the iSCSI Console developer, has kindly packaged mono for use with the program - facilitating the use of iSCSI Console on systems without .NET 2.0 installed. See http://vm1.duckdns.o...SCSIConsole.htm.

Step 1 - Download the iSCSI Console executable - lets say to C:\iSCSIConsole\ISCSIConsole.exe.

Step 2 - Download the packaged mono - direct download http://vm1.duckdns.o.../Mono-3.2.3.zip

Step 3 - Extract the contents of Mono-3.2.3.zip (downloaded in the previous step) to C:\iSCSIConsole\
Note - you should have the following directory structure -
C:\iSCSIConsole\
C:\iSCSIConsole\x86
C:\iSCSIConsole\x64
C:\iSCSIConsole\lib
.
Step 4 - run the following command from a command-line (adjusting path to mono depending on whether your Host OS is 32 or 64-bit)
C:\iSCSIConsole\x64\mono.exe C:\iSCSIConsole\ISCSIConsole.exe
.
Enjoy. Please note that when launching mono.exe it will search for library dependency files using the relative path "..\lib" - e.g. if mono.exe is in the path "C:\iSCSIConsole\mono.exe" then it will search for the library files using the path "C:\lib"

Using mono I was able to run iSCSI Console on a Windows XP Virtual Machine without .NET 2.0 installed. I have also tested on Windows 8.1 Update on physical hardware.

Note re the iSCSI UI - when in the Add iSCSI Target screen, pressing the CTRL key will change the Create Virtual Disk button to Create RAM Disk.

Please note that "...iSCSI Console is merely a demo project that exposes some of the capabilities of this library..." (https://github.com/T...ni/iSCSIConsole). Whilst some features such as authentication and persistence are missing (Targets require manual configuration every time iSCSI Console is started/restarted), it has the benefit of being portable and offers physical disk access - something missing in other products without purchasing a licence. And it is opensource. And SAN Booting Windows from a UEFI Client works! Yes, I'm a fan.

:cheers:

Misty

#96 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15108 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 01 June 2019 - 11:08 AM

 Tal Aloni, the iSCSI Console developer, has kindly ...

As a side note, Tal Aloni is a member here on reboot.pro and has already proved his abilities as a programmer writing a few very useful pieces of software, namely Integratedrv and Wait4UFD:

http://reboot.pro/to...9-integratedrv/

http://vm1.duckdns.o...ntegrateDrv.htm

 

So, this iSCSI thingy is a further confirmation of his skills and another reason to thank him both for the quality of the tools and for the nice way he shares them.  :worship:

 

:duff:

Wonko


  • misty likes this

#97 erwan.l

erwan.l

    Platinum Member

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

Posted 01 June 2019 - 11:22 AM

About Ms Iscsi target 3.3 running on Win8.1 : I was able to perform state 1/stage2 with a win10 x64 in BIOS/MBR mode (with my image stored on a second physical drive i.e not the system drive).

Still a valid freeware alternative eventually for BIOS/MBR mode.

Has a decent console, supports VHD and possibly more VHD goodies (the differencing leading to nice scenarios), probably easy to script, etc ...

 

So there is clearly something different with UEFI/GPT.

I cannot tell yet which part of the UEFI/GPT is troublesome with some targets.

Ideally I should now redo a stage 1/stage 2 test with BIOS/GPT (is that even possible) but I feel lazy with this wonder weather right now :)

 

After all these nice discussions abour iscsi target, could be worth to come up with a structured document : 

-name of the product

-freeware yes/no

-opensource yes/no

-supports boot on iscsi

-support gpt/uefi

-...


  • misty likes this

#98 erwan.l

erwan.l

    Platinum Member

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

Posted 01 June 2019 - 11:28 AM

@Misty : great work you have done on highlighting iscsiconsole.

 

The mono "workaround" is also very nice and applicable to lots of other .Net products.

 

Worth noting as well that since the developper sticked to dotnet 2.0, it should "natively" be supported by modern O.S since dotnet 2.0 is preinstalled (as OS component) since Vista and 3.5 since Windows 7.

More details here or here.

 

About Tal Aloni, great to know he is part of this forum.

I also tooked a look at his github, found some great gems and added it right away to my github "to be watched" !

 

Edit:

-just downloaded iscsiconsole on my win8.1 client (no extra software/component to install)

-used my previous stage 2 win10x64 bios/mbr iscsi image (a vhd file)

-and it booted instantely 

I like it very much so far :)


  • misty likes this

#99 misty

misty

    Gold Member

  • Developer
  • 1033 posts
  •  
    United Kingdom

Posted 02 June 2019 - 06:49 AM

...Worth noting as well that since the developper sticked to dotnet 2.0, it should "natively" be supported by modern O.S since dotnet 2.0 is preinstalled (as OS component) since Vista and 3.5 since Windows 7....

I'm lazy and on my Windows 8.1 Update OS, when I attempt to run iSCSI Console I'm getting a message stating that -
An app on your PC needs the following Windows feature:
.NET Frameworkk 3.5 (includes .NET 2.0 and 3.0)

Download and install this feature....
Using mono means I don't have to go through the install. And it's been useful to test the program portability.
 

After all these nice discussions abour iscsi target, could be worth to come up with a structured document :
-name of the product
-freeware yes/no
-opensource yes/no
-supports boot on iscsi
-support gpt/uefi

Now this is the kind of thing that I actually enjoy doing and I have started working on it. It will take time as I need to test and retest using a more methodical approach so that I can compare like for like. It will likely take some time.

BTW, Starwind is an odd one. Windows installs and boots succesfully on older versions (including 4.0, 5.2 and 5.8), but not on 8.0 - I'm referring here to SAN boot using UEFI Clients. This seems a backward step and in the case of Starwind 8.0, starting stage 2 results in significant load on my processor - which continues even when Starwind is closed. Whilst Starwind was running I noticed that multiple iSCSI Sessions are listed from the same initiator. I'm wondering if some of the default program settings have changed as the program has developed?

Just tried iSCSI Cake. Install failed in both BIOS and UEFI mode. In UEFI mode setup appeared to complete stage 1 successfully, however stage 2 failed. When I attached the disk (SANHOOK) and booted WinPE, no partitions had been created. In BIOS mode, setup "couldn't create a new partition or locate an existing one. For more information, see the Setup log files"

I'll continue working on the tests when time permits. It's a time consuming process even using Virtual machines.

Misty

#100 erwan.l

erwan.l

    Platinum Member

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

Posted 02 June 2019 - 11:59 AM

I'm lazy and on my Windows 8.1 Update OS, when I attempt to run iSCSI Console I'm getting a message stating that -

An app on your PC needs the following Windows feature:
.NET Frameworkk 3.5 (includes .NET 2.0 and 3.0)

Download and install this feature....
Using mono means I don't have to go through the install. And it's been useful to test the program portability.
 
Now this is the kind of thing that I actually enjoy doing and I have started working on it. It will take time as I need to test and retest using a more methodical approach so that I can compare like for like. It will likely take some time.

BTW, Starwind is an odd one. Windows installs and boots succesfully on older versions (including 4.0, 5.2 and 5.8), but not on 8.0 - I'm referring here to SAN boot using UEFI Clients. This seems a backward step and in the case of Starwind 8.0, starting stage 2 results in significant load on my processor - which continues even when Starwind is closed. Whilst Starwind was running I noticed that multiple iSCSI Sessions are listed from the same initiator. I'm wondering if some of the default program settings have changed as the program has developed?

Just tried iSCSI Cake. Install failed in both BIOS and UEFI mode. In UEFI mode setup appeared to complete stage 1 successfully, however stage 2 failed. When I attached the disk (SANHOOK) and booted WinPE, no partitions had been created. In BIOS mode, setup "couldn't create a new partition or locate an existing one. For more information, see the Setup log files"

I'll continue working on the tests when time permits. It's a time consuming process even using Virtual machines.

Misty

 

 

Strange about your win 8.1.

I thought that since Vista there a pre installed dotnet : I could be wrong thus.

And indeed, mono makes it much more flexible/portable in this case, and even multi cross platform.

 

About latest starwind, I'll give it another go as I thought I had success there : i should have taken notes :(

 

About targets not working with uefi and/or gpt (as we still dont know which of these 2 aspects are troublesome), I had the following experience during my tests : using clonedisk, there were some API calls which just failed on me like create disk / create partition.

It is as if GPT was simply not understood/supported.

Surprisingly thus, it may be that the windows setup does not report these errors (at least not in the front end).

I should redo the following test : create an iscsi target, spare me the stage 1 / stage 2 long experiment, and simply send a create disk / create partition both on MBR and GPT to various software.

So we can clearly list some targets which already will fail at stage 1.

 

Not 100% that simple thus as I was able to sanhook/stage 1 with ms target and continue with sanboot/stage2 with starwind 5.

 

So next to the possible gpt not supported (in stage 1) by some softwares (like kernsafe, i.e we can assert the disk is NOT fine), there is also this other issue where sanhook/stage 1 goes fine (i.e we can assert the disk IS fine) but sanboot/stage 2 does not go fine.

 

There is one consistent item in there thus : we know that ipxe is not the issue and we have been using the same client(s) all along.

 

Tip : you can have multiple targets installed on your client but it is a bit of a PITA as you need to start/stop services then.

net start StarWindService ... net stop wintarget ... net stop iStorageService

Once again, iscsiconsole comes in handy as it is a standalone executable :)






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users