Jan 122014
 

Here below some drafts notes on how to boot WINPE on a UEFI computers.

1/Files you need from your windows x64 dvd

-\efi\boot\bootx64.efi file (1)
-\efi\boot\bcd file (2)
-\efi\boot\boot.sdi file (3)
-\efi\microsoft\boot\fonts folder (4)
-\sources\boot.wim (5)

If you dont find bootx64.efi, you can use bootmgfw.efi which is in install.wim on your dvd (sources folder).
Use 7zip to extract this file from the wim file and rename it to bootx64.efi

2/Files you need in your tftp root

-get in your tftp root
put bootx64.efi (from 1)
-create a SOURCES folder
put boot.wim in there (from 5)
-create a BOOT folder
put boot.sdi in there (from 3)
put bcd in there (from 2) / applies for Win8
-create a EFI/MICROSOFT/BOOT folder
put bcd in there (from 2) / applies for Win7
put the FONT folder in there (from 4)

You should end up with the following :
=>ROOT
-bootx64.efi
==>SOURCES
==boot.wim
==>BOOT
==boot.sdi
==bcd (for win8)
==>EFI/MICROSOFT/BOOT
==bcd (for win7)
===>FONTS
===*.ttf

3/Things you need to do on your boot.wim

Add the following winpeshl.ini (create it with notepad) file in your boot.wim (system32), making it a « cheap » winpe.

To modify your boot.wim, you can either mount/change/commit it with DISM (from the command line), or with CloneDisk or else modify it with wimlib :
wimlib-imagex update boot.wim 1 --command="add CustomWinpeshl.ini \Windows\System32\winpeshl.ini"


[LaunchApps]
%SYSTEMDRIVE%\Windows\system32\startnet.cmd
%SYSTEMDRIVE%\windows\system32\cmd.exe

4/Things you need to do in your PXE Server :

Set bootx64.efi as the bootp filename.

The UEFI + PXE boot process will be the following :
pxe->bootx64.efi (from windows install dvd)->bcd (pointing to winload.efi)->boot.wim (x64 only)

as opposed to a legacy bios computer :
pxe->pxeboot.n12 (from windows install dvd)-> bootmgr.exe -> bcd (pointing to winload.exe) -> boot.wim

Site note : you can use option dhcp 252 to decide which BCD file to load.
Can be handy when you want to switch from a UEFI computer to a legacy BIOS computer : efi\microsoft\boot or boot\bcd

tps_howto_uefi

side note : you can check if you booted on uefi with the following reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType Will output 0x1 for bios, 0x2 for uefi.

Cheers,
Erwan

Note that the following would aso work : PXE-> IPXE.efi ->MS Bootx64.efi ->BCD (winload.efi) ->Boot.wim (x64).

Ipxe script

#!ipxe
#change with you dhcp or proxydhcp server
set next-server 192.168.1.11
set filename boot/x64/bootmgfw.efi
chain tftp://${next-server}/${filename}

