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
In safety-critical industries like automotive and industrial systems, trust is non-negotiable. When building software that controls critical hardware, like braking systems or factory automation, you need confidence. The software must behave exactly as intended. Every time. On the actual device. That's why the Xen Project is investing in
The annual Xen Summit is right around the corner, and there has never been a more exciting time to be part of the Xen Project. As enterprise and industrial needs shift and proprietary vendors rethink their licensing, the industry is ready for strong, open alternatives. Xen stands out not only
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!
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