Jump to content











Photo
- - - - -

Boot over iscsi another way


  • Please log in to reply
4 replies to this topic

#1 IzariathF9B6

IzariathF9B6
  • Members
  • 4 posts
  •  
    Mexico

Posted 01 November 2009 - 12:23 AM

This is my personal approvach for boot the NT Kernel in a iSCSI target without depends on the installed NIC ;) :cheers: :cheers: ...

/* Append

*- En el arranque PXE el adaptador de red obtiene una direccion IP, mascara de subred, puerta de enlace y la direccion IP de un servidor TFTP, desde donde se carga un programa de Arranque, ya sea PXELinux o Grub4Dos…

*- A continuación, se selecciona el destino de arranque, en este caso, un SO guardado en un dispositivo iSCSI.

En este paso es necesario un programa para construir una estructura iBFT con los parámetros de arranque iSCSI, pero que una vez que termine su tarea, le pase el control al programa StartRom.0, en lugar de arrancar directamente el dispositivo iSCSI.

*- StartRom inicia el cliente TFTP y la secuencia de arranque NT, y le pasa el control a OSloader.exe…

*- OSloader.exe hace una consulta al Servidor BinL, y obtiene el controlador correcto para nuestra tarjeta de red, con todos los parámetros necesarios para la inicializacion del dispositivo...

*- OSloader.exe carga el núcleo del S.O. y los controladores necesarios con soporte minimo de red…

En este paso es necesario agregar el soporte necesario para cargar los controladores iSCSIPrt, con sus correspondientes dependencias a los controladores PShed y Gpc, preferentemente en el archivo de configuración TXTSetup.sif

*- OSLoader.exe apaga el cliente TFTP e inicializa el Kernel de Windows NT, y los controladores de dispositivos: El soporte NDIS y los controladores de Red son iniciados, iSCSIPrt es iniciado, se enlaza a la primera tarjeta de red disponible por medio de PShed y analiza la estructura iBFT, y con la información obtenida procede a conectarse con el destino iSCSI que contiene el S.O. a cargar…

*- OSLoader.exe le pasa el control al Kernel NT, el kernel analiza las entradas BootDevice y BootPath para buscar el destino desde el cual debe completar su carga, analiza el dispositivo iSCSI y determina cual es el Sistema de Archivos que utiliza, y con esta información se enlaza al dispositivo iSCSI, como si se tratara de un destino local, usndo el controlador FS apropiado, y termina de cargarse desde ahí…

Si se usa este metodo de arranque de manera apropiada en conjunto con los controladores EWF/FBWF, se puede obtener un completo entorno funcional WinPE (Y Seguro si se usa CHAP para conectarse con el Servidor iSCSI) Ramdisk-Free, en configuraciones con 128 MB de RAM, portable e independiente de la tarjeta red...

Append */

I'm working for a partial traslation of this, but i need some help... i'm think that this can work as Ramdisk-Killer :) in enviroments with Low-memory PCs...

#2 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 01 November 2009 - 11:43 AM

I'm working for a partial traslation of this, but i need some help... i'm think that this can work as Ramdisk-Killer ;) in enviroments with Low-memory PCs...


We have two problems here:
1- you LIED :( here ;):

& i don't speak english very well... i'm sorry.

From what you posted here you seem like not speaking English at all. :(

2- Besides the English translation (see below) it's the original that makes very little sense (to me at least).
I cannot understand whether it wants to be a Tutorial, an "untested idea", a theory, a request for help or what.

You use a number of acronyms or names WITHOUT giving ANY explanation of them and without being specific:
iSCSI-> Ok, this is known :cheers:
TFTP-> Ok, this is known :)
BinL-> Ok, this is known :)
PShed->? :w00t:
IBFT->? :w00t:
EWF/FBWF-> Ok, this is known ;)
FCHAP->? :w00t:

You use TOO LONG sentences if you want people to be able to read them "grossly" translated from an online service or "quickly" by another member.

Do use a structure, i.e. instead of:

