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
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
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
How to use dhcp 252
show an example
note that option 252 is optional.
however you can decide to use it to point to another BCD file.
see screenshot here
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.
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
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
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
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
Thanks for sharing.
You mention wimboot, do you mean booting wim files or the actual wimboot module (http://ipxe.org/wimboot) ?
cheers it’s ipxe wimboot 2.2.4
ok, good to know thanks !
repository here : https://git.ipxe.org/release/wimboot/
and here’s my tested demo script:
set base http://user:pass@${next-server}
set base ftp://user:pass@${next-server}
kernel ${base}/wimboot pause
initrd ${base}/bootx64.efi
initrd –name bcd ${base}/boot/bcdefi
initrd ${base}/boot/boot.sdi
initrd ${base}/sources/boot.WIM
imgstat
boot
excellent, thanks for sharing.
the wimboot binary : is it the same for BIOS and UEFI? I would say no but you probably have the answer.
note that you could probably use the arch variable to make your script « universal » i.e work on bios and uefi.
same wimboot for efi and bios.
can use iPXE script for « universal » for bios and uefi.
like this:
—————–
iseq ${platform} efi && goto efi ||
initrd ${base}/bootmgr.exe
initrd ${base}/boot/bcf
goto next
:efi
initrd ${base}/bootx64.efi
initrd –name bcg ${base}/boot/bca
:next
initrd ${base}/boot/boot.sdi
initrd ${base}/sources/boot.WIM
imgstat
boot
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
very good.
see here for TinyPXE Server and the arch variable : http://labalec.fr/erwan/?p=1430 .
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! 😉
tick « bind ip » and « proxy dhcp » and re try please.
also, put verbose=0 under [dhcp] in the config.ini.
last but not least, not sure about the cross over cable…
Thanks! Got it working!
Or maybe should I try this with Windows 8? It’s gonna take too long to get the dvd or iso though…
i dont think the windows version is the issue. any should do.
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 🙂
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.
hello ! I’m waitting.Can someone please?
patience 🙂
see previous answer.
I know TPS wont work with other DHCP server now, thank you very much.I will found other anwer in the blog.
Is there simple example about install Win 7 with ipxe?
simple i dont know 🙂
but you have a how to there.
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) » .
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.
Hello
you know why this does not not work on a Synology DS414 (everything is tested and functional with the Tiny server)
what part do you want to run on the synology?
the tftp? the pxe? the dhcp?
everyone’s
my files for PXE UEFI BOOT are ok with tiny server
On the DS414 with same Path and same files i have error 0xc00000225
(tftp , dhcp verified and ok)
(PXE for MBR boot is ok)
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é.
Re-bonjour,
Dernière question : Avez vous réussi à booter un 8.1 PE 32 bits? via bootx64.efi ou alors faut-il utiliser le bootia32.efi?
oui j’ai un winpe 8.1 32 bits.
par contre je n’ai pas essayé en UEFI (rares sont les machiens UEFI 32 bits).
Merci pour ce retour et ce partage d’informations !
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 …
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.
Merci pour retour.
Je prends, ca peut toujours servir !
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?
There is a ipxe-snponly.efi on the zip file : did you try it?
I did not try yet it but yes : pxe->ipxe(efi)->wimboot(efi)->boot.wim(x64) should work.
thanks for answer
I downloaded the following files
http://boot.ipxe.org/undionly.kpxe
http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
in the zip file there isn’t the necessary file.
in pxesrv.zip, in the files folder, you’ll find ipxe and wimboot.
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).
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 😉
which tftp server did you use?
the one from tiny pxe server?
I have used tftp-hpa (Linux) and tiny pxe (Windows 7) without modification in
the bcd file.
Both methods boots very slow. As i mentioned 5 minutes.
I have tested the option ramdisktftpblocksize in the bcd file only on tftp-hpa without
modification on the server side.
ok.
i am not sure TPS will support ramdisktftpblocksize
I have tested tiny pxe server now and it works, too.
my value doesn’t work with it, but a value of 16384 works fine for me and load the wim file
in 20 seconds.
ah, very nice to know !
thanks for this, much appreciated 🙂
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?
Windows 2008 R2 + AIK
OK i solve problem
This option put into GUID ramdisk for me
It’s very cool thx
Thanks the feedback !
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
[…] a post from 2014 about booting Winpe over PXE on a UEFI computer, see below a different way to […]
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