Jump to content











Photo
- - - - -

Windows 7 PXE boot to diskless system

pxe wes7 ramdisk inaccessible boot device wim

  • Please log in to reply
9 replies to this topic

#1 Johnw__

Johnw__
  • Members
  • 3 posts
  •  
    United Kingdom

Posted 10 January 2013 - 03:59 PM

I'm trying to boot a diskless PC with a Windows Embedded 7 (WES7) build using PXE booting.

I'm aware that this isn't supported by Microsoft but I'm also aware that it is possible.

I've built a WES7 PC with very minimal features and created a .wim file from it using imagex. The size of the .wim file is about 300MB (created with maximum compression) which doesn't seem to be too big.

I've now removed all the disk drives and am trying to PXE boot the same PC to a RAM disk.

I have editted the wim file to include the registry entries and additional drivers suggested by this topic on an msdn forum -
"bit.ly/UF6p49" by Joakim Schicht. I've set the size of the Ram disk to 1024M (I've also tried it with it set to 2048M)

I have produced a BCD file from two batch files - the second one created once the GUID has been obtained - and looked at it using VisualBCD and it seems to include all the bits that I think it should. See the end of this post for the batch files.

When I use TFTP32 to serve the files to the PC, they are transferred OK and the Windows 7 boot process begins (the green ticker runs). After about 15 seconds, I lose the startup screen and get a BSOD with the message:
STOP: 0x0000007B (0x84B86b58, 0xC000000D, 0x00000000, 0x00000000) which is "INACCESSIBLE BOOT DEVICE".

I've tried booting a completely different PC with the same image and I get the same error (except the first data in the brackets is 0x88386A58 on the other PC) The first PC has 2G RAM, the second has 4G RAM.

I'm not sure if it helps at all, but I've included a directory listing of the folder that my TFTP32 looks at.

I'm sure I'm only a smidgen away from getting this running but what have I missed? I can't believe that there's not a complete step by step guide somewhere but I can't find one after many hours of searching.


Batch file 1
Bcdedit -createstore d:\bcdcreate\BCD
Bcdedit -store d:\bcdcreate\BCD -create {ramdiskoptions}
Bcdedit -store d:\bcdcreate\BCD -set {ramdiskoptions} ramdisksdidevice boot
Bcdedit -store d:\bcdcreate\BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
Bcdedit -store d:\bcdcreate\BCD -create {bootmgr} /d "BootManager"
Bcdedit -store d:\bcdcreate\BCD -set {bootmgr} timeout 10
Bcdedit -store d:\bcdcreate\BCD -create /d "MyWinPE Boot Image" /application osloader

Batch File 2
Bcdedit -store d:\bcdcreate\BCD -set {GUID} systemroot \Windows
Bcdedit -store d:\bcdcreate\BCD -set {GUID} detecthal Yes
Bcdedit -store d:\bcdcreate\BCD -set {GUID} winpe Yes
Bcdedit -store d:\bcdcreate\BCD -set {GUID} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store d:\bcdcreate\BCD -set {GUID} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store d:\bcdcreate\BCD -displayorder {GUID}

 Directory of d:\TFTPRoot

09/01/2013  09:44    <DIR>          .
09/01/2013  09:44    <DIR>          ..
10/06/2009  22:44                79 abortpxe.com
09/01/2013  11:08    <DIR>          boot
14/07/2009  02:26           523,328 bootmgr.exe
09/01/2013  08:37    <DIR>          en-US
10/06/2009  22:15            25,772 pxeboot.com
10/06/2009  22:15            25,772 pxeboot.n12
09/01/2013  09:36    <DIR>          sources
10/06/2009  22:44             1,347 WdsConfig.inf
10/06/2009  22:44            31,124 wdsnbp.com
               6 File(s)        607,422 bytes

 Directory of d:\TFTPRoot\boot

