Jump to content











Photo
- - - - -

Boot Bart(X)PE using syslinux sdi.c32


  • Please log in to reply
31 replies to this topic

#26 erwan.l

erwan.l

    Gold Member

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

Posted 17 May 2009 - 04:37 PM

my findinds :

-Making a loadable (boot+load+part) sdi version of bartpe is unlikely to happen.
indeed, for bartpe you need a setup loader (not an os loader) and such loader sdi capable does not exist (i believe).

-Making a non loadable (disk/part only) sdi version of bartpe (or any other os <500mb) is rather easy with the winnt sif way : load a bootstrap like startrom.0 which loads a renamed setupldr (ntldr).

-Making a loadable version of XPE looks possible (i get a bsod 0x7b for now but this is an issue with my image i feel).

-Did not try yet with WinPE

So to sum it up, you need an sdi capable boot (startrom from xpe or startrom from w2k3SP1) and an sdi capable executable os loader (ntldr from xpe or osloader from xp) and you need to remember that O.S needs to stick below 500mb which makes some quite heavy constraints.

Main advantage of SDI thus is that it can be loaded with gpxelinux+sdi.c32 via http which makes it one the fastest O.S loader thru the network.

#27 erwan.l

erwan.l

    Gold Member

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

Posted 17 May 2009 - 04:49 PM

Possibly again out of the scope of your tests, but just in case and FYI.

One of the least documented, "half misterious" options of grub4dos is SDI support, check the --sdi option of chainloader command:
http://diddy.boot-la...htm#chainloader

See this hint by tinybit too:
http://www.911cd.net...o...18485&st=22

:D

jaclaz



Actually this is not out the scope.
I can use with success the grubloader thru pxe and can load an SDI image faster than the MS tftp client but i end up with the following grub message : "Missing helper." .
Which makes me wonder : what is grub expecting?
A loadable SDI file (boot+load+part) or a simple SDI (part or disk only) ?

edit : at least did I master how to boot an SDI file :D
Thru startrom/wintnt.sif, thru grub4dos, thru XPe boot loader, thru pxelinux+sdi module with nice findings here and there.

Regards,
Erwan.

PS : I did check and can confirm that the --SDI grub option expects a loadable SDI file.

#28 was_jaclaz

was_jaclaz

    Finder

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

Posted 17 May 2009 - 05:06 PM

Then is it possible that something is "wrong" in the way you create the SDI file?

Woud this help? :D:
http://www.911cd.net...showtopic=15094

I am not familiar at all with the SDI images, but would it be possible that something is missing/wrong in the boot blob (whatever it is)?

Is this (more or less) the method you are using to create the .SDI image?:
http://msdn.microsof...mbedded.5).aspx

jaclaz

#29 erwan.l

erwan.l

    Gold Member

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

Posted 17 May 2009 - 05:22 PM

Then is it possible that something is "wrong" in the way you create the SDI file?

Woud this help? :D:
http://www.911cd.net...showtopic=15094

I am not familiar at all with the SDI images, but would it be possible that something is missing/wrong in the boot blob (whatever it is)?

Is this (more or less) the method you are using to create the .SDI image?:
http://msdn.microsof...mbedded.5).aspx

jaclaz


Yep I used the same method as in the MS article and here below my bacth file :

cscript SDIMGR.WSF xpe.sdi /new
cscript SDIMGR.WSF xpe.sdi /import:BOOT,0,"C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\startrom.com"
cscript SDIMGR.WSF xpe.sdi /import:LOAD,0,"C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\ntldr"
cscript SDIMGR.WSF xpe.sdi /readpart:g:
cscript SDIMGR.WSF xpe.sdi /pack
cscript SDIMGR.WSF xpe.sdi

You find the same procedure here : http://syslinux.zyto...dex.php/Doc/sdi .

I either read from a partition where XPe is installed or BartPE.

And the operating system boots fine actually and loads the O.S fine as well.

But loading BartPE gives me "system32\config\system file missing or corrupt" because I use an OS loader not a setup loader.
XPe boot fines almost up to the logon prompt but gives me a BSOD 0x7b but I believe this is the ramdisk loading conflicting with the ramdisk inside my XPe (i need to disable it) or conflicting with the EWF part of XPe.

I am rather confident with that I should load XPe by the end.

I almost sure that BartPE can only benefit from a simple (no boot, no load blob) SDI file not a loadable SDI file.

/Erwan

#30 erwan.l

erwan.l

    Gold Member

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

Posted 23 May 2009 - 11:03 AM

