This guide is for UEFI boot, using iPXE over an HTTP server to serve files needed for installation.
Requirements
To get XCP-ng installed from iPXE over HTTP, you need:
- An HTTP server to host XCP-ng installation files
- A iPXE compatible network card and iPXE firmware on your host
1. In your HTTP root directory copy the contents of the net install ISO.
The top-level should look like this:
tree -L 1 /path/to/http-directory/
.
├── EFI
├── EULA
├── LICENSES
├── RPM-GPG-KEY-CH-8
├── RPM-GPG-KEY-CH-8-LCM
├── RPM-GPG-KEY-Platform-V1
├── boot
└── install.img
2. Boot the target machine.
3. Press Ctrl-B to catch the iPXE menu. Use the chainload command to load grub.
chain http://SERVER_IP/EFI/xenserver/grubx64.efi
TIP
• Sometimes
grub takes a very long time to load after displaying "Welcome to Grub".
This can be fixed by compiling a new version of Grub with grub-mkstandalone
.
4. Once the grub prompt loads, set the root to http and load the config file.
# Replace with your server's ip
set root=(http,SERVER_IP)
configfile /EFI/xenserver/grub.cfg
5. Select the "install" menu entry.
6. Wait
for grub to load the necessary binaries. This may take a minute. If
you look at your http server log you should see something like:
# (from python3 -m http.server path-to-directory 80)
192.168.0.10 - - [11/Mar/2021 03:25:58] "GET /boot/xen.gz HTTP/1.1" 200 -
192.168.0.10 - - [11/Mar/2021 03:25:58] "GET /boot/vmlinuz HTTP/1.1" 200 -
192.168.0.10 - - [11/Mar/2021 03:26:03] "GET /install.img HTTP/1.1" 200 -
7. Continue with installation as normal.