Jump to content











Photo
- - - - -

Install XP to a iSCSI Target Disk and boot from it

integratedrv iscsi sanboot

Best Answer bilou_gateux , 28 February 2013 - 04:43 PM

I started again from scratch to confirm.

I have created a target img file on a Windows 7 host, initialized disk and formated NTFS.

 

from the diskless boot client, booted winPE 1.6, login to target, chkdsk %TARGET_DRIVE_LETTER% /f , uppercase errors corrected

re-do all install and driver integration.

All went fine using %TEMP% dir as working dir.

I have launched regedit to check if no SETUPREG.HIV still loaded before trying logout from target.

don't see hive loaded.

This time i have successfully logout.

Go to the full post


  • Please log in to reply
10 replies to this topic

#1 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 27 February 2013 - 08:18 AM

Dedicated topic

 

After reading topic integratedrv-install-xp-2003-to-a-usb-30-disk-and-boot-from-it

I decided to give it a try to build a diskless boot from SAN Windows XP install.

 

Instructions xp_2003_direct_install.

 

I will continue the IntegrateDrv discussion here.

 

WinNTSetup

iscsicli part of Microsoft iSCSI Software Initiator



#2 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 27 February 2013 - 08:47 AM

  • boot from WinPE3 x86
  • add target portal and login to target
net start msiscsi
iscsicli.exe QAddTargetPortal <TargetPortalAddress>
iscsicli.exe QLoginTarget <TargetName>
  • launch install
CALL SET "ODD_DRIVE_LETTER="
CALL SET "TARGET_DRIVE_LETTER="
pushd "%TEMP%"
WinNTSetup_x86.exe /nt5 /source:%ODD_DRIVE_LETTER% /syspart:%TARGET_DRIVE_LETTER% /tempdrive:%TARGET_DRIVE_LETTER%
popd

 

  • integrate drivers
IntegrateDrv.exe /driver=<path>\IntegrateDrv\Drivers\Sanbootconf /target=%TARGET_DRIVE_LETTER%\>

 

Looking for matching device drivers in directory '<path>\IntegrateDrv\Drivers\sanbootconf\':
Found one matching device driver:
1. SAN Boot Configuration Driver
Integrating PNP driver for 'ROOT\sanbootconf'
Registering service 'sanbootconf'
File copied: sanbootconf.sys

Making the driver available to GUI mode setup.

sanbootconf detected, GUI boot (Windows logo) has been enabled.
Driver integration completed.

 

IntegrateDrv.exe /driver=<path>\IntegrateDrv\Drivers\Nicbootconf /target=%TARGET_DRIVE_LETTER%\>

 

Looking for matching device drivers in directory '<path>\IntegrateDrv\Drivers\nicbootconf\':
Found one matching device driver:
1. NIC Boot Configuration Driver
Integrating PNP driver for 'ROOT\nicbootconf'
Registering service 'nicbtcfg'
File copied: nicbtcfg.sys

Making the driver available to GUI mode setup.
Committing changes.
Driver integration completed.

 

IntegrateDrv.exe /driver=<path>\IntegrateDrv\Drivers\b57\x86 /target=%TARGET_DRIVE_LETTER%\

 

Select the device driver you wish to integrate:

 

114

 

Integrating PNP driver for 'PCI\VEN_14e4&DEV_1677'
Registering service 'b57w2k'
File copied: b57xp32.sys
Looking for drivers for your device (PCI\VEN_14e4&DEV_1677) in windows setup directory (to disable them):

Finished looking for drivers for your device in windows Setup directory.

Making the driver available to GUI mode setup.

'b57xp32.sys' has been removed from Windows File Protection file list.

Network adapter has been added, adding TCP/IP:

Please select TCP/IP settings for 'Broadcom NetXtreme Gigabit Ethernet':

*Pressing Enter will default to 192.168.1.50 / 255.255.255.0 / 192.168.1.1

 

IPAddress: <>
Subnet Mask: <>
Default Gateway: <>

 

Committing changes.

Driver integration completed.



#3 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 28 February 2013 - 09:31 AM

I tried again IntegrateDrv with a different argument from the computer i want to diskless boot.

same as previous post until i try to integrate the NIC driver

 

IntegrateDrv.exe /driver=<path>\IntegrateDrv\Drivers\b57\x86 /target=<TARGET_DRIVE_LETTER:>\ /local /preconf

 

Unhandled Exception:

System.IO.DirectoryNotFoundException: Could not find a part of the path "<TARGET_DRIVE_LETTER:>\$LDR$".

 

Then, i cannot logout from Target.

 

 

for /f "tokens=4* delims= " %a in ('"iscsicli SessionList |find "Session Id" 2>nul "') do call set "SessionID=%a"
iscsicli LogoutTarget %SessionID%

