Very often, people search how to resolve this annoying message, espacially when you reboot after a fresh Xen (or XCP) install. In this post, we’ll understand what does it mean and how to fix it.
Just a fresh install
If you read previous article about installing XCP on Debian 7, you have now rebooted in your fresh system, but can’t do anything, because Xen tells you:
ERROR: Can't find hypervisor information in sysfs!
This «bug» is common to all Debian versions, and it’s not really a bug, but more a question of post-install script, which doesn’t trigger Xen Kernel in Grub configuration file.
Grub2 on Debian
If you list all files in your /etc/grub.d folder, you’ll get:
-rwxr-xr-x 1 root root 6.6K Oct 14 10:31 00_header
-rwxr-xr-x 1 root root 5.3K Oct 14 10:07 05_debian_theme
-rwxr-xr-x 1 root root 6.2K Oct 14 10:31 10_linux
-rwxr-xr-x 1 root root 5.8K Oct 14 10:31 20_linux_xen
-rwxr-xr-x 1 root root 5.9K Oct 14 10:31 30_os-prober
-rwxr-xr-x 1 root root 214 Jan 18 2011 40_custom
-rwxr-xr-x 1 root root 95 Jan 18 2011 41_custom
-rw-r--r-- 1 root root 483 Jan 18 2011 README
It means when you build your grub config files, it starts with header, then add debian theme, then push regular kernel, then Xen Kernel etc. But it’s not that we want
Solution
Propper way
The propper way to do this, is the «dpkg way» as indicated in Debian documentation. So:
# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
And rebuild your Grub config file:
# update-grub
Old way
If you want to have a Xen enabled kernel, you need to invert order, simply like that:
# mv /etc/grub.d/10_linux /etc/grub.d/20_linux && mv /etc/grub.d/20_linux_xen /etc/grub.d/10_linux_xen
And rebuild your Grub config file:
# update-grub
Now, reboot, and you’re done!
I have used This forum, trying to run xen on my os:
steps i have done :
egrep '(vmx|svm)' /proc/cpuinfo
ouput = 4 and also i have run KVM virtualization with no problem.
then:
sudo apt-get install xen-hypervisor-4.4-amd64 xen-utils-4.4 xenwatch xen-tools xen-utils-common xenstore-utils virtinst virt-viewer virt-manager
then opened a console : Ctrl + Alt + F1 and :
sudo nano /etc/xen/xend-config.sxp
and appended to the last of the file these lines:
> (xend-http-server yes)
> (xend-unix-server yes)
skipped the network part coz i will manage them when every thing is right by bridge control utility .
then
ln -sf /usr/lib/xen-4.1 /usr/lib64/xen
did reboot
in my ubuntu when i loaded booted after restart, whenever i insert this terminal code:
xm dmesg
i get the error of
ERROR: Can’t find hypervisor information in sysfs!
in that forum and alot searches of google it says to configure the /etc/grub.d .
i did these steps for:
attempt 1:
sudo mv /etc/grub.d/10_linux /etc/grub.d/50_linux
update-grub2
attempt 2:
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
update-grub
Attempt 3:
mv /etc/grub.d/10_linux /etc/grub.d/20_linux && mv /etc/grub.d/20_linux_xen /etc/grub.d/10_linux_xen
but even with that it gives the same error.
when i try to boot from xen hypervisro which has appeared in boot grub loader, no matter what kind of xen hypervisor boot loader i select, system goes plank (or purple color of ubuntu default color) and never starts.
is there any particular solution?
P.S:
Ubuntu 14.04, AMD Mobility Radeon HD 5430/5450/5470 display ,4GB ram ,i3-370M —
2.40GHz cpu
Установка гипервизора Xen представляет из себя процесс длиной в одну команду, но не менее важно правильно выполнить дальнейшие шаги по настройке среды виртуализации. Об этом я и расскажу в статье, а также поделюсь своим опытом и готовым скриптом для развертывания Xen.
Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.
Содержание
- 1 Установка гипервизора Xen
- 1.1 Установка
- 1.2 Изменение порядка загрузки
- 1.3 Базовая настройка сети
- 1.4 Установка из скрипта
- 1.5 Немного личного опыта
Первым делом проверим поддержку инструкций аппаратной виртуализации у нашего CPU. Сделать это можно командой:
egrep ‘(vmx|svm)’ /proc/cpuinfo | wc —l |
Если возвращается отличное от 0 значение, значит все ОК.
Примечание: поддержка аппаратной виртуализации необходима лишь для запуска полностью виртуализованных (HVM) гостей и для запуска PV-гостей не требуется, но строго рекомендуется 1.
На всякий случай выполним обновление репозиториев:
Можно приступать к установке.
Установка
Установим Xen командой:
apt—get install xen—linux—system |
Полное название пакета — xen-linux-system-amd64. На этом с установкой закончено.
Изменение порядка загрузки
Поскольку Xen является гипервизором первого типа, запускаться он должен перед хостовой ОС, а для этого нужно изменить порядок загрузки:
dpkg—divert —divert /etc/grub.d/08_linux_xen —rename /etc/grub.d/20_linux_xen |
Заново сгенерируем файл /boot/grub/grub.cfg:
После этого нужно перезагрузиться.
Для целей тестирования вы можете не изменять порядок загрузки на постоянной основе, а выбрать необходимый режим в процессе загрузки:
Как только система загрузилась, проверить запущен ли Xen можно командой:
Хостовая ОС должна работать в нулевом домене (Dom0), а гостевых доменов (DomU) пока что нет, ведь ни одна виртуальная машина ещё не создана. Поэтому мы увидим только одну запись:
Name ID Mem VCPUs State Time(s) Domain-0 0 60387 8 r—— 789.6 |
Ну а если что-то пошло не так, то система вернет результат:
ERROR: Can’t find hypervisor information in sysfs! |
С гипервизором мы закончили.
Базовая настройка сети
Xen — это только гипервизор и ничего более, а значит он отвечает за управление CPU, RAM и прерываниями. Он ничего не знает о функциях ввода/вывода, задача управления которыми целиком положена на первую «виртуальную машину» — хостовую ОС, запущенную в особом привилегированном режиме.
Именно поэтому сетевой функционал лежит на стороннем софте, а именно на пакете bridge-utils. Устанавливать его отдельно не требуется, он находится в зависимостях xen-linux-system-amd64 и подтягивается автоматически.
В большинстве случаев виртуальным машинам необходимо находиться в одной и той же сети, что и хост. Этим требованиям удовлетворяет мостовая конфигурация.
Bridge-utils позволяет создать мост командой brctl addbr xenbr0 и добавить к нему существующий интерфейс командой brctl addif xenbr0 eth0. Но чтобы конфигурация моста была постоянной, необходимо внести изменения в сетевые настройки 2. Открываем для редактирования:
nano /etc/network/interfaces |
Предположим ваша конфигурация выглядит следующим образом:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp |
После добавления моста она будет иметь вид:
auto lo iface lo inet loopback auto xenbr0 iface xenbr0 inet dhcp bridge_ports eth0 auto eth0 iface eth0 inet manual |
Ну а если у вас был статический адрес, то просто добавьте необходимые параметры:
auto lo iface lo inet loopback auto xenbr0 iface xenbr0 inet static bridge_ports eth0 address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 auto eth0 iface eth0 inet manual |
Сетевые настройки будут привязаны именно к мосту, но не к интерфейсу eth0.
Увидеть мост вы сможете как через утилиту brctl командой
bridge name bridge id STP enabled interfaces xenbr0 8000.00155d010e26 no eth0 |
так и любым другим способом, с помощью которого вы просматриваете сетевую конфигурацию, например:
Остается перезапустить демона, чтобы настройки применились:
service networking restart |
Примечание: если вы сделали какие-либо ошибки в сетевых настройках, то вы можете потерять подключение к серверу. В этом случае неплохо либо находиться недалеко от сервера, либо иметь к нему удаленную консоль, не завязанную на основном сетевом подключении (например ipmi).
Базовая настройка на этом завершена.
Установка из скрипта
Если ваша задача просто поставить Xen и сконфигурировать сеть как рассмотрено в разделе выше, то вы можете воспользоваться моим скриптом — xen_install.
Не забудьте сделать скрипт исполняемым командой:
chmod +x xen_install_V1.0.3.sh |
Запускаем:
В конце работы скрипта система будет перезагружена. Если это не произойдет, то информацию для отладки ищите в логе xen_installation.log в каталоге, из которого был запущен скрипт.
Немного личного опыта
Не всегда после установки Xen все пойдет хорошо. У меня встретилась ситуация, когда на определенном оборудовании Xen не мог запуститься и сервер входил в бесконечно повторяющуюся перезагрузку. Проблему так решить и не удалось и решено было просто установить Debian Stretch, в репозиториях которого уже присутствовал последний Xen 4.8, в то время как Debian Jessie имел только Xen 4.4.
comments powered by HyperComments
I am trying to solve the «Can’t find hypervisor information in sysfs» problem when invoking «xm». I have found in some sites that the solution is to rename 10_linux into 50_linux, however if I do this, whenever I reboot my computer, the memtest starts (so I have to reset the previous grub configuration through a live cd). I am aware that it might be a silly question, but does anyone have a workaround?
asked Dec 12, 2012 at 10:36
0
I had the same problem. Googling around I came across this forum post. Initially I did the same as you renaming 10_linux to 50_linux, however first time around I forgot to:
[sudo] update-grub2
I sudo’d the command however not sure it’s required. Now all is working.
answered Feb 14, 2013 at 21:52
1
I have used This forum, trying to run xen on my os:
steps i have done :
egrep '(vmx|svm)' /proc/cpuinfo
ouput = 4 and also i have run KVM virtualization with no problem.
then:
sudo apt-get install xen-hypervisor-4.4-amd64 xen-utils-4.4 xenwatch xen-tools xen-utils-common xenstore-utils virtinst virt-viewer virt-manager
then opened a console : Ctrl + Alt + F1 and :
sudo nano /etc/xen/xend-config.sxp
and appended to the last of the file these lines:
> (xend-http-server yes)
> (xend-unix-server yes)
skipped the network part coz i will manage them when every thing is right by bridge control utility .
then
ln -sf /usr/lib/xen-4.1 /usr/lib64/xen
did reboot
in my ubuntu when i loaded booted after restart, whenever i insert this terminal code:
xm dmesg
i get the error of
ERROR: Can’t find hypervisor information in sysfs!
in that forum and alot searches of google it says to configure the /etc/grub.d .
i did these steps for:
attempt 1:
sudo mv /etc/grub.d/10_linux /etc/grub.d/50_linux
update-grub2
attempt 2:
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
update-grub
Attempt 3:
mv /etc/grub.d/10_linux /etc/grub.d/20_linux && mv /etc/grub.d/20_linux_xen /etc/grub.d/10_linux_xen
but even with that it gives the same error.
when i try to boot from xen hypervisro which has appeared in boot grub loader, no matter what kind of xen hypervisor boot loader i select, system goes plank (or purple color of ubuntu default color) and never starts.
is there any particular solution?
P.S:
Ubuntu 14.04, AMD Mobility Radeon HD 5430/5450/5470 display ,4GB ram ,i3-370M –
2.40GHz cpu
Contents
- 1 Links
- 2 Docs
- 2.1 Xen clustering/HA
- 3 Hardware requirements
- 4 Useful commands
- 5 FAQ
- 5.1 ERROR: Can’t find hypervisor information in sysfs
- 5.2 xl: unable to exec console client: No such file or directory
- 5.3 Where did the memory of my dom0 go??
- 5.4 No network in windows
- 5.5 Domain does not exist
- 5.6 Error: ‘NoneType’ object has no attribute ‘rfind’
Links
- http://xen.org Xen
- Beginners guide
- http://mediakey.dk/~cc/howto-install-windows-xp-vista-on-xen/
- http://www.planetjoel.com/viewarticle/568/HOWTO:+Windows+XP+running+under+Xen+3.0+on+Ubuntu+Dapper+Drake
- http://wiki.debian.org/Xen
- http://www.debian-administration.org/articles/533
- http://www.novell.com/communities/node/4094/xen-network-bridges-explained-with-troubleshooting-notes
- http://www.gnu.org/software/hurd/microkernel/mach/gnumach/ports/xen/networking_configuration.html
- [1]
Docs
- Xen on Gentoo
- Xen wiki
- Xen on Debian Squeeze dom0
Xen clustering/HA
- Xen cluster howto
- http://lcmc.sourceforge.net/ Linux Cluster Management Console]
- HA Xen Cluster with DRBD, LVM and heartbeat
- http://www.drbd.org/users-guide/s-xen-heartbeat.html
- http://wiki.alteeve.com/index.php/Red_Hat_Cluster_Service_2_Tutorial
Hardware requirements
egrep '^flags.*pae' /proc/cpuinfo
Useful commands
xm dmesg xen-create-image xentop
FAQ
ERROR: Can’t find hypervisor information in sysfs
Possible booting wrong kernel, otherwise try:
/etc/grub.d/20_linux_xen update-grub reboot
xl: unable to exec console client: No such file or directory
set "memory = 320" in the config file
Where did the memory of my dom0 go??
After killing a vm, xen keeps the memory reserved. If you really want to reclaim it, use:
xm mem-set 0 <the amount you want back>M
No network in windows
- http://wiki.xensource.com/xenwiki/XenNetworking
Domain does not exist
A vague way of telling you xm create failed to start?
Error: ‘NoneType’ object has no attribute ‘rfind’
Debian thing, means install xen-qemu-dm-4.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
0. Первым делом проверим поддержку инструкций аппаратной виртуализации: egrep ‘(vmx|svm)’ /proc/cpuinfo | wc —l 1. Выполним обновление репозиториев: apt—get update 2. Установка: apt—get install xen—linux—system 3. Выполняем обновление grub: dpkg—divert —divert /etc/grub.d/08_linux_xen —rename /etc/grub.d/20_linux_xen 4. Заново сгенерируем файл /boot/grub/grub.cfg: update—grub 5. Как только система загрузилась, проверить запущен ли Xen можно командой: xl list !!! если что-то пошло не так, то система вернет результат: ERROR: Can‘t find hypervisor information in sysfs! 6. Базовая настройка сети nano /etc/network/interfaces вариант 1 ——— iface lo inet loopback auto xenbr0 iface xenbr0 inet dhcp bridge_ports eth0 auto eth0 iface eth0 inet manual ——— вариант 2 ——— auto lo iface lo inet loopback auto xenbr0 iface xenbr0 inet static bridge_ports eth0 address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 auto eth0 iface eth0 inet manual ——— 7. Проверяем сеть brctl show ip addr |
Пример конфига
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
0. vim vmconfig.cfg ———— name = ‘2012R2Test01’ builder = ‘hvm’ kernel = ‘/usr/lib/xen-4.8/boot/hvmloader’ vcpus = 4 memory = 4096 disk = [ ‘/root/ru_windows_server_2012_r2x64_dvd_6052763.iso,,hdc,cdrom’, ‘/dev/vg0/2012R2Test01-Disk001,,hda’ ] vif = [‘mac=00:50:56:00:D3:7E,bridge=xenbr0’] boot = «d» vnc = 1 vncconsole = 1 vnclisten = «» vncpasswd = «» ———— 1. xl create vmconfig.cfg |
tool xm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Программа xm — это главный инструмент по управлению Xen из консоли. Общий формат командной строки xm такой: xm команда [ключи] [аргументы] [переменные] Для того чтобы посмотреть справку самой программы, введите: xm help Выводит информацию о доменах в формате: xm list Если вы хотите узнать, сколько уже работают ваши домены, дайте команду: xm uptime Доступ к консоли домена можно получить с помощью команды xm console: xm console myVM Сохранить домен VM1 на диск можно командой: xm save VM1 VM1.chk !!! Домен будет остановлен, а его состояние записано в файле VM1.chk Чтобы продолжить выполнение домена, используется команда restore: xm restore VM1.chk Миграция и живая миграция: xm migrate —live mydomain destination.ournetwork.com |
Конфигурационные файлы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
В конфигурационных файлах Xen могут присутствовать перечисленные ниже параметры. Если не указано обратное, конфигурационные параметры заключаются в кавычки. В каталоге /etc/xen/ есть конкретные примеры. kernel — путь к образу ядра ramdisk — путь к образу виртуального диска (не обязательно) memory — объём память в мегабайтах vcpus — количество виртуальных процессоров console — порт, на котором будет доступна консоль (по умолчанию 9600 + domain ID) vif — конфигурация сетевых интерфейсов. vif = [ ‘mac=00:16:3E:00:00:11, bridge=xen-br0’, ‘bridge=xen-br1’ ] disk — список блочных устройств, которые должны быть экспортированы в домен. Например: ~disk = [ ‘phy:hda1,sda1,r’ ] dhcp — нужно установить равным ‘dhcp’, если для конфигурирования сети будет использоваться этот протокол netmask — сетевая маска gateway — IP-адрес шлюза hostname — имя виртуального хоста root — имя корневого раздела, передаваемое ядру системы nfs_server — IP-адрес NFS сервера, если используется nfs_root — путь к корневому каталогу на NFS-сервере, если используется extra — дополнительные параметры, которые передаются ядру (не обязательно) |