SysTutorials

Installing Fedora 17 PV Guest on Xen with PXE Boot

· updated April 11, 2026

Xen remains in production use across cloud providers (AWS EC2, Citrix Hypervisor) and large infrastructure deployments, though KVM has become the default hypervisor for most Linux distributions. This guide covers installing a Fedora Domain-U on a Xen Dom0 using PXE boot, applicable to current Fedora releases.

Prerequisites

Obtaining PXE Boot Images

Download the latest Fedora PXE boot images from the official repository:

wget http://archive.fedoraproject.org/pub/fedora/linux/releases/41/Fedora/x86_64/os/images/pxeboot/vmlinuz
wget http://archive.fedoraproject.org/pub/fedora/linux/releases/41/Fedora/x86_64/os/images/pxeboot/initrd.img

Place these in a location accessible to Dom0, such as /var/lib/xen/pxeboot/.

Domain-U Configuration

Create a configuration file for the new Domain-U. Here’s a working example with modern conventions:

name="vm-10.1.0.235"
vcpus=4
memory=2048
disk=['phy:/dev/vg_xen/vm-10.1.0.235,xvda,w']
vif=['bridge=br0']
on_reboot="restart"
on_crash="restart"
kernel="/var/lib/xen/pxeboot/vmlinuz"
ramdisk="/var/lib/xen/pxeboot/initrd.img"
extra="root=live:http://archive.fedoraproject.org/pub/fedora/linux/releases/41/Fedora/x86_64/os/LiveOS/squashfs.img ip=10.1.0.235::10.1.0.2:255.255.0.0:vm235:eth0:none nameserver=8.8.8.8"

Key points:

Network Configuration

The extra parameter requires careful configuration. The IP assignment follows this format:

ip=<client>:<server>:<gateway>:<netmask>:<hostname>:<interface>:<autoconf>

For static configuration:

For DHCP assignment, simplify to:

extra="root=live:http://archive.fedoraproject.org/pub/fedora/linux/releases/41/Fedora/x86_64/os/LiveOS/squashfs.img ip=dhcp nameserver=8.8.8.8"

Creating the LVM Backing Store

Create a logical volume for the Domain-U disk:

lvcreate -L 50G -n vm-10.1.0.235 vg_xen

Verify creation:

lvs /dev/vg_xen/vm-10.1.0.235

Launching the Domain-U

Use xl to create and start the Domain-U:

xl create /path/to/vm-10.1.0.235.cfg

Monitor the installation console:

xl console vm-10.1.0.235

Press Ctrl+] to exit the console.

Troubleshooting

Installation hangs or fails to fetch packages: Verify network connectivity from the Domain-U. Check that the HTTP mirror URL is accessible and the interface configuration in the extra field is correct.

Boot fails with “block-attach” errors: Ensure the LVM logical volume exists and is properly formatted. Check Dom0 LVM status with lvs.

Network unreachable: Verify the bridge configuration on Dom0:

brctl show

Ensure the Domain-U network interface is attached to the correct bridge.

Anaconda installer not starting: Consult Anaconda boot options for complete parameter documentation. Test with verbose output by adding rd.debug to the extra field.

Post-Installation

After successful installation, the Domain-U will reboot. Remove the PXE boot kernel and ramdisk from the configuration, update to use the installed kernel:

kernel="/var/lib/xen/domU/vm-10.1.0.235/boot/vmlinuz-<version>"
ramdisk="/var/lib/xen/domU/vm-10.1.0.235/boot/initramfs-<version>.img"

Or configure the Domain-U for PV GRUB2 boot if preferred, allowing filesystem-based boot selection.

Performance Considerations

Xen remains a solid choice for production virtualization when KVM doesn’t meet specific requirements or when integrating with existing Xen infrastructure.

← All posts