Rebooted computer from OS Windows XP on local disk hd0

 

net start msiscsi
iscsicli QAddTargetPortal <target_portal_address>
iscsicli QLoginTarget <target_name>

 

from command prompt:

chkdsk <TARGET_DRIVE_LETTER:> /F

 

Error message when you run Chkdsk.exe on a Windows XP-based or on a Windows Server 2003-based computer: “Correcting errors in the uppercase file”

 

 

I don't know if issue with integratedrv are related to host OS version used (WinPE3) when formatting volume.



#4 tal.aloni

tal.aloni

    Newbie

  • Developer
  • 21 posts
  •  
    Israel

Posted 28 February 2013 - 10:22 AM

Hi Bilou,

I'm familiar with this chkdsk error, It's nothing to worry about.

"This problem occurs because of the differences in the uppercase file between Windows Vista and the earlier versions of the Windows operating systems"

see: http://support.microsoft.com/kb/940830


Edited by tal.aloni, 28 February 2013 - 10:25 AM.


#5 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 28 February 2013 - 01:41 PM

I may have found the reason.

 

I was running IntegrateDrv from an UFD with very low free space.

 

I have tried again booting from WinPE 1.6 (WinPE 2005) with a RamDisk created during initialization.

 

I have used the same commands all ran from the RamDisk %temp% folder after 1st unpacking required files to "%temp%".

 

 

net start msiscsi
iscsicli QAddTargetPortal <TARGET_PORTAL_ADDRESS>
iscsicli QLoginTarget <TARGET_NAME>
for /f "tokens=4* delims= " %a in ('"iscsicli SessionList |find "Session Id" 2>nul "') do call set "SessionID=%a"
7z x IntegrateDrv_1.1.2.zip -o%temp% -y
7z x b57win32.zip -o%temp%\IntegrateDrv\Drivers\b57\x86
pushd %temp%\IntegrateDrv\x86
IntegrateDrv /driver=%temp%\IntegrateDrv\Drivers\iScsiPrt\x86 /target=<TARGET_DRIVE_LETTER:>\
IntegrateDrv /driver=%temp%\IntegrateDrv\Drivers\sanbootconf /target=<TARGET_DRIVE_LETTER:>\
IntegrateDrv /driver=%temp%\IntegrateDrv\Drivers\nicbootconf /target=<TARGET_DRIVE_LETTER:>\
IntegrateDrv /driver=%temp%\IntegrateDrv\Drivers\b57\x86 /target=<TARGET_DRIVE_LETTER:>\ /local /preconf
popd
iscsicli LogoutTarget %SessionID%

Last command fails, so i can't cleanly logout from target.

 

Tal, could you confirm IntegrateDrv need some space to perform unpacking of files, especially for NIC driver integration.



#6 tal.aloni

tal.aloni

    Newbie

  • Developer
  • 21 posts
  •  
    Israel

Posted 28 February 2013 - 02:55 PM

Bilou,

1. IntegrateDrv does require some amount of free space, but no more than a few megabytes, however, the error you're getting is 'DirectoryNotFoundException' which suggests it is not related to lack of disk space.

2. If IntegrateDrv does crash unexpectedly, than the text-mode setup registry hive (setupreg.hiv) stays loaded, and thus the drive remain in use and you can't log out cleanly from the target.



#7 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 28 February 2013 - 04:43 PM   Best Answer

I started again from scratch to confirm.

I have created a target img file on a Windows 7 host, initialized disk and formated NTFS.

 

from the diskless boot client, booted winPE 1.6, login to target, chkdsk %TARGET_DRIVE_LETTER% /f , uppercase errors corrected

re-do all install and driver integration.

All went fine using %TEMP% dir as working dir.

I have launched regedit to check if no SETUPREG.HIV still loaded before trying logout from target.

don't see hive loaded.

This time i have successfully logout.



#8 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 01 March 2013 - 10:43 AM

IntegrateDRV utility is great and works as advertised.

 

Just have to take care of syntax.

 

That's why setting variables and using command line scripts as much as possible avoid typing errors.

 

I had some issues with NTFS file system corruption on target volume. After solving it

 

I was then able to successfully install Windows onto the iSCSI target with both:

WinNTSetup

IntegrateDRV to configure target for diskless install and boot.



#9 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 09 June 2014 - 05:27 AM

