Xen-无法创建域,因为“无法连接 vdb”

Xen-无法创建域,因为“无法连接 vdb”

我正在尝试启动 Xen VM,但是出现以下错误:

Error: Device 2049 (vbd) could not be connected. Hotplug scripts not working.

这是什么意思?

dom0 是 CentOS,客户操作系统是 Debian Lenny。我使用的网络接口是:

vif = [ 'mac=00:16:3e:3e:53:5f, bridge=xenbr0', 'mac=00:16:3e:18:16:e5, bridge=xenbr1' ]

客户操作系统的根文件系统设置为从 dom0 通过 NFS 挂载,这适用于同一主机上的其他客户操作系统。交换(和/var)从本地 LVM 逻辑卷挂载

更新是我的错。我没有正确编写配置,也没有正确设置文件系统。我查看了一下/var/log/xen/xen-hotplug.log才发现它访问了错误的设备。

答案1

简洁版本:

检查您是否有/etc/udev/rules.d/xen-backend.rules。该文件可能有或没有数字前缀。

如果没有,请检查您是否拥有/etc/udev/xen-backend.rules并从该处创建到的符号链接/etc/udev/rules.d/xen-backend.rules

长版本:

我在 Gentoo 3.3 dom0 上看到过这种情况,不是 CentOS。但我怀疑修复方法会相同或类似。

Xen 构建脚本调用命令udevinfo -V来确定机器上安装的 udev 版本。该udevinfo实用程序不久前被弃用,取而代之的是udevadm。在较新版本的 udev 中,旧实用程序已被完全删除。

构建脚本使用如上所述获取的 udev 版本来确定需要执行哪些安装步骤。如果找不到/匹配 udev 版本,则不会安装所需的 udev 规则。由于不存在udevinfo,因此会发生这种情况。

现在你可能不想降级 udev。所以剩下两个解决方案。

您可以检查软件包分销商是否已修复此问题。例如,此问题已在 Gentoo 上的 Xen 4.4 中根据以下说明进行修复:这个错误

或者,你可以暂时解决这个问题,通过欺骗它,使它udevinfo仍然存在并按照预期的方式运行。我们可以通过编写脚本/代理到新udevadm命令来实现这一点:

# echo -e '#!/bin/bash\n/sbin/udevadm info $1' > /usr/bin/udevinfo
# chmod +x /usr/bin/udevinfo
*** Install Xen ***
# rm /usr/bin/udevinfo

这将使它再次工作。但从长远来看,你仍然需要解决这个问题。

答案2

是我的错。我没有正确编写配置,也没有正确设置文件系统。我查看了 /var/log/xen/xen-hotplug.log 发现它访问了错误的设备。

相关内容