2016-06-30, 04:47
Hi there,
I am trying to boot.wim file using GRUB2 EFI + wimboot.
The boot.wim file is extracted from Windows installation .ISO
Before that I successfully boot boot.wim file using iPXE in both BIOS and EFI mode.
Here is my script code:
iPXE BIOS
iPXE EFI
Then I converted the above code to use only GRUB2 and wimboot (without iPXE):
It boot fine in BIOS mode and show the same screenplay as it was in iPXE BIOS case. But in EFI mode, I only got black screen and never get into the setup menu.
Since the screen was black, I did not get any notifications that wimboot is in EFI mode (In EFI mode, wimboot uses BOOTx64.efi instead of bootmgr.exe). So my questions are:
1. How to ensure that wimboot get into EFI mode? Does it need iPXE to get wimboot into EFI mode, or wimboot can alone doing that?
2. In my opinion, the first code runs in iPXE environment, the second code runs in GRUB2 environment which may cause the problem. But how to fix it?
3. As I understand, iPXE only support chainload in Network mode (script file must be load off the network). Could iPXE support chainload in local (script file in local disk)?
i.e
I am trying to boot.wim file using GRUB2 EFI + wimboot.
The boot.wim file is extracted from Windows installation .ISO
Before that I successfully boot boot.wim file using iPXE in both BIOS and EFI mode.
Here is my script code:
Code:
kernel ${boot-url}/wimboot/wimboot gui pause
initrd ${boot-url}/wimboot/bcd BCD
initrd ${boot-url}/wimboot/boot.sdi boot.sdi
initrd ${boot-url}/wimboot/boot.wim boot.wim
boot || goto failed
iPXE BIOS
iPXE EFI
Then I converted the above code to use only GRUB2 and wimboot (without iPXE):
Code:
menuentry "Wimboot" {
linux16 /wimboot/wimboot gui pause
initrd16 newc:bcd:(loop)/boot/bcd \
newc:boot.sdi:(loop)/boot/boot.sdi \
newc:boot.wim:(loop)/sources/boot.wim
}
It boot fine in BIOS mode and show the same screenplay as it was in iPXE BIOS case. But in EFI mode, I only got black screen and never get into the setup menu.
Since the screen was black, I did not get any notifications that wimboot is in EFI mode (In EFI mode, wimboot uses BOOTx64.efi instead of bootmgr.exe). So my questions are:
1. How to ensure that wimboot get into EFI mode? Does it need iPXE to get wimboot into EFI mode, or wimboot can alone doing that?
2. In my opinion, the first code runs in iPXE environment, the second code runs in GRUB2 environment which may cause the problem. But how to fix it?
3. As I understand, iPXE only support chainload in Network mode (script file must be load off the network). Could iPXE support chainload in local (script file in local disk)?
i.e
Code:
chain /local-root/myscript.ipxe