2018-12-29, 09:26
Upfront I realize I'm pushing iPXE beyond what it was probably intended for.
Primary goals:
1) pc bios + 64-bit EFI boot flash drive, all the files are on the drive
2) Use wimboot to boot .wim files
Secondary goal: Use iPXE to make sharing menu items between my flash drive and PXE boot setup much smoother.
Following this somewhat:
http://forum.ipxe.org/showthread.php?tid=8132
I took a flash drive in Linux.
Then in fdisk I created a new partition, made it primary, set the fs type to 0c.
I marked the partition as bootable which may have been a mistake.
Went over and created EFI/boot and put my ipxe.efi in there, but named bootx64.efi.
My small boot menu(boot.ipxe)
My ipxe binaries are compiled with
In BIOS mode when I boot the flash drive I get
On the EFI side I have fared much better. It boots, the menu loads, it loads wimboot and the four required files. When I get to the boot line it errors out with 2c048087 . At the very bottom of the page for that, it says iPXE must have an open network interface to boot.
My test laptop and many others don't have a wired ethernet to bring up. I searched a bit, but is there a localhost interface I can bring up?
Should I scrap the whole thing and make the flash drive with grub2 and wimboot?
I do really enjoy being able to patch in files to the wim at boot time, instead of having to mount the wim and put all the files inside.
Creative suggestions are appreciated. Thanks in advance.
Ah, this may also be helpful.
The PC with the Linux VM is put away, so I used fdisk on a Mac just for this output.[/code]
Primary goals:
1) pc bios + 64-bit EFI boot flash drive, all the files are on the drive
2) Use wimboot to boot .wim files
Secondary goal: Use iPXE to make sharing menu items between my flash drive and PXE boot setup much smoother.
Following this somewhat:
http://forum.ipxe.org/showthread.php?tid=8132
I took a flash drive in Linux.
Code:
cat ipxe.usb > /dev/sdb
I marked the partition as bootable which may have been a mistake.
Went over and created EFI/boot and put my ipxe.efi in there, but named bootx64.efi.
My small boot menu(boot.ipxe)
Code:
#!ipxe
set menu-timeout 5000
set submenu-timeout ${menu-timeout}
isset ${menu-default} || set menu-default exit
console --x 1024 --y 768
:start
menu Doing menu things
item WinRE Win 10 RE
item shell Shell
item reboot Reboot
choose --default exit --timeout 60000 target && goto ${target}
:reboot
reboot
:shell
echo Type exit to get back to the menu
shell
set menu-timeout 0
goto start
:WinRE
imgfree
kernel file:/wimboot pause
imgfetch --name bootmgr file:/bootmgr bootmgr
imgfetch --name BCD file:/BCD BCD
imgfetch --name boot.sdi file:/boot.sdi boot.sdi
imgfetch --name boot.wim file:/boot.original.wim boot.wim
imgstat
prompt || read void
boot || prompt Something can you read above && goto start
My ipxe binaries are compiled with
Code:
#!ipxe
chain file:/boot.ipxe
In BIOS mode when I boot the flash drive I get
Quote:This is not a bootable disk. Please insert a bootable floppy and press any key to try again ...
On the EFI side I have fared much better. It boots, the menu loads, it loads wimboot and the four required files. When I get to the boot line it errors out with 2c048087 . At the very bottom of the page for that, it says iPXE must have an open network interface to boot.
My test laptop and many others don't have a wired ethernet to bring up. I searched a bit, but is there a localhost interface I can bring up?
Should I scrap the whole thing and make the flash drive with grub2 and wimboot?
I do really enjoy being able to patch in files to the wim at boot time, instead of having to mount the wim and put all the files inside.
Creative suggestions are appreciated. Thanks in advance.
Ah, this may also be helpful.
Code:
Dunstin:~ phoenix$ sudo fdisk /dev/rdisk2
Disk: /dev/rdisk2 geometry: 962/255/63 [15466496 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*1: 0C 3 0 1 - 383 63 32 [ 6144 - 15460352] Win95 FAT32L
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: E0 0 1 1 - 0 63 32 [ 32 - 2016] <Unknown ID>
*4: EB 1 0 1 - 2 63 32 [ 2048 - 4096] BeOS/i386
The PC with the Linux VM is put away, so I used fdisk on a Mac just for this output.[/code]