XCP Tutorial - Installing a VM OS from CD

As the final part of this XCP tutorial, I wanted to add one more item that I discovered when booting up my HVM guest from a CD image. After complete all the memory and VM setup issues I got the following response to starting my new VM:
xe vm-start  uuid=f0ddc908-79a9-ea0f-7a22-17c8c4bd983c
The bootloader returned an error  vm: f0ddc908-79a9-ea0f-7a22-17c8c4bd983c (oracle_vm)
msg: Error from bootloader: Failed to parse the output of bootloader:   ()
In this case, my VM tried to obtain its information from the CD but was not finding it. I ran the following command to profile my entire VM image,
xe vm-param-list  uuid=f0ddc908-79a9-ea0f-7a22-17c8c4bd983c | grep HVM
HVM-boot-policy ( RW):
HVM-boot-params (MRW):
HVM-shadow-multiplier ( RW): 1.000
last-boot-record ( RO): ‘(‘struct’ (‘uuid’ ‘f0ddc908-79a9-ea0f-7a22-17c8c4bd983c’) (‘allowed_operations’ (‘array’)) (‘current_operations’ (‘struct’ (‘OpaqueRef:4f53e4c6-55dd-0b9a-b883-544943782288’ ‘start’))) (‘power_state’ ‘Halted’) (‘name_label’ ‘oracle_vm’) (‘name_description’ ‘Installed via xe CLI’) (‘user_version’ ‘1’) (‘is_a_template’ (‘boolean’ ‘0’)) (‘suspend_VDI’ ‘OpaqueRef:NULL’) (‘resident_on’ ‘OpaqueRef:NULL’) (‘affinity’ ‘OpaqueRef:NULL’) (‘memory_overhead’ ‘1048576’) (‘memory_target’ ‘512000000’) (‘memory_static_max’ ‘512000000’) (‘memory_dynamic_max’ ‘512000000’) (‘memory_dynamic_min’ ‘512000000’) (‘memory_static_min’ ‘512000000’) (‘VCPUs_params’ (‘struct’)) (‘VCPUs_max’ ‘1’) (‘VCPUs_at_startup’ ‘1’) (‘actions_after_shutdown’ ‘destroy’) (‘actions_after_reboot’ ‘restart’) (‘actions_after_crash’ ‘restart’) (‘consoles’ (‘array’)) (‘VIFs’ (‘array’)) (‘VBDs’ (‘array’ ‘OpaqueRef:b6970f61-abdf-9ccb-2d98-94c01b571a3e’ ‘OpaqueRef:730588ba-f6f0-089e-ad86-e0930e3bcfd6’)) (‘crash_dumps’ (‘array’)) (‘VTPMs’ (‘array’)) (‘PV_bootloader’ ‘eliloader’) (‘PV_kernel’ ”) (‘PV_ramdisk’ ”) (‘PV_args’ ‘graphical utf8’) (‘PV_bootloader_args’ ”) (‘PV_legacy_args’ ”) (‘HVM_boot_policy’ ”) (‘HVM_boot_params’ (‘struct’)) (‘HVM_shadow_multiplier’ (‘double’ ‘1’)) (‘platform’ (‘struct’ (‘nx’ ‘false’) (‘acpi’ ‘true’) (‘apic’ ‘true’) (‘pae’ ‘true’) (‘viridian’ ‘true’))) (‘PCI_bus’ ”) (‘other_config’ (‘struct’ (‘install-respository’ ‘cdrom’) (‘mac_seed’ ‘7328478f-c1e6-22d3-a856-c589537451f5’) (‘linux_template’ ‘true’) (‘machine-address-size’ ’36’) (‘install-methods’ ‘cdrom,nfs,http,ftp’) (‘rhel5’ ‘true’) (‘install-distro’ ‘rhlike’))) (‘domid’ ‘-1’) (‘domarch’ ”) (‘last_boot_CPU_flags’ (‘struct’)) (‘is_control_domain’ (‘boolean’ ‘0’)) (‘metrics’ ‘OpaqueRef:36a9d247-0c51-6cae-34ae-5db9bcae5108’) (‘guest_metrics’ ‘OpaqueRef:NULL’) (‘last_booted_record’ ”) (‘recommendations’ ‘<restrictions><restriction field=\”memory-static-max\” max=\”17179869184\” /><restriction field=\”vcpus-max\” max=\”8\” /><restriction property=\”number-of-vbds\” max=\”7\” /><restriction property=\”number-of-vifs\” max=\”7\” /></restrictions>’) (‘xenstore_data’ (‘struct’)) (‘ha_always_run’ (‘boolean’ ‘0’)) (‘ha_restart_priority’ ”) (‘is_a_snapshot’ (‘boolean’ ‘0’)) (‘snapshot_of’ ‘OpaqueRef:NULL’) (‘snapshots’ (‘array’)) (‘snapshot_time’ (‘dateTime.iso8601’ ‘19700101T00:00:00Z’)) (‘transportable_snapshot_id’ ”) (‘blobs’ (‘struct’)) (‘tags’ (‘array’)) (‘blocked_operations’ (‘struct’)) (‘snapshot_info’ (‘struct’)) (‘snapshot_metadata’ ”) (‘parent’ ‘OpaqueRef:9ebdd1c5-2026-8773-7a06-0c36e67be3f0’) (‘children’ (‘array’)) (‘bios_strings’ (‘struct’)))’
In the data above, it was clear that my HVM boot-policy had no setting so I updated that field with the following command:
xe vm-param-set uuid=f0ddc908-79a9-ea0f-7a22-17c8c4bd983c HVM-boot-policy=BIOS\ order HVM-boot-params:order=”dc”
From there, I was able to start my VM and leverage OpenXenCenter to run through the OS installation.
Final thoughts, I would like to thank Dave Scott from Citrix and Alberto González Rodríguez  from OpenXenCenter for assisting me these past few days while I worked through the memory and CD issues. Hopefully, my experience and notes can be of use to someone else trying out XCP for the first time.

Read more

Let’s Grow Xen Together!
03/18/2025

Xen is open, secure, and built for the future. As the new Community Manager, I’m focused on growing the Xen community, welcoming new contributors, and ensuring a thriving ecosystem. Let’s build the future of virtualization together!

Xen Project 4.20: A Step Forward in Open Source Virtualization
03/11/2025

The Xen Project has released Xen 4.20 🎉! This release introduces a range of enhancements that further solidify its position as the premier open-source hypervisor. It delivers important security updates, improved performance, and broader hardware support. Xen has doubled down as the best choice for cloud providers, enterprise users, and

Xen Project Winter Meetup
02/13/2025

We just wrapped up the Xen Winter Meetup 2025. It was an amazing opportunity to push Xen forward in a way that can only happen when people get together in person. Organized by Vates, we hosted it at the University of Grenoble IMAG building, a great spot for cutting-edge research

Welcome Honda to the Xen Project Board
12/09/2024

We're excited to announce our newest Advisory Board Member Honda, to Xen Project. Since its foundation, Honda has been committed to "creating a society that is useful to people" by utilizing its technologies and ideas. Honda also focuses on environmental responsiveness and traffic safety, and continue