And changes to apply to your BCD : bcdedit.exe /store my.bcd /set {bootmgr} nointegritychecks yes

 Posted by at 21 h 49 min  Tagged with:

  78 Responses to “Boot WINPE over PXE on a UEFI computer”

  1. Hi,
    It’s great to see that you have PXE working with UEFI however I can’t easily understand your instructions to get it working for me, in particular part 2, what goes where? Could you please give a bit more detail on the folder paths and in section 4 more detail on what’s required in the PXE server, then hopefully I can get it to work for me. Also what OS and Client OS have you got this working on Server 2008r2, 2012, Win7 or Win8

    Thanks.

    • In section 2, I have attached a list of all files in my folder for a better understanding of needed files.

      In section 4, I dont understand your question : set TinyPXE Server as in the screenshot and you are set

      /Erwan

  2. How to use dhcp 252
    show an example

  3. First, sorry for my pool English.
    I really don’t understand step.3 [Things you need to do on your boot.wim]
    This boot.win is copy from W764dvd?
    Where can I get the «  »winpeshl.ini »? I use notepad to edit the winpeshl.ini by myself. is’t right?
    And use wimlib, I copy boot.win and winpeshl.ini in the same folder, the run the following command in vmd mode
    « wimlib-imagex update boot.wim 1 –command= »add CustomWinpeshl.ini.ini \Windows\System32\winpeshl.ini.ini »
    then I get an error « Can’t open winpeshl.ini.ini » message.

    Please help and sorry for my pool English again
    Thanks.

    • Ha.. ha.. POOR Eng…NOT POOL ENG.

    • Boot.wim comes from your Winpe.
      Use QuickPE (http://labalec.fr/erwan/?page_id=993) to create your winpe.
      Actually if you use QuickPE, you can skip step 3 in the abobe procedure.

      Winpeshl.ini you create yourself and save it as CustomWinpeshl.ini.

      Then run the command : wimlib-imagex update boot.wim 1 –command= « add CustomWinpeshl.ini.ini \Windows\System32\winpeshl.ini.ini »

      Make sure the CustomWinpeshl is in the current folder.

      • Where can I get bootx64.efi? I search W7-64 DVD but don’t find this file.
        I use command 7 to get QuickPE ISO.
        My step is.
        -put bootx64.efi ————–Not find this file yet.
        -create a sources folder and put boot.wim in there — copy from QuickPE ISO
        -create a boot folder and put bcd and boot.sdi in there — copy from QuickPE ISO
        -put a \efi\microsoft\boot\fonts in there — copy from Win7-64 DVD.

        When booting from UEFI PXE. The info is « Succeed to download NBP file » and system stop.

        • So happy. I did it.
          I use Windows ADK to create winpe usb flash disk and find bootx64.efi in \EFI\Boot.
          Copy this file to \pxesrv\files and UEFI cilent can boot from PXE.
          But get another error as below after load boot.wim. I’ll keep trying.
          File : /windows/system32/winload.exe
          Status : 0xc0000428
          Info : The digital signature for this file couldn’t be vefified.

          • Your BCD is wrong : you seem to be using a non EFI one.
            Your BCD should be calling winload.efi and not winload.exe.

        • if you cannot find bootx64.efi, look for bootmgfw.efi.
          once found, rename it to bootx64.efi.

  4. Dear Erwan,

    Thanks for taking care about all those PXE UEFI boot problems which just occurred.

    Maybe you will also be able to help me with my specific Problem.
    I followed your instructions by the letter, but for some reason, I am not able to get the system running.
    I tried tftpd32 and Tiny PXE Server as well.

    In case I use bootia32.efi as boot File, I am able to start WinPE with a 32bit WIM, but not with a 64bit WIM. According to Wireshark, the bootia32.efi does what it is supposed to do.

    When I change the Boot File to Bootx64.efi, to be able to load 64bit WIM Files, with the right BCD Store of course, it will not Work.
    Even after doing a network Sniff with Wireshark, the Client will not even request anything else after loading Bootx64.efi and will go to Failover IPv6 Boot.

    Hope you might have another Idea, since I am really lost now.

    Kind Regards
    Florian

  5. Hi Florian,

    Can you display the content of your BCD here?
    bcdedit /store x:\pxe\boot\bcd (example).

    Also, you computer is set on to boot on EFI right?

    Thanks,
    Erwan

  6. I’m having issues with everything (nice way to start)

    Mostly I have done everything perfectly, when I did something wrong I get an error on the system I try to boot on (failed boot / etc).

    Let’s just mention my last attempt that is supposed to work:

    -Plugged in USB Windows 8.1 x64 key in PC
    -Ran QuickPE
    -Selected option 7 (x64 from DVD)
    -Gave him the path to my USB key
    -Result = ok
    -I make a folder called D:\EFI\WinPE
    -I copied the content of the « AMD64\ISO » folder created by quick PE into it.
    -I copied the bootx64.efi from my USB \EFI\BOOT\ folder into the D:\EFI\WinPE\ root.
    -I coped the FONTS folder from my USB \EFI\MICROSOFT\BOOT\ into a new folder in D:\EFI\WinPE\EFI\MICROSOFT\BOOT\

    My file structure:
    D:\EFI\WinPE\bootx64.efi
    D:\EFI\WinPE\boot\BCD
    D:\EFI\WinPE\boot\BOOT.SDI
    D:\EFI\WinPE\EFI\MICROSOFT\BOOT\FONTS\
    D:\EFI\WinPE\SOURCE\boot.wim

    my TinyPXE is setup EXACTLY like your screenshot (except, of course, with my own IPs)

    I have selected the bootx64.efi from the D:\EFI\WinPE\ Folder.

    Now I start up my 2 different system (Latitude E6430s and Inspiron 3138) Both in UEFI PXE. Both see the server, and both start downloading the files. they download the boot.sdi then the boot.wim. After they are done (while checking the network activity), both systems hang there. I have nothing else going on the screens, they just don’t do anything.

    here’s my log (lots of computers on the network, ignore all the DHCP)

    12:25:42 ROOT=D:\EFI\WINPE\
    12:25:42 DHCPd:67 started…
    12:25:42 DHCPd:4011 started…
    12:25:42 TFPTd started…
    12:25:42 HTTPd started…
    12:25:45 DHCPd:INFORM received, MAC:D4-BE-D9-70-65-1F, XID:B3F9386F
    12:25:46 DHCPd:DISCOVER received, MAC:5C-F9-DD-69-D0-82, XID:84A0E1D9
    12:25:47 DHCPd:OFFER sent, IP:0.0.0.0, XID:84A0E1D9
    12:25:50 DHCPd:REQUEST discarded, MAC:5C-F9-DD-69-D0-82, XID:84A0E1D9
    12:25:50 PDHCPd:REQUEST received, MAC:5C-F9-DD-69-D0-82, IP:192.168.2.177, XID:165FF21B
    12:25:50 Proxy boot filename empty?
    12:25:50 PDHCPd:DHCP_ACK sent, IP:192.168.2.177:4011, xid:165FF21B
    12:25:51 TFTPd:DoReadFile:bootx64.efi B:1468 T:0
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:1054)
    12:25:52 TFTPd:OpenError:Cannot open file « D:\EFI\WINPE\BCD ». The system cannot find the file specified
    12:25:52 TFTPd:DoReadFile:BCD B:0 T:262144
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:DoReadFile:BCD B:1456 T:262144
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9362)
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:9363)
    12:25:52 TFTPd:OpenError:Cannot open file « D:\EFI\WINPE\en-US\bootx64.efi.MUI ». The system cannot find the path specified
    12:25:52 TFTPd:DoReadFile:bootx64.efi B:0 T:1615712
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:DoReadFile:bootx64.efi B:1456 T:1615712
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9365)
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:9366)
    12:25:52 TFTPd:DoReadFile:boot.wim B:0 T:218027486
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:DoReadFile:boot.sdi B:0 T:3170304
    12:25:52 TFTPd:DoReadFile:segoe_slboot.ttf B:0 T:77404
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:DoReadFile:segoe_slboot.ttf B:1456 T:77404
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9367)
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9368)
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9369)
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:9370)
    12:25:52 TFTPd:DoReadFile:segmono_boot.ttf B:0 T:36020
    12:25:52 TFTPd:DoReadFile:segmono_boot.ttf B:1456 T:36020
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9371)
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:9372)
    12:25:52 TFTPd:DoReadFile:wgl4_boot.ttf B:0 T:47452
    12:25:52 TFTPd:DoReadFile:wgl4_boot.ttf B:1456 T:47452
    12:25:52 TFTPd:received TFTP_ERROR
    12:25:52 TFTPd:Exception:Operation aborted
    12:25:52 TFTPd:TransferComplete=False (192.168.2.177:9373)
    12:25:52 TFTPd:TransferComplete=True (192.168.2.177:9374)
    12:25:52 TFTPd:DoReadFile:boot.sdi B:1456 T:3170304
    12:25:53 TFTPd:TransferComplete=True (192.168.2.177:9375)
    12:25:53 TFTPd:DoReadFile:boot.wim B:1456 T:218027486
    12:26:32 DHCPd:INFORM received, MAC:68-A3-C4-66-DB-45, XID:CC165CB7
    12:26:52 TFTPd:TransferComplete=True (192.168.2.177:9376)
    12:27:04 DHCPd:INFORM received, MAC:D4-BE-D9-70-65-1F, XID:BDF299A

    ty for the help.

    • got a few typos in there ( SOURCE = SOURCES ) , the folder is named correctly.

    • I just tested with windows 7 and it worked fine on my E6430s, even if I got a missing network driver error (normal), it did start up, got the starting windows logo, then cursor and such. Windows 8 still refuses to do anything at all. Issue seems to be based only on Windows 8, not sure , I can’t use my 2nd system (the one I’m trying to find a solution) as it’s the one that can only run un UEFI with windows 8 (7 pxe gives me an error)

    • I see lots of TFTP errors.
      Can you try disabling your client firewall (where Tiny PXE Server runs).

      Thx,
      Erwan

  7. seems wimboot latest support boot win pe over http/ftp under UEFI
    note: filename of boot.wim has a limitation of 7 characters. or a bug.

    e.g. could be 1234567.wim, but not 12345678.wim

  8. same wimboot binary file for efi and bios.

    tried 1.0.0.18 but failed with arch variable.

    using other server (hanewin) to set alternate boot filename by checking vc PXEClient:Arch:00007:
    and using iPXE script for bios and uefi. this is tested script:

    #wimboot for both BIOS and UEFI

    kernel ${base}/wimboot pause

    iseq ${platform} efi && goto efi ||

    initrd ${base}/bootmgr.exe bootmgr.exe
    initrd ${base}/boot/bcf bcf
    goto next

    :efi
    initrd ${base}/bootx64.efi
    initrd ${base}/boot/bcd

    :next
    initrd ${base}/boot/boot.sdi boot.sdi
    initrd ${base}/sources/boot.WIM boot.WIM
    imgstat

    prompt –key 0x02 –timeout 30000 Press Ctrl-B for the iPXE command line… && shell ||

    boot

    #note that when BIOS , must provice filename after initrd. and don’t support –name synax

  9. Hi! I’m getting lots of tftp errors. Can anyone help me out? 🙂

    Followed this guide step by step with a windows 8.1 iso. Everything should be good.
    I’m using a rj45 cross-over cable. Here’s how things are set up: https://drive.google.com/file/d/0B-fWg2dqIcnRMDc1WE96Vjh0YlE/view?usp=sharing

    and here’s the error log:

    21:23:14 ROOT=C:\pxe\
    21:23:14 DHCPd:67 started…
    21:23:14 TFPTd started…
    21:23:17 DHCPd:DISCOVER received, MAC:A0-B3-CC-7D-BE-C4, XID:36704F55
    21:23:17 DHCPd:OFFER sent, IP:10.1.1.10, XID:36704F55
    21:23:20 DHCPd:REQUEST received, MAC:A0-B3-CC-7D-BE-C4, XID:36704F55
    21:23:20 DHCPd:ACK sent, IP:10.1.1.10, XID:36704F55
    21:23:20 TFTPd:DoReadFile:bootx64.efi B:1468 T:0
    21:23:21 TFTPd:TransferComplete=True (10.1.1.10:1025)
    21:23:21 TFTPd:DoReadFile:bootx64.efi B:1468 T:0
    21:23:21 TFTPd:TransferComplete=True (10.1.1.10:1026)
    21:23:21 TFTPd:DoReadFile:\BCD B:0 T:262144
    21:23:21 TFTPd:DoReadFile:\Boot\BCD B:0 T:262144
    21:23:21 TFTPd:received TFTP_ERROR
    21:23:21 TFTPd:DoReadFile:\Boot\BCD B:1456 T:262144
    21:23:21 TFTPd:Exception:Operation aborted
    21:23:21 TFTPd:received TFTP_ERROR
    21:23:21 TFTPd:Exception:Operation aborted
    21:23:21 TFTPd:TransferComplete=False (10.1.1.10:9083)
    21:23:21 TFTPd:TransferComplete=False (10.1.1.10:9084)
    21:23:21 TFTPd:TransferComplete=True (10.1.1.10:9085)
    21:23:21 TFTPd:OpenError:Cannot open file « C:\pxe\en-US\bootx64.efi.MUI ». The system cannot find the path specified
    21:23:21 TFTPd:DoReadFile:\bootx64.efi B:0 T:1649992
    21:23:21 TFTPd:DoReadFile:\bootx64.efi B:1456 T:1649992
    21:23:21 TFTPd:received TFTP_ERROR
    21:23:21 TFTPd:Exception:Operation aborted
    21:23:21 TFTPd:TransferComplete=False (10.1.1.10:9087)
    21:23:22 TFTPd:TransferComplete=True (10.1.1.10:9088)
    21:23:22 TFTPd:DoReadFile:\sources\boot.wim B:0 T:239494197
    21:23:22 TFTPd:DoReadFile:\Boot\boot.sdi B:0 T:3170304
    21:23:22 TFTPd:received TFTP_ERROR
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\segoe_slboot.ttf B:0 T:77404
    21:23:22 TFTPd:received TFTP_ERROR
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\segoe_slboot.ttf B:1456 T:77404
    21:23:22 TFTPd:received TFTP_ERROR
    21:23:22 TFTPd:Exception:Operation aborted
    21:23:22 TFTPd:TransferComplete=False (10.1.1.10:9089)
    21:23:22 TFTPd:Exception:Operation aborted
    21:23:22 TFTPd:TransferComplete=False (10.1.1.10:9090)
    21:23:22 TFTPd:Exception:Operation aborted
    21:23:22 TFTPd:TransferComplete=False (10.1.1.10:9091)
    21:23:22 TFTPd:TransferComplete=True (10.1.1.10:9092)
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\segmono_boot.ttf B:0 T:36020
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\segmono_boot.ttf B:1456 T:36020
    21:23:22 TFTPd:received TFTP_ERROR
    21:23:22 TFTPd:Exception:Operation aborted
    21:23:22 TFTPd:TransferComplete=False (10.1.1.10:9093)
    21:23:22 TFTPd:TransferComplete=True (10.1.1.10:9094)
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\wgl4_boot.ttf B:0 T:47452
    21:23:22 TFTPd:DoReadFile:\EFI\Microsoft\boot\fonts\wgl4_boot.ttf B:1456 T:47452
    21:23:22 TFTPd:received TFTP_ERROR
    21:23:22 TFTPd:Exception:Operation aborted
    21:23:22 TFTPd:TransferComplete=False (10.1.1.10:9095)
    21:23:22 TFTPd:TransferComplete=True (10.1.1.10:9096)
    21:23:22 TFTPd:DoReadFile:\boot\boot.sdi B:1456 T:3170304
    21:23:24 TFTPd:TransferComplete=True (10.1.1.10:9097)
    21:23:24 TFTPd:DoReadFile:\sources\boot.wim B:1456 T:239494197
    21:25:05 TFTPd:TransferComplete=True (10.1.1.10:9098)
    21:25:33 DHCPd:DISCOVER received, MAC:A0-B3-CC-7D-BE-C4, XID:94611F9D
    21:25:34 DHCPd:OFFER sent, IP:10.1.1.10, XID:94611F9D
    21:25:34 DHCPd:REQUEST received, MAC:A0-B3-CC-7D-BE-C4, XID:94611F9D
    21:25:34 DHCPd:ACK sent, IP:10.1.1.10, XID:94611F9D

    I get to an error on the client computer that says there were some errors and that i should check if there is a problem with the firewall or something like this. Server computer is running windows 8 x64 and firewall is indeed disabled.

    Thanks! 😉

  10. Or maybe should I try this with Windows 8? It’s gonna take too long to get the dvd or iso though…

  11. Hi!

    Can anyone please build me a EasyUEFI WinPE image. My uefi boot manager is broken and my laptop’s bios is so stripped down, I’ve tried everything. Even the efi applications have to be signed by HP to run them… and I can’t access the EFI shell for the same reason.

    I can boot a WinPE image through PXE though, but I can’t build the EasyUEFI WinPE image myself since I don’t have another UEFI enabled PC in the household. So I would be extremely thankful if somebody can build it for me and upload it somewhere.

    Thank you!

    • Actually, I think I have a better idea! Since windows 8.1 (UEFI) is installed on C drive, can I modify WinPE’s BCD to not boot the WinPE over PXE but the installed OS on C drive?

      This way, I could fix the boot manager issue easily. I’m not sure it would boot this way though… Any help is appreciated!

      Thanks!

      • YESSS!!! I FIXED IT! I used an older efi shell, no problem anymore. 🙂 I’m gonna spread the news on hp forums, so more ppl will know 🙂

  12. Hello! I want to know is the « tiny pxe server » can install with MS-DHCP in the same server? I want to use the MS-DHCP server work for ip assign for client and the « Tiny pxe server » for transit the files with “http” protocol under the legacy and uefi architect .if can how to set the paraments?
    another quistion: when I try to use the « tiny pxe server » to transit files with « http » protocol in UEFI architect the ipxe.efi,ipxe-snponly.efie etc didn’t « work » only the bootx64.efi with tftp to transit.can you tell me how to set the paraments in the case when use « tiny pxe server » to transit files under UEFI architect with “http” protocol ?
    Excuse me , my English sucks
    Thanks.
    Pang 2014-11-6 in Beijing

    • TPS can act as proxy dhcp server which will allow co existence between TPS and another DHCP server on the same LAN.
      On the same computer thus, it wont work.

      About TPS and UEFI, I suggest to search for UEFI keyword on this blog : you will find tutorials to deal with it.

  13. hello ! I’m waitting.Can someone please?

  14. I know TPS wont work with other DHCP server now, thank you very much.I will found other anwer in the blog.

  15. Is there simple example about install Win 7 with ipxe?

  16. Hi guys,
    thanks to this tut, i was at least able to « kind of » boot into WinPE.

    I did THIS:

    Plugged in USB Windows 8.1 x64 key in PC
    -Ran QuickPE
    -Selected option 7 (x64 from DVD)
    -Gave him the path to my USB key
    -Result = ok
    -I make a folder called D:\EFI\WinPE
    -I copied the content of the « AMD64\ISO » folder created by quick PE into it.
    -I copied the bootx64.efi from my USB \EFI\BOOT\ folder into the D:\EFI\WinPE\ root.
    -I coped the FONTS folder from my USB \EFI\MICROSOFT\BOOT\ into a new folder in D:\EFI\WinPE\EFI\MICROSOFT\BOOT\

    My file structure:
    D:\EFI\WinPE\bootx64.efi
    D:\EFI\WinPE\boot\BCD
    D:\EFI\WinPE\boot\BOOT.SDI
    D:\EFI\WinPE\EFI\MICROSOFT\BOOT\FONTS\
    D:\EFI\WinPE\SOURCE\boot.wim

    with no errors so far.
    My TFTP-Server runs on a Synology DS414j NAS, my DHCP Server on my router with DD-WRT.

    Well, my network setup seems fine, since i can PXE-Boot everything in BIOS-Mode.

    But i am having troubles with PXE-Boot Windows 8.1 install in UEFI.

    My Computer boots fine into PXE and receives the image, but then i get a Bootmanager error, which tells me, my \Boot\BCD is corrupted, error code 0xc000000f.

    I used QuickPE, as described above with option 7 from a windows 8.1 USB-Stick.
    Can anyone help me with my issue?

    Thanks a lot,

    Mosha

    • If the BCD is the issue (but i dont believe so), you can read this article to create a bcd from scratch.
      Before regenerating a BCD, please display the content here with : bcdedit /store path\bcd.

      What is your tftp root folder : D:\EFI\WinPE right?
      Display TinyPXE Server log here.

      Make sure you use latest quickpe which is UEFI compatible – option 7 should display « Make WINRE from dvd x64 (UEFI ok) » .

  17. Hi, thanks for your reply.
    This is my BCD, which is quite interesting, since it points to winload.exe instead of winload.efi…


    Windows-Start-Manager
    ---------------------
    Bezeichner {bootmgr}
    description Windows Boot Manager
    locale en-US
    inherit {globalsettings}
    default {default}
    displayorder {default}
    toolsdisplayorder {memdiag}
    timeout 30

    Windows-Startladeprogramm
    -------------------------
    Bezeichner {default}
    device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
    path \windows\system32\boot\winload.exe
    description Windows Setup
    locale en-US
    inherit {bootloadersettings}
    osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
    systemroot \windows
    bootmenupolicy Standard
    detecthal Yes
    winpe Yes
    ems No

    I used the newest QuickPE to crate the WinRE.
    Also, i am not using the TinePXE server, because my TFTP-Server runs on my NAS. But i think, network settings should all be fine, because i can install via PXE on my other computer in BIOS-Mode.

    My root-folder actually is //server/PXE/ but all the subfolders are the same.

    I still think, there is some issue with my BCD and i can not explain, why my BCD points to winload.exe

    • for uefi, get your bcd from your windows dvd here : x:\efi\microsoft\boot.
      then run bcdedit again once extracted to your harddrive to be sure it points to winload.efi.

      your current bcd cannot boot on a uefi computer.

  18. Hello
    you know why this does not not work on a Synology DS414 (everything is tested and functional with the Tiny server)

  19. Bonjour,

    J’ai un environnement PXE sur BIOS Legacy qui fonctionne parfaitement.
    Je viens de télécharger votre logiciel et j’ai inséré celui-ci dans mon PXE.
    Le boot se passe correctement, il charge l’image wim que j’ai fabriqué via win builder project : win8pe_se.
    Par contre au moment de lancer l’image après l’avoir téléchargé, le PC me stipule une erreur que je n’ai pas le temps de lire et reboot.

    Une idée?

    • il me faudrait voir le script pxe.

      • Bonjour,

        Problème résolu, j’ai utilisé une version en 8.1 et implanter les fichiers du DVD 8.1 avec juste la modification de la bcd

        D’ailleurs il faut penser à mettre le winload.efi à la place de winload.exe dans la BCD et j’ai mis également sur {default} au lieu de {bootmgr} « bcdedit.exe /store my.bcd /set {bootmgr} nointegritychecks yes » sinon ça ne boot pas.

        Donc les lignes à mettre :
        bcdedit.exe /store my.bcd /set {bootmgr} nointegritychecks yes (je l’ai fais au cas où)
        bcdedit.exe /store my.bcd /set {default} nointegritychecks yes
        bcdedit.exe /store my.bcd /set {default} path \windows\system32\boot\winload.efi

        Merci encore super project et réactivité.

  20. Bonjour,

    Pourquoi ces erreurs dans les logs.

    12:51:11 ROOT=D:\PXE\pxesrv\
    12:51:11 DHCPd:67 started…
    12:51:11 TFPTd started…
    12:51:11 httpd error, Socket Error # 10013
    Access denied.
    12:51:11 SMB failed: 0
    12:51:18 DHCPd:DISCOVER received, MAC:8C-DC-D4-89-5A-3B, XID:F65312B9
    12:51:19 DHCPd:OFFER sent, IP:192.168.1.100, XID:F65312B9
    12:51:21 DHCPd:REQUEST received, MAC:8C-DC-D4-89-5A-3B, XID:F65312B9
    12:51:22 DHCPd:ACK sent, IP:192.168.1.100, XID:F65312B9
    12:51:22 TFTPd:DoReadFile:bootx64.efi B:1468 T:0
    12:51:22 TFTPd:OpenError:Cannot open file « D:\PXE\pxesrv\BCD ». Le fichier spécifié est introuvable
    12:51:22 TFTPd:DoReadFile:\Boot\BCD B:0 T:28672
    12:51:22 TFTPd:DoReadFile:\Boot\BCD B:1456 T:28672
    12:51:22 TFTPd:OpenError:Cannot open file « D:\PXE\pxesrv\en-US\bootx64.efi.MUI ». Le chemin d’accès spécifié est introuvable
    12:51:22 TFTPd:DoReadFile:\bootx64.efi B:0 T:1605976
    12:51:22 TFTPd:DoReadFile:\bootx64.efi B:1456 T:1605976
    12:51:23 TFTPd:OpenError:Cannot open file « D:\PXE\pxesrv\EFI\Microsoft\Boot\boot.stl ». Le fichier spécifié est introuvable
    12:51:23 TFTPd:DoReadFile:\EFI\Microsoft\Boot\Fonts\wgl4_boot.ttf B:0 T:47452
    12:51:23 TFTPd:DoReadFile:\EFI\Microsoft\Boot\Fonts\wgl4_boot.ttf B:1456 T:47452
    12:51:25 TFTPd:DoReadFile:\images\8pe64.wim B:0 T:390449341
    12:51:25 TFTPd:DoReadFile:\Boot\boot.sdi B:0 T:3170304
    12:51:25 TFTPd:DoReadFile:\boot\boot.sdi B:1456 T:3170304
    12:51:27 TFTPd:DoReadFile:\images\8pe64.wim B:1456 T:390449341
    12:53:05 DHCPd:REQUEST received, MAC:00-0C-29-C6-FA-23, XID:927ADF32
    12:53:05 DHCPd:ACK sent, IP:192.168.1.100, XID:927ADF32
    12:53:05 DHCPd:DISCOVER received, MAC:00-0C-29-C6-FA-23, XID:ADF9104D
    12:53:05 DHCPd:OFFER sent, IP:192.168.1.100, XID:ADF9104D
    12:53:05 DHCPd:REQUEST received, MAC:00-0C-29-C6-FA-23, XID:ADF9104D
    12:53:06 DHCPd:ACK sent, IP:192.168.1.100, XID:ADF9104D
    12:53:06 DHCPd:DECLINE received, MAC:00-0C-29-C6-FA-23, XID:ADF9104D
    12:53:16 DHCPd:DISCOVER received, MAC:00-0C-29-C6-FA-23, XID:D95A3083
    12:53:17 DHCPd:OFFER sent, IP:192.168.1.100, XID:D95A3083
    12:53:17 DHCPd:REQUEST received, MAC:00-0C-29-C6-FA-23, XID:D95A3083
    12:53:17 DHCPd:ACK sent, IP:192.168.1.100, XID:D95A3083
    12:53:21 DHCPd:INFORM received, MAC:00-0C-29-C6-FA-23, XID:A05CA480
    12:53:56 DHCPd:INFORM received, MAC:8C-89-A5-00-C5-6B, XID:690A8B8D

    On sait que les fichiers n’y sont pas, les avez vous mis pour voir ce que cela faisait?

    • tout d’abord je vois des access denied (smb, http…) : il serait mieux de tourner en mode admin.

      concernant les fichiers manquants, ce n’est pas grave : certains fichiers sont optionnels, si windows les trouvent (comme les fontes par ex), tant mieux il fait avec, sinon il passe son chemin et boot.
      je n’ai jamais rencontré le fichier boot.stl …

  21. Bonjour,

    Je viens de trouver ces fameux fichiers (construire plutôt), je n’ai pas encore testé mais si ça vous intéresse, je vous envoie un ZIP de 9MO comprenant tout le boot complet.

    Le .stl est un certificat à priori.

  22. I’m trying to boot winpe over pxe efi
    the following boot method works but it took 4 minutes to complete booting winpe
    transfering the boot.wim file over tftp is very slow here
    pxe->bootx64.efi (from windows install dvd)->bcd (pointing to winload.efi)->boot.wim (x64 only)

    on legacy mode with the following method it tooks only 20 seconds
    pxe->pxeboot.n12 (from windows install dvd)-> bootmgr.exe -> bcd (pointing to winload.exe) -> boot.wim

    so i tried ipxe on legacy with the following config
    pxe->undionly.kpxe -> boot.ipxe -> load wimboot -> boot.wim
    ipxe loads the boot.wim over http in a few seconds. wimboot executes the wim file and boot works

    So the wimboot module can also execute on efi machines. But i don’t know how it works

    the topic said
    PXE-> IPXE.efi ->MS Bootx64.efi ->BCD (winload.efi) ->Boot.wim (x64).
    but how do i get the ipxe.efi. i can’t download it on http://ipxe.org/
    does ipxe work with wimboot in efi. can i download the boot.wim via http in uefi for fast boot?
    can someone post infos how it works with config files?

  23. Hello everybody,

    i have found the place where to create customized ipxe binaries
    Look at https://rom-o-matic.eu/

    Unfortunately the binaries are not signed so you
    can’t use ipxe if you have uefi with secure boot on.
    All Systems that are shipped with Windows 8 have this
    option enabled and I don’t have the authority to disable this
    function.
    Does anybody know why booting winpe with the following method
    takes 5 minutes?
    pxe->bootx64.efi (from windows install dvd)->bcd (pointing to winload.efi)->boot.wim (x64 only)

    • using this method you are stuck to UDP hence slow transfers.
      if you need speed, ipxe thru http is the answer.
      but as you mentionned, ipxe is not signed (and i dont know how to sign it).

  24. I have found a solution for the following boot method:
    pxe->bootx64.efi (from windows install dvd)->bcd (pointing to winload.efi)->boot.wim

    I have found a solution to decrease the boot time from 5 minutes to 8 seconds. that’s amazing.
    you can increase the ramdisktftpblocksize in the BCD file. So the clients load faster.
    see the following url for description
    https://technet.microsoft.com/en-us/library/cc731245%28WS.10%29.aspx#BKMK_11

    the following command does the trick
    bcdedit /store c:\yourpathtobcd\bcd /set {INSERT_RAMDISK_GUID} ramdisktftpblocksize 65536
    Microsoft recommend not to increase the value higher than 16384
    I used a value of 65536 without problems.

    The good point is that you can enable secure boot in this scenario 😉

  25. Hello,

    When i try it i have this :

    C:\Program Files\Windows AIK\Tools\PETools>bcdedit /store D:\PXE\pxesrv\boot\BCD
    /set {46018861-a536-11e4-b805-000c29269430} ramdisktftpblocksize 16384
    The element data type specified is not recognized, or does not apply to the
    specified entry.
    Run « bcdedit /? » for command line assistance.
    Élément introuvable.

    an idea?

  26. For me i test and i put this :

    ramdisktftpblocksize 32768
    ramdisktftpwindowsize 8 (new option) :p

    And i load a WIM (372 MO) in 18 sec

    • bcdedit command line :

      Bcdedit /store %BCD-File% /create {ramdiskoptions}
      Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisktftpblocksize 16384
      Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisktftpwindowsize 8

  27. […] a post from 2014 about booting Winpe over PXE on a UEFI computer, see below a different way to […]

  28. Hello,
    i’ve tried « Boot WINPE over PXE on a UEFI computer » with Windows 10 files.

    The PXE-client found/get the Boot-Manager bootx64.efi, but then failed with the following message:

    File: \Boot\BCD
    Status: 0xc0000001
    Info: The boot configuration data for your PC is missing or contains errors.

    I’ve tried everthing, folder boot or BOOT or Boot same with BCD.
    I take the BCD für efi-Boot, so I think the configuration is right.

    The BCD-file is not found, I think that the path \Boot\BCD in the folder tftpboot is not found.

    If you or anyone have a tip, I’m very happy.

    thanks

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.