- En el arranque PXE el adaptador de red obtiene una direccion IP, mascara de subred, puerta de enlace y la direccion IP de un servidor TFTP, desde donde se carga un programa de Arranque, ya sea PXELinux o Grub4Dos…


do use something like this:

- En el arranque PXE el adaptador de red obtiene:

  • una direccion IP
  • una mascara de subred
  • una puerta de enlace
  • la direccion IP de un servidor TFTP desde donde se carga un programa de Arranque
    El programa de Arranque, puede ser PXELinux o Grub4Dos.


More or less what you wrote in English:

/* Append

*- When booting through PXE the net card obtains an IP address, network mask, connection port and IP address of a TFTP server, from which a bootlaoader is loaded, like PXELinux or Grub4Dos…

*- Following, a source is selected, in this case an OS stored on a iSCSI device

At this point it is necessary a program able to build a iBFT structure with the iSCSI boot parameters, but that, once it's core is ended, passes control to the StartRom.0, instead of loading directly form the iSCSI device.

*- StartRom starts the TFTP client and the NT boot sequence, and gives control to OSloader.exe…

*- OSloader.exe interrogates the BinL server, and obtains the right driver for the lan card, with all the needed parameters to initiate/startt the device

*- OSloader.exe loads the OS kernel and the needed drivers for a minimal LAN support

At this point it is necessary to assemble the things needed to load the drivers iSCSIPrt, with it's dependencies to the drivers PShed and Gpc, preferably by adding it in TXTSetup.sif

*- OSLoader.exe shuts down the TFTP client initializing the NT kernel and the drivers; the NDIS and Lan card drivers are started, iSCSIPrt is started, first available LAN card is hooked thorugh PShed and the IBFT structure is analyzed and through the info thus gathered the connection to the iSCSI device which contains the OS is established

*- OSLoader.exe gives control to the NT Kernel the kernel analizes the BootDevice and BootPath entries to find the lan path from which the rest of the loading should be carried, analyzes the iSCSI device and detects which filesystem it uses, and with this info it connects to the iSCSI device, just as it was a local path, through the appropriate flesystem driverand completes the loading from there.

If this method of booting is appropriately used together with the EWF/FBWF drivers, it is possible to get a completely functional WinPE (and definitely if FCHAP is used to connect to the iSCSI server) without using a ramdisk, thus it works also on 128 Mb RAM machines, and it is independent form the actuall LAN card....

Append */


[PSEUDO_spanish]
Tenemos dos problemas:
1 - You Lied: w00t: aquí ;):

& i don't speak english very well... i'm sorry.

De lo que usted envió aquí parece que no hablan Inglés en todos. : silbando:

2 - Además de la traducción al Inglés (véase más adelante) es el original que no tiene mucho sentido (al menos para mí).
No puedo entender si quiere ser un tutorial, "una idea no probada", una teoría, una solicitud de ayuda o qué.

Se utiliza una serie de siglas o nombres sin que se explique alguno de ellos y sin ser específico:
iSCSI-> Ok, esto ya se sabe ;)
TFTP-> Ok, esto ya se sabe :lol:
BinL-> Ok, esto ya se sabe :)
PShed->? :w00t:
IBFT->? :w00t:
EWF/FBWF-> Ok, esto ya se sabe :lol:
FCHAP->? :w00t:

Utiliza frases DEMASIADO LARGO si desea que la gente sea capaz de leerlos "manifiestamente" traducido de un servicio en línea o "rápidamente" por otro miembro.

Hacer uso de una estructura, es decir, en lugar de:

- En el arranque PXE el adaptador de red obtiene una direccion IP, mascara de subred, puerta de enlace y la direccion IP de un servidor TFTP, desde donde se carga un programa de Arranque, ya sea PXELinux o Grub4Dos…


usted puede usar algo como esto:

- En el arranque PXE el adaptador de red obtiene:

  • una direccion IP
  • una mascara de subred
  • una puerta de enlace
  • la direccion IP de un servidor TFTP desde donde se carga un programa de Arranque
    El programa de Arranque, puede ser PXELinux o Grub4Dos.

[/PSEUDO_spanish]


;)

jaclaz

#3 IzariathF9B6