Some progress, no more 0x7b :D
Now i get under XPE using gpxelinux + sdi.c32 via http.
My sdi is a loadable one (boot+load+part), 256 mbytes.
It loads in 30 secs on a 100mb network.
Did not try yet the gzip compression yet.

It seems that the trick was that the partition used for the sdimgr /readpart needs to be active.

I have one last issue to solve with the First Boot Agent of XPE (once under XPE, it reboots...).

Almost there!

/Erwan

#31 erwan.l

erwan.l

    Gold Member

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

Posted 24 May 2009 - 12:19 AM

At last full success :D
I could boot thru gpxelinux + sdi.c32 + http + gzip compression my XPE image.
It is blasting fast, probably the fastest network boot I have seen (after iscsi).
Far quicker than the regular MS tftp way.

Reminder : the SDI image is a loadable one (boot+load+part), not a single one (Part or Disk or WIM).

The batch I posted earlier in that thread does it all.
The partition to be read from needs to be set active.
The os to be loaded needs to be ramdisk enabled (ms ramdisk.sys in my case).

Note that grub4dos should work fine as well instead of gpxelinux but grub4dos does not support http and gzip for sdi loading.

I am now wondering why MS bothered with loadable SDI since it seems they dont provide solutions to load it (or am I wrong?).

I lost a hell lot of time with XPE and will now see if I can replace it with a nlite+xp .

Also, the XPE loader seems to be the only one to be able to use loadable SDI files (because of the blobs structure).
It would be nice to be able to chain load another loader on top of it to be able to load "setup" images such as bartpe, etc.

Any help on that last point welcome :D

Regards,
Erwan

#32 erwan.l

erwan.l

    Gold Member

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

Posted 30 August 2009 - 11:06 AM

At last full success :frusty:
I could boot thru gpxelinux + sdi.c32 + http + gzip compression my XPE image.
It is blasting fast, probably the fastest network boot I have seen (after iscsi).
Far quicker than the regular MS tftp way.

Reminder : the SDI image is a loadable one (boot+load+part), not a single one (Part or Disk or WIM).

The batch I posted earlier in that thread does it all.
The partition to be read from needs to be set active.
The os to be loaded needs to be ramdisk enabled (ms ramdisk.sys in my case).

Note that grub4dos should work fine as well instead of gpxelinux but grub4dos does not support http and gzip for sdi loading.

I am now wondering why MS bothered with loadable SDI since it seems they dont provide solutions to load it (or am I wrong?).

I lost a hell lot of time with XPE and will now see if I can replace it with a nlite+xp .

Also, the XPE loader seems to be the only one to be able to use loadable SDI files (because of the blobs structure).
It would be nice to be able to chain load another loader on top of it to be able to load "setup" images such as bartpe, etc.

Any help on that last point welcome :rofl:

Regards,
Erwan



for the record :
->my batch file
cscript SDIMGR.WSF xpe.sdi /new
cscript SDIMGR.WSF xpe.sdi /import:BOOT,0,"C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\startrom.com"
cscript SDIMGR.WSF xpe.sdi /import:LOAD,0,"C:\Program Files\Windows Embedded\Remote Boot Service\Downloads\ntldr"
cscript SDIMGR.WSF xpe.sdi /readpart:g:
cscript SDIMGR.WSF xpe.sdi /pack
cscript SDIMGR.WSF xpe.sdi > info.txt

->the output of the sdi file
SDI File : C:\WINDOWS_XP_EMBEDDED_SP2E\XPE\xpe.sdi
MDB Type : ---
Boot Code Offset : 0x00000000.00001000
Boot Code Size : 0x00000000.00005EC2
Vendor ID : 0x0000 (0)
Device ID : 0x0000 (0)
Device Model : {00000000-0000-0000-0000-000000000000}
Device Role : 0
Runtime GUID : {00000000-0000-0000-0000-000000000000}
Runtime OEM Rev : 0
Page Alignment : 1 (4096 bytes)

Type Offset Size Base Address Attr
---- ------------------- ------------------- ------------------- ----------
BOOT 0x00000000.00001000 0x00000000.00005EC2 0x00000000.00000000 0x00000000
LOAD 0x00000000.00007000 0x00000000.00038400 0x00000000.00000000 0x00000000
PART 0x00000000.00040000 0x00000000.1E8FE000 0x00000000.00000007 0x00000000

->my grub4dos menu if you dont go for pxelinux or gpxelinux
chainloader --sdi (pd)/images/xpe.sdi




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users