我已经按照以下说明成功构建并安装了 Xen 4.15 到我的 Ubuntu20.04 平台上https://wiki.xenproject.org/wiki/Compiling_Xen_From_Source
重启后,我成功进入了域 0。命令 xl info 显示正确的版本字符串。
主机:xvg 发布:5.13.0-30-generic 版本:#33~20.04.1-Ubuntu SMP 2022 年 2 月 7 日星期一 14:25:10 UTC 机器:x86_64 nr_cpus:16 max_cpu_id:31 nr_nodes:1 cores_per_socket:8 thread_per_core:2 cpu_mhz:2994.377 hw_caps:178bf3ff:76d8320b:2e500800:244037ff:0000000f:219c91a9:00400004:00000500 virt_caps:pv hvm hvm_directio pv_directio hap shadow total_memory: 15719 可用内存: 11425 共享已释放内存: 0 共享已使用内存: 0 未偿声明: 0 可用cpus: 0 xen_major: 4 xen_minor: 15 xen_extra: .3-pre xen_version:4.15.3-pre xen_caps :xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler :credit2 xen_pagesize :4096 platform_params :virt_start=0xffff8000000000000 xen_changeset :2022 年 3 月 4 日星期五 13:33:49 +0800 git:6aa4cdbc31 xen_commandline :占位符 dom0_mem=4096M,max:8192M 无实模式 edd=off cc_compiler :gcc(Ubuntu 9.3.0-17ubuntu1~20.04)9.3.0 cc_compile_by :xvg cc_compile_domain :cc_compile_date:2022 年 3 月 4 日星期五 14:21:33 CST build_id:234929adcb7588b1414c2b6e5477fa95052b4ded xend_config_format:4
然后我的下一步是创建 ubuntu guest VM(sudo 或使用 root 用户):
/usr/local/lib/xen/bin/qemu-system-x86_64 -smp 1 -xen-domid 4 -machine xenfv -m 4G -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -hda ./u2004.qcow2 -boot d -cdrom ./ubuntu-20.04-desktop-amd64.iso
但是,我总是失败并出现以下错误:
qemu-system-x86_64: failed to map ioreq server resources: error 3 handle=0x55eeb1f6c0b0
qemu-system-x86_64: xen hardware virtual machine initialisation failed
经过调试,该错误是由于 osdep_xenforeignmemory_map_resource 未能调用 IOCTL_PRIVCMD_MMAP_RESOURCE 导致的。并且此 IOCTL 会返回 -1。
所以我的问题是,我使用的 qemu 命令是否正确?还需要设置/配置其他内容吗?请注意,如果我没有指定选项“-xen-domid 4 -machine xenfv”,我可以成功启动 qemu
任何建议/帮助都将不胜感激。