xg-scale

diff xen/linux.tex @ 0:4730a0d07d88

Исходники курса после первого прочтения.
Правки (которых должно быть много),
ещё пока не вносились.
author Igor Chubin <igor@chub.in>
date Tue Jul 01 16:16:44 2008 +0300 (2008-07-01)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/xen/linux.tex	Tue Jul 01 16:16:44 2008 +0300
     1.3 @@ -0,0 +1,571 @@
     1.4 +\section{Linux в Xen}
     1.5 +
     1.6 +На этой странице описана процедура подготовки
     1.7 +гостевой системы под управлением Linux
     1.8 +для работы в качестве пользовательского домена Xen
     1.9 +(domain U).
    1.10 +
    1.11 +\subsection{Начальные требования}
    1.12 +<graphviz>
    1.13 +digraph G \{
    1.14 +\begin{verbatim}
    1.15 +node [shape=rectangle];
    1.16 +a [label="Подготовка\nдомена 0"];
    1.17 +b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled];
    1.18 +c [label="Запуск и эксплуатация\nсистемы"];
    1.19 +a -> b;
    1.20 +b -> c;
    1.21 +\end{verbatim}
    1.22 +\}
    1.23 +</graphviz>
    1.24 +
    1.25 +Для выполнение описанных ниже действий
    1.26 +необходимо наличие проинсталлированной и настроенной 
    1.27 +хост-системы Xen (домена 0).
    1.28 +Как это сделать описано на странице Инсталляция Xen.
    1.29 +
    1.30 +Предполагается, что в домене 0 установлен Debian GNU/Linux.
    1.31 +Для других дистрибутивов некоторые действия будут выполняться
    1.32 +иначе.
    1.33 +
    1.34 +\subsection{Подготовка образа гостевой системы}
    1.35 +\subsubsection{Подготовка дисковых разделов для использования в качестве дисков виртуальной машины}
    1.36 +Для того чтобы разделы виртуальной машины
    1.37 +соответствовали дисковым разделам реальной машины,
    1.38 +используйте следующие шаги:
    1.39 +
    1.40 +\begin{verbatim}
    1.41 +node [shape=rectangle];
    1.42 +a [label="Подготовка\nдомена 0"];
    1.43 +b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled];
    1.44 +c [label="Запуск и эксплуатация\nсистемы"];
    1.45 +a -> b;
    1.46 +b -> c;
    1.47 +\end{verbatim}
    1.48 +
    1.49 +В том случае, если в виртуальной машине должно быть 
    1.50 +несколько дисковых разделов,
    1.51 +подготовьте их.
    1.52 +Например, для /usr:
    1.53 +
    1.54 +\begin{verbatim}
    1.55 +node [shape=rectangle];
    1.56 +a [label="Подготовка\nдомена 0"];
    1.57 +b [label="Подготовка\nдомена U"];
    1.58 +c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled];
    1.59 +a -> b;
    1.60 +b -> c;
    1.61 +\end{verbatim}
    1.62 +
    1.63 +Если вам необходимо пространство подкачки (swap) в виртуальной машине, 
    1.64 +подготовьте его с помощью команды mkswap:
    1.65 +
    1.66 +\begin{verbatim}
    1.67 +# mkswap /dev/hdX
    1.68 +\end{verbatim}
    1.69 +
    1.70 +\subsubsection{Подготовка файлов для использования в качестве диска виртуальной машины}
    1.71 +Создайте файл для использования в качестве основного
    1.72 +диска виртуальной машины.
    1.73 +
    1.74 +\begin{verbatim}
    1.75 +# dd if=/dev/zero of=/xen/images/debian-host1.img bs=1M count=<size_in_MB>
    1.76 +# mkfs.ext3 /xen/images/debian-host1.img
    1.77 +# mount -o loop /srv/debian-host1.img /mnt
    1.78 +\end{verbatim}
    1.79 +
    1.80 +В том случае, если в виртуальной машине должно быть 
    1.81 +несколько дисковых разделов,
    1.82 +подготовьте их.
    1.83 +Например, для /usr:
    1.84 +
    1.85 +\begin{verbatim}
    1.86 +# dd if=/dev/zero of=/xen/images/debian-host1-usr.img bs=1M count=<size_in_MB>
    1.87 +# mkfs.ext3 /xen/images/debian-host1-usr.img
    1.88 +# mkdir /mnt/usr
    1.89 +# mount -o loop /xen/images/debian-host1-usr.img /mnt/usr
    1.90 +\end{verbatim}
    1.91 +
    1.92 +Если вам необходимо пространство подкачки (swap) в виртуальной машине, 
    1.93 +подготовьте его с помощью команды mkswap:
    1.94 +
    1.95 +\begin{verbatim}
    1.96 +# mkswap /dev/hdX
    1.97 +\end{verbatim}
    1.98 +
    1.99 +\subsubsection{Подготовка виртуальной системы под управлением Debian GNU/Linux}
   1.100 +
   1.101 +\paragraph{Инсталляция ОС Debian GNU/Linux}
   1.102 +Этот этап может быть выполнен проще, 
   1.103 +если использовать xen-tools.
   1.104 +Ниже показано, как провести инсталляцию
   1.105 +системы вручную.
   1.106 +
   1.107 +Смотрите таже \url{http://www.debuntu.org/2006/05/14/51-how-to-installing-debian-etch-from-a-running-debian-based-system/1/}.
   1.108 +
   1.109 +Запустите \textbf{debootstrap} для инсталляция базы
   1.110 +системы:
   1.111 +
   1.112 +\begin{verbatim}
   1.113 +# debootstrap sarge /mnt http://debian.org.ua/debian
   1.114 +\end{verbatim}
   1.115 +
   1.116 +Скопируйте пакет ядром для работы с Xen,
   1.117 +который был подготовлен ранее,
   1.118 +в новую виртуальную машину:
   1.119 +
   1.120 +\begin{verbatim}
   1.121 +# cp linux-xen0-2.6.16-xen_10.00.Custom_i386.deb /mnt/root
   1.122 +\end{verbatim}
   1.123 +
   1.124 +Сделайте новую файловую систему корневой (с помощью chroot):
   1.125 +
   1.126 +\begin{verbatim}
   1.127 +# chroot /mnt /bin/bash
   1.128 +\end{verbatim}
   1.129 +
   1.130 +Проинсталлируйте пакет с ранее подготовленным
   1.131 +ядро Xen:
   1.132 +
   1.133 +\begin{verbatim}
   1.134 +# dpkg -i /root/linux-xen0-2.6.16-xen_10.00.Custom_i386.deb
   1.135 +\end{verbatim}
   1.136 +
   1.137 +Измените запись, соответствующую корневой системе в файле /etc/fstab:
   1.138 +
   1.139 +\begin{verbatim}
   1.140 +# vi /etc/fstab
   1.141 +/dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
   1.142 +\end{verbatim}
   1.143 +
   1.144 +Если используется несколько дисковых разделов
   1.145 +в виртуальной машине, перечислите их:
   1.146 +
   1.147 +\begin{verbatim}
   1.148 +/dev/hda2      /usr             ext3    defaults                   0 2
   1.149 +/dev/hda3      /var             ext3    defaults                   0 2
   1.150 +...
   1.151 +\end{verbatim}
   1.152 +
   1.153 +Запустите программу \textbf{base-config} для установки базовой
   1.154 +системы Debian.
   1.155 +
   1.156 +\begin{verbatim}
   1.157 +# base-config new
   1.158 +\end{verbatim}
   1.159 +
   1.160 +Измените конфигурацию сети в виртуальной машине:
   1.161 +
   1.162 +\begin{verbatim}
   1.163 +# vi /etc/network/interfaces
   1.164 +# vi /etc/resolv.conf
   1.165 +# vi /etc/hosts
   1.166 +\end{verbatim}
   1.167 +
   1.168 +Отключите использование TLS, 
   1.169 +в противном случае работа системы может сильно замедлиться.
   1.170 +
   1.171 +\begin{verbatim}
   1.172 +# mv /lib/tls /lib/tls.disabled
   1.173 +\end{verbatim}
   1.174 +
   1.175 +В том случае, если используется дистрибутив Etch, 
   1.176 +проинсталлируйте \texttt{libc6-xen}.
   1.177 +
   1.178 +\begin{verbatim}
   1.179 +# apt-get install libc6-xen
   1.180 +\end{verbatim}
   1.181 +
   1.182 +Отключите лишние терминалы getty, 
   1.183 +а первый терминал направьте на файл \texttt{/dev/console}
   1.184 +вместо \texttt{/dev/tty1}:
   1.185 +
   1.186 +\begin{verbatim}
   1.187 +1:2345:respawn:/sbin/getty 38400 /dev/console
   1.188 +#2:23:respawn:/sbin/getty 38400 tty2
   1.189 +#3:23:respawn:/sbin/getty 38400 tty3
   1.190 +#4:23:respawn:/sbin/getty 38400 tty4
   1.191 +#5:23:respawn:/sbin/getty 38400 tty5
   1.192 +#6:23:respawn:/sbin/getty 38400 tty6
   1.193 +\end{verbatim}
   1.194 +
   1.195 +Если в виртуальной машине будут загружаться модули ядра, 
   1.196 +установить пакет \texttt{module-init-tools}
   1.197 +(обязательно для ядер 2.6 domU).
   1.198 +
   1.199 +\begin{verbatim}
   1.200 +# apt-get install module-init-tools
   1.201 +\end{verbatim}
   1.202 +
   1.203 +На этом инсталляция ОС в виртуальной машине завершена, 
   1.204 +и можно завершить работу оболочки с изменённой корневой системой (chrooted shell).
   1.205 +
   1.206 +\begin{verbatim}
   1.207 +# exit
   1.208 +\end{verbatim}
   1.209 +
   1.210 +Если вы создавали несколько разделов в виртуальной машине, 
   1.211 +размонтируйте их, начиная с самой глубокой.
   1.212 +
   1.213 +\begin{verbatim}
   1.214 +# umount /mnt/usr
   1.215 +# umount /mnt/var
   1.216 +\end{verbatim}
   1.217 +
   1.218 +После чего размонтируйте корневую файловую систему
   1.219 +виртуальной машины.
   1.220 +
   1.221 +\begin{verbatim}
   1.222 +# umount /mnt
   1.223 +\end{verbatim}
   1.224 +
   1.225 +\paragraph{Конфигурирование виртуальной машины}
   1.226 +Необходимо создать конфигурационный файл виртуальной
   1.227 +машины.
   1.228 +Пусть виртуальная машина называется debian-vm0.
   1.229 +
   1.230 +\begin{verbatim}
   1.231 +# vi /etc/xen/debian-vm0
   1.232 +# Kernel to use
   1.233 +kernel = "/boot/xen0-linux-2.6.16-xen"
   1.234 +# Memory in megabytes
   1.235 +memory = 128
   1.236 +# Your domain's name
   1.237 +name = "debian-vm0"
   1.238 +# Root device
   1.239 +root = "/dev/hda1 ro"
   1.240 +# Don't forget to specify your bridge correctly here
   1.241 +vif = [ 'mac=aa:00:00:00:00:d2, bridge=br-xen' ]
   1.242 +\end{verbatim}
   1.243 +
   1.244 +В том случае, если использует физический дисковый раздел:
   1.245 +
   1.246 +\begin{verbatim}
   1.247 +disk = [ 'phy:/dev/hdX,hda1,w' ]
   1.248 +\end{verbatim}
   1.249 +
   1.250 +В том случае, если используется несколько разделов:
   1.251 +
   1.252 +\begin{verbatim}
   1.253 +disk = [ 'phy:/dev/hdX,hda1,w', 'phy:/dev/hdY,hda2,w' ]
   1.254 +\end{verbatim}
   1.255 +
   1.256 +Если вместо раздела используется файл,
   1.257 +конфигурация дисковой подсистемы выглядит так:
   1.258 +
   1.259 +\begin{verbatim}
   1.260 +disk = [ 'file:/xen/images/debian-host1.img,hda1,w' ]
   1.261 +\end{verbatim}
   1.262 +
   1.263 +В том случае, если используется несколько файлов, 
   1.264 +строка должна выглядеть так:
   1.265 +
   1.266 +\begin{verbatim}
   1.267 +disk = [ 'file:/xen/images/debian-host1.img,hda1,w', 'file:/xen/images/debian-host1-usr.img,hda2,w' ]
   1.268 +\end{verbatim}
   1.269 +
   1.270 +Обратите внимание на то, чтобы записи о диска в конфигурации
   1.271 +виртуальной машины соответствовали файлу \texttt{/etc/fstab}
   1.272 +операционной системы этой машины.
   1.273 +
   1.274 +\subsubsection{Инсталляция и настройка Fedora Core в domU}
   1.275 +
   1.276 +При условии, что домен 0 работает под управлением Debian GNU/Linux, 
   1.277 +а образ гостевой системы подмонтирован в каталог /mnt,
   1.278 +процедура инсталляции выглядит следующим образом:
   1.279 +
   1.280 +\begin{verbatim}
   1.281 +%# apt-get install yum
   1.282 +%# yum -c /tmp/yum-xen.conf --installroot=/mnt -y groupinstall Base
   1.283 +\end{verbatim}
   1.284 +
   1.285 +Пример конфигурационного файла \texttt{yum-xen.conf} (вы можете использовать другой репозиторий и другой уровень отладки):
   1.286 +
   1.287 +\begin{verbatim}
   1.288 +[main]
   1.289 +cachedir=/var/cache/yum
   1.290 +debuglevel=2
   1.291 +logfile=/var/log/yum.log
   1.292 +exclude=*-debuginfo
   1.293 +gpgcheck=0
   1.294 +obsoletes=1
   1.295 +reposdir=/dev/null
   1.296 +
   1.297 +[base]
   1.298 +name=Fedora Core 6 - i386 - Base
   1.299 +#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-6
   1.300 +baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/i386/os/
   1.301 +enabled=1
   1.302 +
   1.303 +[updates-released]
   1.304 +name=Fedora Core 6 - i386 - Released Updates
   1.305 +#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc6
   1.306 +baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/updates/6/i386/
   1.307 +enabled=1
   1.308 +\end{verbatim}
   1.309 +
   1.310 +Если при инсталляции вы получаете ошибку
   1.311 +
   1.312 +\begin{verbatim}
   1.313 +Failed to add groups file for repository: base
   1.314 +Error: No Groups on which to run command
   1.315 +\end{verbatim}
   1.316 +
   1.317 +то модифицируйте код \textit{yum} следующим образом:
   1.318 +
   1.319 +\begin{verbatim}
   1.320 +# cp /usr/share/python-support/yum/yum/comps.py{,.ORIG}
   1.321 +# vi /usr/share/python-support/yum/yum/comps.py        
   1.322 +# diff /usr/share/python-support/yum/yum/comps.py{.ORIG,}
   1.323 +124c124
   1.324 +<                 if type not in ('mandatory', 'default', 'optional'):
   1.325 +---
   1.326 +>                 if type not in ('mandatory', 'default', 'optional', 'conditional'):
   1.327 +143c143
   1.328 +<                 if type not in ('mandatory', 'default', 'optional'):
   1.329 +---
   1.330 +>                 if type not in ('mandatory', 'default', 'optional', 'conditional'):
   1.331 +\end{verbatim}
   1.332 +
   1.333 +Установленную систему можно доработать.
   1.334 +
   1.335 +\textit{Создать некоторые каталоги и файлы устройств.}
   1.336 +
   1.337 +\begin{verbatim}
   1.338 +%# mkdir /mnt/{dev,proc,etc}
   1.339 +%# for i in console null zero ; do /sbin/MAKEDEV -d /mnt/dev -x $i ; done
   1.340 +\end{verbatim}
   1.341 +
   1.342 +\textit{Отключить TLS}.
   1.343 +
   1.344 +\begin{verbatim}
   1.345 +%# mv /mnt/lib/tls /mnt/lib/tls-disabled
   1.346 +\end{verbatim}
   1.347 +
   1.348 +\textit{Создать /etc/fstab}
   1.349 +
   1.350 +\begin{verbatim}
   1.351 +%# cat <<EOL > /mnt/etc/fstab
   1.352 +/dev/sda1               /                       ext3    defaults 1 1
   1.353 +none                    /dev/pts                devpts  gid=5,mode=620 0 0
   1.354 +none                    /dev/shm                tmpfs   defaults 0 0
   1.355 +none                    /proc                   proc    defaults 0 0
   1.356 +none                    /sys                    sysfs   defaults 0 0
   1.357 +/dev/sda2               /mnt                    ext3    defaults 1 2
   1.358 +/dev/sda3               swap                    swap    defaults 0 0
   1.359 +EOL
   1.360 +\end{verbatim}
   1.361 +
   1.362 +\textit{Настроить сетевые интерфейсы}.
   1.363 +
   1.364 +\begin{verbatim}
   1.365 +%# cat <<EOL > /mnt/etc/sysconfig/network
   1.366 +NETWORKING=yes
   1.367 +HOSTNAME=localhost.localdomain
   1.368 +EOL
   1.369 +
   1.370 +cat <<EOL > /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
   1.371 +ONBOOT=yes
   1.372 +DEVICE=eth0
   1.373 +BOOTPROTO=dhcp
   1.374 +EOL
   1.375 +\end{verbatim}
   1.376 +
   1.377 +\textit{Скопировать модули ядра}
   1.378 +
   1.379 +\begin{verbatim}
   1.380 +%# cp -R /lib/modules/2.6.*xen* /mnt/lib/modules/
   1.381 +\end{verbatim}
   1.382 +
   1.383 +\textit{Установить пароль root\rq{}а}
   1.384 +
   1.385 +\begin{verbatim}
   1.386 +%$ sudo chroot /mnt
   1.387 +bash-3.1# pwconv
   1.388 +bash-3.1# passwd
   1.389 +Changing password for user root.
   1.390 +New UNIX password: 
   1.391 +Retype new UNIX password: 
   1.392 +passwd: all authentication tokens updated successfully.
   1.393 +bash-3.1# exit
   1.394 +\end{verbatim}
   1.395 +
   1.396 +\textit{Отключить сообщения об ошибках ядра на консоль} (не обязательно)
   1.397 +
   1.398 +\begin{verbatim}
   1.399 +
   1.400 +\end{verbatim}
   1.401 +
   1.402 +После того как инсталляция закончена, 
   1.403 +можно попробовать запустить домен.
   1.404 +
   1.405 +\begin{verbatim}
   1.406 +%# umount /mnt
   1.407 +%# xm console -c fc
   1.408 +\end{verbatim}
   1.409 +
   1.410 +(здесь \textit{fc} это конфигурационный файл домена).
   1.411 +
   1.412 +\begin{center} \resizebox{10cm}{!}{\includegraphics{/var/lib/mediawiki/images/9/90/Fc-in-xen.png}}\\ \textit{}\end{center}
   1.413 +
   1.414 +\subsubsection{Инсталляция и настройка других дистрибутивов Linux в domU}
   1.415 +\begin{itemize}
   1.416 +\item  Centos5 — описание процедуры подготовки domU для Centos5
   1.417 +\end{itemize}
   1.418 +
   1.419 +\subsubsection{Инсталляция Debian из-под других дистрибутивов Linux}
   1.420 +
   1.421 +\begin{verbatim}
   1.422 +%# wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3_i386.udeb
   1.423 +%# ar t debootstrap-udeb_0.3.3_i386.udeb
   1.424 +%# mkdir debootstrap
   1.425 +%# cd debootstrap
   1.426 +%# tar xvzf ../data.tar.gz
   1.427 +\end{verbatim}
   1.428 +
   1.429 +После этого инсталляция с помощью \textit{./deboostrap} выполняется как обычно.
   1.430 +
   1.431 +\subsection{Запуск виртуальной машины}
   1.432 +<graphviz>
   1.433 +digraph G \{
   1.434 +\begin{verbatim}
   1.435 +node [shape=rectangle];
   1.436 +a [label="Подготовка\nдомена 0"];
   1.437 +b [label="Подготовка\nдомена U"];
   1.438 +c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled];
   1.439 +a -> b;
   1.440 +b -> c;
   1.441 +\end{verbatim}
   1.442 +\}
   1.443 +</graphviz>
   1.444 +
   1.445 +\begin{verbatim}
   1.446 +# xm create -c debian-vm0
   1.447 +\end{verbatim}
   1.448 +
   1.449 +Данная команда запустит новую виртуальную машину и создаст
   1.450 +подключенную к ней консоль (ключ -c).
   1.451 +Можно войти в систему от имени пользователя 
   1.452 +root и настроить сетевой интерфейс eth0.
   1.453 +
   1.454 +Обратите внимание на то, что на консоли (\texttt{/dev/console})
   1.455 +по умолчанию комбинация клавиш Ctrl-C не настроена 
   1.456 +для прерывания процессов.
   1.457 +
   1.458 +Отключиться от консоли виртуальной машины вернуться в
   1.459 +терминал, из которого выполнялось подключение/запуск,
   1.460 +можно с помощью комбинации Ctrl-].
   1.461 +
   1.462 +Вернуться на отключенную консоль
   1.463 +можно с помощью команды:
   1.464 +
   1.465 +\begin{verbatim}
   1.466 +# xm console debian-vm0
   1.467 +\end{verbatim}
   1.468 +
   1.469 +Остановить домен можно командой:
   1.470 +
   1.471 +\begin{verbatim}
   1.472 +# xm shutdown -H debian-vm0
   1.473 +\end{verbatim}
   1.474 +
   1.475 +Выключить домен (как будто бы вырубить виртуальную машину
   1.476 +по питанию), можно с помощью команды:
   1.477 +
   1.478 +\begin{verbatim}
   1.479 +# xm destroy debian-vm0
   1.480 +\end{verbatim}
   1.481 +
   1.482 +Для получения полного списка команд, таких как shutdown, destroy
   1.483 +и т.д. введите:
   1.484 +
   1.485 +\begin{verbatim}
   1.486 +# xm help
   1.487 +\end{verbatim}
   1.488 +
   1.489 +Для того чтобы виртуальная машина (domU) загружалась автоматически,
   1.490 +когда загружает основная система (dom0),
   1.491 +необходимо сделать ссылку на 
   1.492 +конфигурационный файл виртуальной машины:
   1.493 +
   1.494 +\begin{verbatim}
   1.495 +# ln -s <configfile> /etc/xen/auto/
   1.496 +\end{verbatim}
   1.497 +
   1.498 +\subsection{Дополнительные вопросы}
   1.499 +\subsubsection{Сборка ядра Linux под Xen в Debian}
   1.500 +<dl><dd> \textit{Основная страница: \textbf{Сборка ядра Linux под Xen в Debian}}
   1.501 +</dd></dl>
   1.502 +
   1.503 +Ядро Linux, с поддержкой Xen, находящееся в репозитории Debian GNU/Linux
   1.504 +собрано с поддержкой PAE. 
   1.505 +С другой стороны, большое количество систем (FreeBSD, NetBSD, Plan 9 и др.), работающих как гостевые системы в паравиртуальном домене Xen
   1.506 +не поддерживают PAE. 
   1.507 +В этом случае потребуется пересобрать ядро домена 0
   1.508 +без поддержки PAE.
   1.509 +Пересборка ядра может потребоваться и в других случаях.
   1.510 +
   1.511 +\subsection{Возможные проблемы при подготовке и запуске}
   1.512 +Множество проблем, с которыми можно столкнуться
   1.513 +при подготовке и запуске гостевой системы Xen,
   1.514 +описано на странице Xen FAQ.
   1.515 +
   1.516 +\subsubsection{Возможные проблемы с udev}
   1.517 +При старте домена может возникнуть такая проблема:
   1.518 +домен не стартует, на экран выдаётся сообщение
   1.519 +об ошибке:
   1.520 +
   1.521 +\begin{verbatim}
   1.522 +Device 768 (vbd) could not be connected. Hotplug scripts not working.
   1.523 +\end{verbatim}
   1.524 +
   1.525 +\textit{Номер устройства (768) может отличаться.}
   1.526 +
   1.527 +Если такая проблема возникла, причём она не пропадает
   1.528 +ни при отключении сетевых интерфейсов в виртуальной машине;
   1.529 +ни при изменении конфигурации дисков, проблема может быть связана с \textbf{udev}.
   1.530 +
   1.531 +Убедитесь, что udev достаточно новый.
   1.532 +Последние версии udev находятся здесь: http://kernel.org/pub/linux/utils/kernel/hotplug/
   1.533 +
   1.534 +Проверьте, есть ли в конфигурации udev правила xen.
   1.535 +
   1.536 +Если нет, нужно их добавить.
   1.537 +Нужно создать файл \texttt{xen-backend.rules}
   1.538 +в каталоге \texttt{/etc/udev/rules.d} следующего содержания:
   1.539 +
   1.540 +\begin{verbatim}
   1.541 +# cat /etc/udev/rules.d/xen-backend.rules
   1.542 +SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap $env{ACTION}"
   1.543 +SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block $env{ACTION}"
   1.544 +SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm $env{ACTION}"
   1.545 +SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} online"
   1.546 +SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", RUN+="$env{script} offline"
   1.547 +SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/etc/xen/scripts/xen-hotplug-cleanup"
   1.548 +KERNEL=="evtchn", NAME="xen/%k"
   1.549 +\end{verbatim}
   1.550 +
   1.551 +Если такой файл \texttt{xen-backend.rules} уже есть,
   1.552 +можно переименовать его или создать символическую ссылку,
   1.553 +содержащую номер в названии. Правило должно грузиться предпоследним.
   1.554 +
   1.555 +\begin{verbatim}
   1.556 +# cd /etc/udev/rules.d
   1.557 +# mv xen-backend.rules 92-xen-backend.rules
   1.558 +\end{verbatim}
   1.559 +
   1.560 +После этого нужно перезапустить udev и попробовать 
   1.561 +стартануть домен снова.
   1.562 +
   1.563 +\begin{verbatim}
   1.564 +# ps aux | grep udev
   1.565 +root      3321  0.0  0.2   1768   516 ?        S<s  22:51   0:00 udevd --daemon
   1.566 +root      9349  0.0  0.2   1860   640 pts/2    S+   23:27   0:00 grep udev
   1.567 +# udevd --daemon
   1.568 +# ps aux | grep udev
   1.569 +root      9352  0.0  0.2   1768   516 ?        S<s  23:28   0:00 udevd --daemon
   1.570 +root      9356  0.0  0.2   1860   640 pts/2    S+   23:29   0:00 grep udev
   1.571 +\end{verbatim}
   1.572 +
   1.573 +Дополнительные сведения о проблеме: \url{http://marc.theaimsgroup.com/?l=xen-users\&m=114319459529175\&w=2}
   1.574 +