Jump to content











Photo
- - - - -

[Solved] UEFI PXE --> iPXE.efi --> wimboot WinPE W10 1607 error 0xc000000f


Best Answer misty , 12 February 2017 - 07:28 AM

@sebus
In uefi mode, wimboot does not appear to tolerate files with different than expected being mapped. It is expecting boot.wim and the original file being mapped as boot.wim must also be named boot.wim.

E.g.

initrd http://10.0.0.55/wim/wim/Win10PESE_x64.WIM BOOT.WIM
.
Will not work. However...
initrd http://10.0.0.55/wim/wim/Win10PESE_x64/BOOT.WIM BOOT.WIM
.
....should work fine.

Give it a go and feedback.

Regards,

Misty

EDIT - this needs further experimentation. My own UEFI system appears to have poorly implemented UEFI - e.g. no firmware support for network boot unless CSM is enabled.

I can't remember whether a wim file not using the default/standard boot.wim naming convention worked at all - even when the BCD store specified the different name. Hope this makes sense. Go to the full post


  • Please log in to reply
48 replies to this topic

#1 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 10 February 2017 - 12:11 PM

I have been doing wimboot via legacy PXE for years

 

Now I need to move to UEFI, so the whole lot gets re-designed

 

So created new EFI BCD

#Create a BCD store using bcdedit.exe:

bcdedit /createstore e:\BCD

#Configure RAMDISK settings:

bcdedit /store e:\BCD /create {ramdiskoptions} /d "Ramdisk options"
bcdedit /store e:\BCD /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store e:\BCD /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
bcdedit /store e:\BCD /create /d "WinPE boot image" /application osloader

#The last command will return a GUID, for example:

#The entry {cd4acce3-ef87-11e6-ada6-f8b156ae2ab6} was successfully created.

#Copy this GUID for use in the next set of commands. In each command shown, replace "GUID1" with your GUID.

#Create a new boot application entry for the Windows PE image:

bcdedit /store e:\BCD /set {GUID1} device ramdisk=[boot]\sources\boot.wim,{ramdiskoptions} 
bcdedit /store e:\BCD /set {GUID1} path \windows\system32\winload.efi 
bcdedit /store e:\BCD /set {GUID1} osdevice ramdisk=[boot]\sources\boot.wim,{ramdiskoptions} 
bcdedit /store e:\BCD /set {GUID1} systemroot \windows
bcdedit /store e:\BCD /set {GUID1} detecthal Yes
bcdedit /store e:\BCD /set {GUID1} winpe Yes

#Configure BOOTMGR settings (remember to replace GUID1 in the third command with your GUID):

bcdedit /store e:\BCD /create {bootmgr} /d "Windows Boot Manager"
bcdedit /store e:\BCD /set {bootmgr} nointegritychecks yes
bcdedit /store e:\BCD /set {bootmgr} timeout 20 
bcdedit /store e:\BCD -displayorder {GUID1} -addlast

UEFI PXE IPv4 boots fine to iPXE menu, all wimboot-2.5.2-signed files get downloaded:

#!ipxe
kernel http://10.0.0.55/wim/BOOT/wimboot252 gui
initrd http://10.0.0.55/wim/boot/fonts/segmono_boot.ttf segmono_boot.ttf
initrd http://10.0.0.55/wim/boot/fonts/segoe_slboot.ttf segoe_slboot.ttf
initrd http://10.0.0.55/wim/boot/fonts/segoen_slboot.ttf segoen_slboot.ttf
initrd http://10.0.0.55/wim/boot/fonts/wgl4_boot.ttf wgl4_boot.ttf
initrd http://10.0.0.55/wim/BOOT/bootmgr.efi bootmgr.efi
initrd -n BCD http://10.0.0.55/wim/EFI/Microsoft/Boot/BCD BCD
initrd http://10.0.0.55/wim/BOOT/BOOT.SDI BOOT.SDI
initrd http://10.0.0.55/wim/wim/Win10PESE_x64.WIM BOOT.WIM
boot

at which point it dies with error EFI\Microsoft\Boot\BCD 0xc000000f

 

Obviously the BCD is there (downloaded), so have no idea why it fails

 

Not much help at http://ipxe.org/appn...ot_architecture

 

sebus



#2 nguyentu

nguyentu

    Frequent Member

  • Advanced user
  • 102 posts
  •  
    Vietnam

Posted 10 February 2017 - 12:24 PM

I think wimboot will not work in UEFI mode. But I have had success with this method http://labalec.fr/erwan/?p=791



#3 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 10 February 2017 - 01:24 PM

That was my reference starting point!

 

But that post is from

Jan 12 2014

 

I see nothing anywhere which states that wimboot (current version)  does not  work with UEFI

 

sebus



#4 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 02:12 PM

Wimboot work in UEFI mode, ie it loads the wim file etc but I get the same windows error : 0xc000000f .

 

My ipxe script.

#!ipxe
set boot-url http://${dhcp-server}
  kernel ${boot-url}/wimboot
  #initrd ${boot-url}/BOOTMGR          BOOTMGR
  initrd ${boot-url}/bootmgfw.efi	bootmgfw.efi
  #initrd ${boot-url}/BOOT/BCD         BCD
  initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/BOOT.WIM BOOT.WIM
  boot


#5 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 02:14 PM

Edit : issue gone, solution is below.

 

FYI the solution was already in my original post from 2014 ;)

 

New blog article here.

bcdedit.exe /store BCD /set {bootmgr} nointegritychecks yes


#6 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 02:27 PM

I already HAVE that (simply did not correct the original posting)

 

