我正在尝试启动 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
看到它正在访问错误的设备。
精简版:
检查您是否拥有
/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 中就根据这个 bug进行了修复。
或者,您可以暂时解决它,方法是欺骗
udevinfo
仍然存在的它并按照它预期的方式行事。我们可以通过脚本/代理新udevadm
命令来做到这一点:这将使它再次工作。但从长远来看,您仍然需要解决这个问题。
我的错。我没有正确编写配置,也没有正确设置文件系统。我能够查看 /var/log/xen/xen-hotplug.log 以查看它访问了错误的设备。