Short introduction to EFI shell.
When installing Windows onto a WinDRBD disk one has to boot via UEFI. Most modern system support this so it should not be a strict restriction. When installing onto a system that is booted via the legacy PC BIOS the Windows setup utility will refuse to install on top of a WinDRBD device because it thinks the BIOS cannot boot from the target disk (which is not true - it can boot via iPXE).
However, booting from UEFI needs a special iPXE image compiled for UEFI and with WinDRBD support. This image comes precompiled with modern WinDRBD distributions (TODO: starting from 1.1.5).
This guide explains what to type into the EFI shell to load an iPXE image and boot from it. It is also meant as a generic introduction for those who (like me) never worked with an EFI shell. EFI shell is a bit like cmd shell under Windows but there are significant differences.
To list commands supported by your EFI shell type:
help -b
The -b parameter makes the output stop at every page (just like piping into less) so you can view all pages.
Then to access local file systems you need to select a file system and then change into a directory containing the file. First, list file systems with the map command:
map
It should show something like
FS0: Alias()...
PciRoot(0x0)/Pci ...
The FS0 is the interesting part. It is like a Windows drive letter but with more than one letter. So, to select a file system enter:
FS0:
(or FS1:, …). Then optionally you can cd into the directory on the filesystem. Example:
cd \EFI\BOOT
To list the files do:
dir -b
(again -b is to make the output stop at every page).
Then to boot from a .efi file just type the name of the file, as in:
ipxe.efi
That’s it.
Note that (at least my) EFI shell supports basic command history and tab completion.