09/01/2013  11:08    <DIR>          .
09/01/2013  11:08    <DIR>          ..
08/01/2012  16:15            12,288 BCD
10/06/2009  14:44         3,170,304 boot.sdi
09/01/2013  11:06       314,446,008 boot.wim
10/06/2009  14:14             1,024 bootfix.bin
10/06/2009  14:14             4,096 etfsboot.com
09/01/2013  08:41    <DIR>          fonts
               5 File(s)  1,662,875,488 bytes

 Directory of d:\TFTPRoot\boot\fonts

09/01/2013  08:41    <DIR>          .
09/01/2013  08:41    <DIR>          ..
14/07/2009  10:05         3,693,112 chs_boot.ttf
14/07/2009  10:05         3,875,804 cht_boot.ttf
14/07/2009  10:05         1,983,244 jpn_boot.ttf
14/07/2009  10:05         2,370,376 kor_boot.ttf
14/07/2009  10:05            46,468 wgl4_boot.ttf
               5 File(s)     11,969,004 bytes

 Directory of d:\TFTPRoot\en-US

09/01/2013  08:37    <DIR>          .
09/01/2013  08:37    <DIR>          ..
14/07/2009  02:17            85,056 bootmgr.exe.mui
               1 File(s)         85,056 bytes

 Directory of d:\TFTPRoot\sources

09/01/2013  09:36    <DIR>          .
09/01/2013  09:36    <DIR>          ..
               0 File(s)              0 bytes


 


  • Robbin2 likes this

#2 Sha0

Sha0

    WinVBlock Dev

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

Posted 10 January 2013 - 04:52 PM

Very nice detail!  Are you actually trying to boot a Windows 7 Embedded PE environment, or is it a Windows 7 Embedded environment?  You should look into wimboot, which can work with both iPXE and PXELINUX (using Syslinux' linux.c32).



#3 Johnw__

Johnw__
  • Members
  • 3 posts
  •  
    United Kingdom

Posted 11 January 2013 - 08:00 AM

Thanks for the reply - I always try to put as much useful detail as possible into posts but I always miss at least one thing!).

I'm trying to boot a full Windows 7 Embedded environment. I've successfully PXE booted a PE environment (which is why I know I must be close to a solution). What I want to end up with is two WES7 computers connected together. One has a USB stick plugged into it. The first computer boots WES7 from the USB stick, and (via TFTP server) makes the image of the second computer available for it to PXE boot from. I want all this to happen with the only human action being to switch on the computers - everything else needs to happen automatically (I've been doing it for years with XPe and hadn't realised that migration to WES7 wasn't going to be straightforward!). It's the booting of the second PC that I'm having a problem with.

I'll certainly look into wimboot but a cursory look suggests that it's primarily aimed at PE booting. Any Linux solution isn't viable I'm afraid but the problem doesn't seem to be getting the files to the PC but the way it boots once they're there. The Windows 7 booting process appears to start (the green progress bar appears for over 10 seconds before the BSOD appears).



#4 Sha0

Sha0

    WinVBlock Dev

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

Posted 11 January 2013 - 08:37 PM

I'm trying to boot a full Windows 7 Embedded environment. I've successfully PXE booted a PE environment (which is why I know I must be close to a solution).

In that case, I'm not sure if you noticed that your BCD store has the winpe option set to yes.  I doubt you want that for a non-PE.

 

What I want to end up with is two WES7 computers connected together. One has a USB stick plugged into it. The first computer boots WES7 from the USB stick, and (via TFTP server) makes the image of the second computer available for it to PXE boot from. I want all this to happen with the only human action being to switch on the computers - everything else needs to happen automatically (I've been doing it for years with XPe and hadn't realised that migration to WES7 wasn't going to be straightforward!). It's the booting of the second PC that I'm having a problem with.
I'll certainly look into wimboot but a cursory look suggests that it's primarily aimed at PE booting. Any Linux solution isn't viable I'm afraid but the problem doesn't seem to be getting the files to the PC but the way it boots once they're there. The Windows 7 booting process appears to start (the green progress bar appears for over 10 seconds before the BSOD appears).

wimboot should be able to boot a non-PE if it's at all possible for BootMgr to boot a non-PE using the same set of files.  It might be, but I haven't tried recently.  I'll try to find some time to try it out and post again.



#5 Robbin2

Robbin2
  • Members
  • 6 posts
  •  
    Russian Federation

Posted 14 February 2013 - 01:22 PM

Thanks for all the good info guys, and Hi :)

All I need is to boot configured Windows 7 image with 2 partitions in ramdisk through pxe

I have similiar task, except that I need to boot pre-installed windows, with all pre-configured drivers and software, Im not sure, is it possible with WES7 .wim image? Maybe there is a way to backup installed system with partitions to a .wim or any other bootable image file?

 

 

What I understood is the following scheme:

client->PXE->DHCP->TFTP->iPXE->wimboot->HTTP->system image->ramdisk->boot up

Is that right?

 

Also I cant understand what to do with DHCP, I need to reserve IPs of PCs on certain ports of switch, so that we just can replace pc anytime and it will boot up without configs, thus I need to turn on DHCP server on switch and configure it, but then how will DHCP on pc-server side work?

 

I would really appreciate help, if all works out I will post a how-to here, as I will have to do it for my colleagues anyway :)

 

