Я пытаюсь запустить виртуальную машину Xen, но получаю следующую ошибку:
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' ]
Корневая файловая система гостевой ОС настроена на монтирование через NFS с dom0, это работает для других гостевых ОС на том же хосте. Своп (и /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. Итак, остается два решения.
Вы можете либо проверить, исправил ли ваш распространитель пакетов проблему. Например, это исправлено в Xen 4.4 на Gentoo в соответствии с эта ошибка.
Кроме того, вы можете временно обойти это, обманув его, 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
Это снова заставит его работать. Но вам все равно нужно будет исправить проблему в долгосрочной перспективе.
Моя вина. Я неправильно написал конфигурацию и неправильно настроил файловые системы. Я смог посмотреть /var/log/xen/xen-hotplug.log, чтобы увидеть, что он обращается не к тому устройству.