IzariathF9B6
  • Members
  • 4 posts
  •  
    Mexico

Posted 01 November 2009 - 11:46 PM

I cannot understand whether it wants to be a Tutorial, an "untested idea", a theory, a request for help or what.


Haha... I forgot explain this point, sorry...

I know that exist a boot method for load Windows NT from a iSCSI device... it's Ok for load a entire OS on a diskless machine, but the iSCSI Boot Setup link the Initiator to the installed Network card on the PC, making the method useless for WinPE (WinPE loses his Portability)... I also know the Ramdisk based boot method, is really fast & useful, in special with the FiraDisk driver, but requires lot amounts of RAM, that is hard limitation in my country (Ram modules are very expensive)...

It's only my little "untested idea", an unprobed theory, that take advantage of the Windows NT (XP, 2003 Server) RIS Boot method & the MS iSCSI Initiator driver to load & run any iSCSI Target with WinPE or BartPE, regardless of the network card installed in PC, making the whole iSCSI boot process trasparent & portable across the platform...

To make its work, is necesary complete the following tasks:

1.- Load the MS iSCSI Initiator miniport (iSCSIPrt.sys) from TXTSetup.sif using the RIS Boot Method without induce Blue Screens (BSODs): The NT Ris Boot method loads some of the required dependencies... like the NDIS Core, the TCP/IP Stack, & queries for the NIC Driver... but some important dependences are excluded, these are:

MSGPC.sys: MS General Packet Classifier
PSched.sys: Packet Scheduler Miniport

I'm not sure if these drivers can be loaded from TXTSetup.sif at boot time... but the WinVBlock project team could load NDIS Driver from TXTSetup.sif to avoid a BSOD in their driver... & the MSiSCSI Boot Initiator Setup can configure all these drivers to load in early NTLDR boot stage... I want to think that the loading of these drivers from TXTSetup.sif is possible :)

2.- Make a program than builds a iBFT Table at Boot time: The iBFT table is part of the ACPI Specification, & contains all settings for configure the MS Initiator driver at Boot Time, as the iSCSI Server IP, the target iSCSI device name, username & password, NIC Bindings, etc... The SanBoot command included with gPXE Option Rom & the PXElinux Program can build this structure at boot time querying the PXE Rom to get the IP configuration, & asking the user to enter the iSCSI server IP, iSCSI Target Name, Username & password... but after that boots directly the iSCSI device. We need a similar stripped program, with the possibility of load & boot StartROM.0 using GRUB4DOS without alter the PXE ROM Stack, in place of loading the O.S. directly from the iSCSI Device...

3.- Force to Windows NT to recognize the iSCSI Device as Boot Drive, & continue the O.S. load from it: i think that it can be done using the TXTSetup.sif BootDevice & BootPath parameters... I'm not sure, but if it fails, i have more tricks... like patching Osloader.exe (NTLdr), or other under investigation...

If this experiment works, we can boot a COMPLETE WinPE enviroment in machines with 128 or 256 MB of RAM, directly from LAN, in a portable way ;), using a server controlled Username/Password for Autentication, similar to the NFS/Linux way...

It's a Pseudo-English translation, i'm waiting Bootland's approvation ;)

#4 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 02 November 2009 - 08:50 AM

It's a Pseudo-English translation, i'm waiting Bootland's approvation :cheers:


You have it. :cheers:

It's perfectly understandable now.

;)

jaclaz

#5 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 13 December 2009 - 03:04 PM

Just a few more bits of information:
  • iBFT: iSCSI Boot Firmware Table
  • PSched: Packet Scheduler (not really needed if uninstalled, but installed by default in XP)
  • GPC: Generic Packet Classifier

Creating an iBFT is pretty easy. It simply needs to be found in low memory by the iSCSI driver.

The biggest problem I see here is the fact that when you perform a RIS-like boot of XP/2003, the ARC path net(0) is used as the boot device by Windows. This ARC path will be a symbolic link for an SMB share LanmanRedirector\server\share. The OS will try to boot from this share [file-based] versus booting from the iSCSI SAN disk [block device-based].

- Sha0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users