我试图启动一个Xen虚拟机,但是我收到以下错误:
Error: Device 2049 (vbd) could not be connected. Hotplug scripts not working.
这是什么意思?
dom0是CentOS,客户操作系统是Debian Lenny。 我正在使用的networking接口是:
vif = [ 'mac=00:16:3e:3e:53:5f, bridge=xenbr0', 'mac=00:16:3e:18:16:e5, bridge=xenbr1' ]
来宾操作系统的根文件系统被设置为通过dom0通过NFS进行挂载,这对同一主机上的其他来宾操作系统起作用。 swap(和/var )从本地LVM逻辑卷挂载
更新我的错。 我没有正确写入configuration,没有正确设置文件系统。 我能够看到/var/log/xen/xen-hotplug.log看到它正在访问错误的设备。
简洁版本:
检查你有/etc/udev/rules.d/xen-backend.rules 。 该文件可能或不可以以数字作为前缀。
如果没有,检查你是否有/etc/udev/xen-backend.rules并创build一个符号链接到/etc/udev/rules.d/xen-backend.rules 。
长版本:
我已经看到这与Gentoo 3.3 dom0,而不是CentOS。 但我怀疑这个问题是相同的或者相似的。
Xen构build脚本调用命令udevinfo -V来确定机器上安装的udev的版本。 udevinfo实用程序前一段时间被贬低,转而使用udevadm 。 在更新的udev版本中,旧的工具已经被完全删除。
构build脚本使用所描述的获得的udev版本来确定需要采取哪些安装步骤。 如果无法find/匹配udev版本,则不会安装所需的udev规则。 由于没有udevinfo目前,这是发生了什么。
现在可能是因为你不想降级udev。 这留下了两个解决scheme。
您可以检查您的软件包分销商是否已经解决了问题。 例如,它根据这个bug在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
这将再次得到它的工作。 但从长远来看,您仍然需要解决这个问题。
我的错。 我没有正确写入configuration,没有正确设置文件系统。 我能够看到/var/log/xen/xen-hotplug.log看到它正在访问错误的设备。