I successfully install WinXP from CD-ROM to iSCSI target with iPXE on MS VPC 2007 :-)
  • with VMware make san.vmdk image 1500MB and make active partition with fdisk (win95boot.ima)
  • copy WinXP.ISO content to HDD E:\win\files
  • copy xp NIC driver net21x4 to IntegrateDRV\Drivers
  • integrate drivers with IntegrateDRV to extracted ISO location E:\win\files:
    IntegrateDrv.exe /driver=..\Drivers\net21x4 /driver=..\Drivers\iScsiPrt\x86 /driver=..\Drivers\sanbootconf /driver=..\Drivers\nicbootconf /target=E:\win\files\
    
    (IntegrateDRV ask for NIC driver select and config IP)
  • make new xp.iso
  • mount this xp.iso in virtual machine CD drive
  • on Host WinXP OS install and run iSCSI Cake server with san.vmdk image + Tiny PXE Server -> only DHCP
  • boot virtual machine from iPXE floppy image
  • go to shell iPXE with Ctrl+B and perform this commands:
    dhcp net0
    sanhook iscsi:192.168.20.3::::installxp
    exit
  • after exit from iPXE PC boot from CD then need press any key:
    Press any key to boot from CD.
  • after first restart Windows TXT Setup need boot PC with the same way but replace sanhook to sanboot command like this:
    dhcp net0
    sanboot iscsi:192.168.20.3::::installxp
  • this time no press any key to boot from SAN disk san.vmdk
5741011m.png 5738963m.png 5726675m.png

Edited by reboot12, 09 June 2014 - 05:34 AM.


#10 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 13 June 2014 - 07:36 PM

To replace the optical drive real to the virtual you need:

  • after integrate drivers with IntegrateDRV you need integrate also driver WinVBlock with nLite and make new ISO image (xp_rtl8139_iscsi_winvblock.iso)
  • put xp.iso and fdd.ima on local HDD to partition D:
  • use iPXE to sanhook SAN device and chain grub.exe from PXE Server for map --mem FDD & ISO images to RAM

menu.ipxe:

#!ipxe

set menu-timeout 5000

# Default boot from SAN device
set menu-default 3

:start
menu Install WinXP to SAN device
item 1      TXT-Setup - phase 1
item 2      GUI-Setup - phase 2
item 3      Boot from SAN device
item
item shell       Drop to iPXE shell
item reboot      Reboot computer
item
item exit        Exit iPXE and continue BIOS boot
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}

:cancel
echo You cancelled the menu, dropping you to a shell

:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:back
goto start

:1
dhcp
show ip
sanhook iscsi:${dhcp-server}::::xp || goto failed
chain grub.exe --config-file="map --mem (hd1,4)/fddwin95.ima (fd0); map --mem (hd1,4)/xp_rtl8139_iscsi_winvblock.iso (hd32); map --hook; root (hd32); chainloader (hd32)"
goto shell

:2
dhcp
show ip
sanhook iscsi:${dhcp-server}::::xp || goto failed
chain grub.exe --config-file="map --mem (hd1,4)/fddwin95.ima (fd0); map --mem (hd1,4)/xp_rtl8139_iscsi_winvblock.iso (hd32); map --hook; root (hd0,0); chainloader /ntldr"
goto shell

:3
dhcp
show ip
sanboot iscsi:${dhcp-server}::::xp || goto failed
goto shell

SANHOOK command make available SAN device as first HDD (in GRUB4DOS is (hd0))
and local HDD is available as second HDD (in GRUB4DOS is (hd1))

:good:



#11 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 24 June 2014 - 07:25 PM

Also possible install XP in other way:
  • integrate with IntegrateDRV drivers: NIC, iSCSI, sanbootconf and nicbootconf
  • put san.img (LUN 0) and xp.iso (LUN 1) images on iSCSI Cake server
  • boot PC from iPXE with script san-iso_to_san-dev.ipxe
#!ipxe

set menu-timeout 5000

# Default boot from SAN device

set menu-default xp3

:start
menu Install XP from SAN ISO LUN (1) to SAN IMG LUN (0)
item xp1      TXT-Setup - phase 1
item xp2      GUI-Setup - phase 2
item xp3      Boot from SAN device LUN (0)
item
item shell       Drop to iPXE shell
item reboot      Reboot computer
item
item exit        Exit iPXE and continue BIOS boot
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}

:cancel
echo You cancelled the menu, dropping you to a shell

:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:back
goto start

:xp1
dhcp
sanhook --drive 0x80 iscsi:${dhcp-server}:::0:xp || goto failed
sanboot --drive 0xe0 iscsi:${dhcp-server}:::1:xp || goto failed
goto shell

:xp2
dhcp
sanhook --drive 0xe0 iscsi:${dhcp-server}:::1:xp || goto failed
sanboot --drive 0x80 iscsi:${dhcp-server}:::0:xp || goto failed
goto shell

:xp3
dhcp
sanboot --drive 0x80 iscsi:${dhcp-server}:::0:xp || goto failed
goto shell





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users