Sorry for my English ^_^



#6 Johnw__

Johnw__
  • Members
  • 3 posts
  •  
    United Kingdom

Posted 15 February 2013 - 07:57 AM

You only need one DHCP server running. The BIOS in the PC you're trying to boot should be able to find the TFTP server as long as they're both on the same subnet. Some TFTP servers have a DHCP server built in, some don't.

If you can get your system running, I would be very pleased to see the result. At the moment I've only managed to PXE boot a WES7 PE which isn't good enough. I haven't had chance yet to experiment with iPXE and Wimboot - Ultimately, if I run out of time, I'll just have to boot into XPe so I have other priorities - but that does seem to be the method that stands most chance of working.



#7 Robbin2

Robbin2
  • Members
  • 6 posts
  •  
    Russian Federation

Posted 15 February 2013 - 08:22 AM

Thanks for reply. If it is possible to store all configs and drivers in WES7 PE then I wil try it first. I need to boot up system without any installation processes, and this system should be able to run World of Warcraft for example (I mean working network and graphics card right after boot)

 

Now Im searching for info what we can put inside .wim :)



#8 dacman61

dacman61
  • Members
  • 1 posts
  •  
    United States

Posted 19 March 2013 - 03:52 PM

Based on my experience in other setups, "STOP: 0x0000007B (0x84B86b58, 0xC000000D, 0x00000000, 0x00000000) which is "INACCESSIBLE BOOT DEVICE"." is usually caused when there was an incorrect hard disk controller driver installed... Somehow inject or load a proper driver into the image... These drivers are like the "F6" drivers from the old Win XP and Win Server 2003 days.

 

I hope this helps.



#9 coder

coder

    Member

  • Members
  • 63 posts
  •  
    United States

Posted 20 March 2013 - 08:39 AM

It seems to me your problem is how you get the wim file.

read here...

http://technet.micro...0).aspx#Capture

 

do not expect just getting an image with imagex /capture and that image being automatically bootable :frusty:



#10 Robbin2

Robbin2
  • Members
  • 6 posts
  •  
    Russian Federation

Posted 21 March 2013 - 01:06 PM

Well I switched to booting .VHD form USB/Compact Flash/CFast. The problem is that we need ECC error correction in that media types. And Im booting VHD to RAM with GRUB4DOS. There is no way to PXE boot to RAM :(







Also tagged with one or more of these keywords: pxe, wes7, ramdisk, inaccessible boot device, wim

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users