Makes NO difference at all, it crashes each & every time

 

sebus



#7 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 02:29 PM

I already HAVE that (simply did not correct the original posting)

 

Makes NO difference at all, it crashes each & every time

 

sebus

 

Well I remember the original discussion :

-before modifying my bcd, I systematically get that error.

-after modifying my bcd, issue is gone.

 

I can boot winpe thru wimboot all fine with that method.

Read my latest article, follow it precisely and report back.



#8 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 02:32 PM

look at the original thread here.



#9 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 02:33 PM

you also need to disable secureboot or else you'll need to use a signed GRUB2 as there are no such things today as a signed IPXE.



#10 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 03:00 PM

I wish it was that simple...

I do NOT use Secure Boot

 

I am doing my testing on Hyper-V VM Gen2 AND on physical Dell Optiplex 3040 (just to make sure both behave the same, and sadly they do!)

Windows Boot Manager
--------------------
identifier              {bootmgr}
description             boot manager
nointegritychecks       Yes
displayorder            {cd4acce3-ef87-11e6-ada6-f8b156ae2ab6}
timeout                 20

Windows Boot Loader
-------------------
identifier              {cd4acce3-ef87-11e6-ada6-f8b156ae2ab6}
device                  ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
path                    \windows\system32\winload.efi
description             WinPE boot image
osdevice                ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
systemroot              \windows
detecthal               Yes
winpe                   Yes
testsigning             Yes

Setup Ramdisk Options
---------------------
identifier              {ramdiskoptions}
description             Ramdisk options
ramdisksdidevice        boot
ramdisksdipath          \boot\boot.sdi


#11 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 03:00 PM

Also I would recommend to use a original BCD with nointegritychecks modified to yes



#12 nguyentu

nguyentu

    Frequent Member

  • Advanced user
  • 102 posts
  •  
    Vietnam

Posted 11 February 2017 - 03:27 PM

@erwan.l

I got 0xc000000f too, your old methods work so well, why not?

 

Wm3YLOx.png



#13 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 03:31 PM

Also I would recommend to use a original BCD with nointegritychecks modified to yes

And this is what I am using, even with TESTSIGNING ON as well

 

That is Win 10 1511/1607 PE



#14 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 03:53 PM

@erwan.l
I got 0xc000000f too, [/size]your old methods work so well, why not?
 
Wm3YLOx.png


Previous method used a signed boot loader

#15 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 04:15 PM

Do we say that wimoot in practice does not work with UEFI?

 

Erwan's previous method seems to use tftp:// which I want to avoid & use http:// (hence wimboot)

 

sebus



#16 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 04:27 PM

Do we say that wimoot in practice does not work with UEFI?
 
Erwan's previous method seems to use tftp:// which I want to avoid & use http:// (hence wimboot)
 
sebus


Wimboot works in uefi mode.
I was merely outlining the main différence between both methods.

#17 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 04:28 PM

Silly question : you are using a x64 winpe right ?

#18 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 04:41 PM

Yes, of course x64 (that is the only architecture I use for anything these days)

initrd http://10.0.0.55/wim/wim/Win10PESE_x64.WIM BOOT.WIM

Well, wimboot does not seem to work (I do not classify error 0xc000000f during boot of WinPE as "working")



#19 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 05:00 PM

I am using a lenovo x240 in uefi mode with secureboot off.
I am using win 8.1u1 x64.
Latest ipxe and latest wimboot.

Boots all fine.

Could you be doing something wrong on your side ?

#20 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 05:27 PM

Yes, as already stated, Windows 10 1511/1607

 

Also latest wimboot & clean build of ipxe from 2 days ago

 

There must be something different than old Win 8

 

Could you test Windows 10 please?



#21 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 06:28 PM

now using :

 

lenovo x240 in uefi mode with secureboot off. 
win 10.0.14393 x64. 
Latest ipxe and latest wimboot. 

Still boots all fine. 



#22 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 07:14 PM

Great, you must be special then.

 

But as to me, I have build ipxe from source (obviously it works, as it boot just fine, so can not be the issue), and use latest wimboot.

I have tried various .wim files. The only can be bcd itself (unlikely?)

 

Would you share the bcd file then?

 

It must be something, as nguyentu got the same error

 

sebus



#23 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 07:40 PM

my bcd file.

 

 

Attached Files

  • Attached File  BCD.zip   5.46KB   699 downloads


#24 sebus

sebus

    Frequent Member

  • Advanced user
  • 363 posts

Posted 11 February 2017 - 07:51 PM

Thanks, same error 0xc000000f

 

sebus



#25 erwan.l

erwan.l

    Platinum Member

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

Posted 11 February 2017 - 08:06 PM

Thanks, same error 0xc000000f

 

sebus

 

You need to provide more details about your setup, log files, screenshot, etc ...

We are troubleshooting in the dark right now hence not going very far.

 

The previous process was : PXE->bootx64.efi ->bcd (pointing to winload.efi)->boot.wim (x64).

The new process is : PXE-> IPXEx64.efi ->wimboot ->bootmgfw.efi -> BCD (pointing to winload.efi) ->Boot.wim (x64).

 

If you previously managed it, with the same platform, you should be succeeding with this new process (using the same winpe).

 

I suggest you start from scratch in a clean folder, using TPS, using IPXE and wimboot from tps.zip and putting only windows files you need to support the below script.

#!ipxe
set boot-url http://${dhcp-server}
  kernel ${boot-url}/wimboot
  initrd ${boot-url}/bootmgfw.efi	bootmgfw.efi
  initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/BOOT.WIM BOOT.WIM
  boot





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users