Xen 半虚拟化客户机 - 无效内核

Xen 半虚拟化客户机 - 无效内核

我已经在 ubuntu server 12.04 LTS 上设置了 xen。我尝试将客户机安装到我创建的名为 xen-lvm 的 lvm 中

virt-install 脚本:

sudo virt-install \
--name client2-ubuntu-server \
--ram 512 \
--location http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/ \
--accelerate \
--disk path=/dev/dev-server/xen-lvm \
--boot kernel=/boot/vmlinuz-3.2.0-35-virtual,initrd=/boot/initrd.img-3.2.0-35-virtual \
--force

我首先尝试在不使用 --boot 选项的情况下进行安装,当我尝试启动虚拟机时出现了完全相同的错误(xm create client1-ubuntu-server):

Error: (2, 'Invalid kernel', 'elf_xen_note_check: ERROR: Will only load images built for the generic loader or Linux images')

有人知道我需要做什么吗?运行 32 位和硬件虚拟化是不可能的(必须进行半虚拟化)。

也许我不应该在客户机中安装主 grub 引导加载程序,而是更改主机操作系统的引导加载程序?


更新

我已设法使用xm create而不是 ,virt-install以便到达使用引导加载程序启动的点,然后出现错误,如下所示: 在此处输入图片描述 我认为问题是因为我没有 pygrub 选项来选择“虚拟”内核。我未能发现如何将虚拟内核添加到 domU(最好在安装阶段)。我本以为 xen netboot 映像会随此安装,但我想不是。

我的 xm 创建脚本如下:

name = 'client1-ubuntu-32'
memory = 512
disk = ['phy:/dev/ubu-32/xen-lvm,xvda,w']
vif = [' ']

# Comment this out if uncommenting the next section (installing)
#bootloader="/usr/bin/pygrub"

# This section is for installing ubuntu
kernel = "/var/lib/xen/images/ubuntu-netboot/vmlinuz"
ramdisk = "/var/lib/xen/images/ubuntu-netboot/initrd.gz"
extra = "debian-installer/exit/always_halt=true -- console=hvc0"

答案1

事实证明您可以使用 pygrub 将 grub 安装到 PV 客户机。

最后的诀窍是使用 apt/task 菜单中的“手动选择软件包”来删除通用内核并安装虚拟内核。(您必须使用 shift-+ 添加软件包,使用 shift-minus 删除突出显示的软件包)。我只使用 xm create 命令并以 pygrub 作为参数之一进行了测试。由于默认选择了虚拟内核,我猜这个修复也可能适用于使用 virt-install(但未经测试)

您还必须确保将默认分区从使用 ext4 更改为使用 ext3,才能使其正常工作。我不知道这是否是 pygrub 特有的问题。

这种手动选择软件包的方式很麻烦。值得研究一下如何使用上述最小虚拟安装这里

答案2

我不知道 libvirt。但是:

我已经设置了 xen

必须半虚拟化

- 加速 \

虚拟机安装

-p, --paravirt 此客户机应为半虚拟化客户机。如果主机同时支持半虚拟化和全虚拟化,并且未指定此参数或“--hvm”,则将假定为这种情况。 --accelerate 如果安装 QEMU 客户机,则首选 KVM 或 KQEMU(按此顺序)。此行为现在是默认行为,此选项已弃用。要安装普通 QEMU 客户机,请使用“--virt-type qemu”

所以看起来你传递了错误的选项。不过似乎生成了一个 Xen 配置文件。

还,

  • 生成的domU配置文件的内容是什么?
  • /boot/vmlinuz-3.2.0-35-virtual 是否已编译 paravirt 支持?

也许我不应该在客户机中安装主 grub 引导加载程序,而是更改主机操作系统的引导加载程序?

您不能将 grub 与 PV 客户机一起使用。您可以使用 pygrub 或 pvgrub 将内核存储在树内(在 VM 中)。但是您的命令行建议您运行树外内核(存储在 dom0 文件系统中),因此您不需要任何引导加载程序。

您的 domU 是 i386。内核 PAE 启用了吗?Xen 很久以前就不再支持非 PAE 32 位了。

相关内容