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

77
Poster un Commentaire

avatar
27 Fils de commentaires
50 Réponses de fil
0 Abonnés
 
Commentaire avec le plus de réactions
Le plus populaire des commentaires
15 Auteurs du commentaire
Boot WINPE over PXE on a UEFI computer #2 – Erwan's BlogadminGoingoinGeorgGoingoin Auteurs de commentaires récents
  S’abonner  
plus récent plus ancien
Notifier de
Dylan
Invité
Dylan

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.

ilovepxe
Invité
ilovepxe

How to use dhcp 252
show an example

Brian
Invité
Brian

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.

Brian
Invité
Brian

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

Florian
Invité
Florian

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… Lire la suite »

Knaxia
Invité
Knaxia

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… Lire la suite »

Knaxia
Invité
Knaxia

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

Knaxia
Invité
Knaxia

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)

cckp
Invité
cckp

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

cckp
Invité
cckp

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… Lire la suite »

Jüri
Invité
Jüri

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… Lire la suite »

Jüri
Invité
Jüri

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

Jüri
Invité
Jüri

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!

Jüri
Invité
Jüri

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!

Jüri
Invité
Jüri

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 🙂

pang
Invité
pang

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… Lire la suite »

pang
Invité
pang

hello ! I’m waitting.Can someone please?

pang
Invité
pang

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

bg
Invité
bg

Is there simple example about install Win 7 with ipxe?

Mosha
Invité
Mosha

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… Lire la suite »

Mosha
Invité
Mosha

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… Lire la suite »

logProd
Invité
logProd

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

Goingoin
Invité
Goingoin

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?

Goingoin
Invité
Goingoin

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… Lire la suite »

Goingoin
Invité
Goingoin

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.

Georg
Invité
Georg

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… Lire la suite »

Georg
Invité
Georg

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)

Georg
Invité
Georg

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 😉

Goingoin
Invité
Goingoin

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?

Goingoin
Invité
Goingoin

Windows 2008 R2 + AIK

Goingoin
Invité
Goingoin

OK i solve problem
This option put into GUID ramdisk for me
It’s very cool thx

Goingoin
Invité
Goingoin

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

trackback

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