我正在运行 XenServer 6.2 的安装,其中我导入了一个 .ova。.ova 是来自以前的 vmware esxi 环境的 linux 系统的映像。
问题是由于 linux-image 不支持所有磁盘控制器,所以我想更改 XenServer 内部的 vmdk 磁盘驱动程序。
我在 qemu-kvm 系统上运行完全相同的映像时遇到了同样的问题。我通过在 virt-manager(或 vm.xml)中更改虚拟机的磁盘控制器解决了这个问题。但我似乎在 XenServer 中找不到此选项。
有小费吗?
答案1
我不确定我是否理解了您的问题。如果我理解了,您就成功导入了基于 Linux 的 VM。但是,您的 VM 无法启动,因为其内核无法识别 XenServer 公开的磁盘控制器。并且您希望能够访问 VM 的磁盘,以便调整加载的驱动程序。
由于 Linux 客户机 (默认情况下) 是半虚拟化的,因此客户机的内核应该意识到它正在由 Xen 虚拟化,并加载了一个名为 blkfront 的内核驱动程序。此驱动程序将拾取后端 (对于该 VM) 公开的任何磁盘,并在客户机中显示为 /dev/xvd_。
尽管如此,您可以从 dom0 看到该 VDI。使用命令行界面,您可以找出虚拟机的磁盘在哪里,并(可能)访问它们。
以下命令应该为您提供 VM 的 UUID(名为 VMNAME):
vm_uuid=$(xe vm-list name-label=VMNAME --minimal)
echo $vm_uuid
接下来,您可以像这样找出与您的 VM 关联的任何虚拟磁盘映像 (VDI):
xe vbd-list type=Disk params=vdi-uuid vm-uuid=$vm_uuid
您可以使用帮助脚本从 dom0 访问这些 VDI with_vdi
。假设您想要访问 UUID 为 06612a19-d9ba-49f8-9f75-6c9d5a9aaef6 的 VDI,您可以运行:
# /opt/xensource/debug/with-vdi 06612a19-d9ba-49f8-9f75-6c9d5a9aaef6
DEVICE=sm/backend/c86e75df-eff8-d139-0c0f-7924465f9bfa/06612a19-d9ba-49f8-9f75-6c9d5a9aaef6
现在您将进入 shell,并且/dev/$DEVICE
将成为该 VDI 的块设备表示。例如,您可以使用以下命令查看该 VDI 的分区表:
fdisk -l /dev/$DEVICE
然后,从那里在本地安装文件系统并“试用”它。exit
完成后记得键入退出此 shell 并释放 VDI。
干杯
费利佩
答案2
如果我没记错的话,这个实例当时不支持 Xen 磁盘设备。升级内核以包含此类模块解决了这个问题。