Jump to content











Photo

iPXE, WImboot and multi platform (pcbios/efi/i386/x86_64)

ipxe wimboot pcbios efi

  • Please log in to reply
4 replies to this topic

#1 erwan.l

erwan.l

    Gold Member

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

Posted 2 weeks ago

Sharing a iPXE script (using wimboot) I am using these days along with Tiny PXE Server to boot winpe over the network on multiple platform : pcbios i386, pcbios x86_64, efi i386, efi x86_64.

 

Tiny PXE Server is serving by default pcbios ipxe.pxe and also, depending on the client architecture, serving the matching ipxe efi version.

 

See below my config.ini and a custom wimboot.ipxe script.

[dhcp]
proxydhcp=1
httpd=1
bind=1
root=\files
filename=ipxe.pxe
altfilename=wimboot.ipxe
[arch] 
00006=ipxe-i386.efi 
00007=ipxe-x86_64.efi 
00009=ipxe-x86_64.efi
#!ipxe
#more about wimboot tips and tricks : http://ipxe.org/wimboot
set boot-url http://${dhcp-server}
#note : we are not going to use cpuid/arch
cpuid --ext 29 && set arch x64 || set arch x86
echo ${arch}
echo ${platform}_${buildarch}
goto ${platform}_${buildarch} || goto unknown
  :pcbios_x86_64
  kernel ${boot-url}/wimboot
  initrd ${boot-url}/BOOTMGR.EXE  bootmgr.exe
  initrd ${boot-url}/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/x64/BOOT.WIM BOOT.WIM
  boot
  :pcbios_i386
  kernel ${boot-url}/wimboot
  initrd ${boot-url}/BOOTMGR.EXE  bootmgr.exe
  initrd ${boot-url}/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/x86/BOOT.WIM BOOT.WIM
  boot
  :efi_x86_64
  kernel ${boot-url}/wimboot
  initrd ${boot-url}/bootx64.efi	bootx64.efi
  initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/x64/BOOT.WIM BOOT.WIM
  boot  
  :efi_i386
  kernel ${boot-url}/wimboot.i386
  initrd ${boot-url}/bootia32.efi	bootia32.efi
  initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD         BCD
  initrd ${boot-url}/BOOT/BOOT.SDI    BOOT.SDI
  initrd ${boot-url}/SOURCES/x86/BOOT.WIM BOOT.WIM
  boot    
 :unknown
 echo Unknown platform ${platform}_${buildarch}


  • nguyentu likes this

#2 nguyentu

nguyentu

    Member

  • Members
  • 83 posts
  •  
    Vietnam

Posted 2 weeks ago

Thanks but I failed to boot WinPE 32-bit in UEFI 32-bit mode.
 
From the answer here, I think we need to compile a 32-bit wimboot. But I do not know how to compile it. Can you help me compile it?
 

 

If your EFI is 32 bit than you must also run 32-bit efi version of wimboot.

 

 

  • erwan.l likes this

#3 erwan.l

erwan.l

    Gold Member

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

Posted 2 weeks ago

 

Thanks but I failed to boot WinPE 32-bit in UEFI 32-bit mode.
 
From the answer here, I think we need to compile a 32-bit wimboot. But I do not know how to compile it. Can you help me compile it?
 

 

 

 

 

Good catch !

 

I have corrected the first post to reflect on wimboot.i386.

Wimboot.i386 is now also in pxesrv.zip


  • nguyentu likes this

#4 erwan.l

erwan.l

    Gold Member

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

Posted 2 weeks ago

Not entirely related to wimboot over different platforms, but since latest wimboot version (2.6.0), you can inject files in the wim file on the fly.

 

You can provide additional files to wimboot. These files will appear within the X:\Windows\System32 directory. For example:

kernel wimboot
initrd winpeshl.ini winpeshl.ini
initrd startup.bat startup.bat

initrd boot/bcd BCD
initrd boot/boot.sdi boot.sdi
initrd sources/boot.wim boot.wim
boot

You can use this to control the boot process after Windows PE has started. For example, you can use a startup batch file to automatically start the Windows installer from a network share.



#5 nguyentu

nguyentu

    Member

  • Members
  • 83 posts
  •  
    Vietnam

Posted 2 weeks ago

Good catch !

 

I have corrected the first post to reflect on wimboot.i386.

Wimboot.i386 is now also in pxesrv.zip

I do not look at the src directory because I think it's just source code.
Thank you!





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users