
igor@0: \section{Linux в Xen}
igor@0: 
igor@0: На этой странице описана процедура подготовки
igor@0: гостевой системы под управлением Linux
igor@0: для работы в качестве пользовательского домена Xen
igor@0: (domain U).
igor@0: 
igor@0: \subsection{Начальные требования}
igor@0: <graphviz>
igor@0: digraph G \{
igor@0: \begin{verbatim}
igor@0: node [shape=rectangle];
igor@0: a [label="Подготовка\nдомена 0"];
igor@0: b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled];
igor@0: c [label="Запуск и эксплуатация\nсистемы"];
igor@0: a -> b;
igor@0: b -> c;
igor@0: \end{verbatim}
igor@0: \}
igor@0: </graphviz>
igor@0: 
igor@0: Для выполнение описанных ниже действий
igor@0: необходимо наличие проинсталлированной и настроенной 
igor@0: хост-системы Xen (домена 0).
igor@0: Как это сделать описано на странице Инсталляция Xen.
igor@0: 
igor@0: Предполагается, что в домене 0 установлен Debian GNU/Linux.
igor@0: Для других дистрибутивов некоторые действия будут выполняться
igor@0: иначе.
igor@0: 
igor@0: \subsection{Подготовка образа гостевой системы}
igor@0: \subsubsection{Подготовка дисковых разделов для использования в качестве дисков виртуальной машины}
igor@0: Для того чтобы разделы виртуальной машины
igor@0: соответствовали дисковым разделам реальной машины,
igor@0: используйте следующие шаги:
igor@0: 
igor@0: \begin{verbatim}
igor@0: node [shape=rectangle];
igor@0: a [label="Подготовка\nдомена 0"];
igor@0: b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled];
igor@0: c [label="Запуск и эксплуатация\nсистемы"];
igor@0: a -> b;
igor@0: b -> c;
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если в виртуальной машине должно быть 
igor@0: несколько дисковых разделов,
igor@0: подготовьте их.
igor@0: Например, для /usr:
igor@0: 
igor@0: \begin{verbatim}
igor@0: node [shape=rectangle];
igor@0: a [label="Подготовка\nдомена 0"];
igor@0: b [label="Подготовка\nдомена U"];
igor@0: c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled];
igor@0: a -> b;
igor@0: b -> c;
igor@0: \end{verbatim}
igor@0: 
igor@0: Если вам необходимо пространство подкачки (swap) в виртуальной машине, 
igor@0: подготовьте его с помощью команды mkswap:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # mkswap /dev/hdX
igor@0: \end{verbatim}
igor@0: 
igor@0: \subsubsection{Подготовка файлов для использования в качестве диска виртуальной машины}
igor@0: Создайте файл для использования в качестве основного
igor@0: диска виртуальной машины.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # dd if=/dev/zero of=/xen/images/debian-host1.img bs=1M count=<size_in_MB>
igor@0: # mkfs.ext3 /xen/images/debian-host1.img
igor@0: # mount -o loop /srv/debian-host1.img /mnt
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если в виртуальной машине должно быть 
igor@0: несколько дисковых разделов,
igor@0: подготовьте их.
igor@0: Например, для /usr:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # dd if=/dev/zero of=/xen/images/debian-host1-usr.img bs=1M count=<size_in_MB>
igor@0: # mkfs.ext3 /xen/images/debian-host1-usr.img
igor@0: # mkdir /mnt/usr
igor@0: # mount -o loop /xen/images/debian-host1-usr.img /mnt/usr
igor@0: \end{verbatim}
igor@0: 
igor@0: Если вам необходимо пространство подкачки (swap) в виртуальной машине, 
igor@0: подготовьте его с помощью команды mkswap:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # mkswap /dev/hdX
igor@0: \end{verbatim}
igor@0: 
igor@0: \subsubsection{Подготовка виртуальной системы под управлением Debian GNU/Linux}
igor@0: 
igor@0: \paragraph{Инсталляция ОС Debian GNU/Linux}
igor@0: Этот этап может быть выполнен проще, 
igor@0: если использовать xen-tools.
igor@0: Ниже показано, как провести инсталляцию
igor@0: системы вручную.
igor@0: 
igor@0: Смотрите таже \url{http://www.debuntu.org/2006/05/14/51-how-to-installing-debian-etch-from-a-running-debian-based-system/1/}.
igor@0: 
igor@0: Запустите \textbf{debootstrap} для инсталляция базы
igor@0: системы:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # debootstrap sarge /mnt http://debian.org.ua/debian
igor@0: \end{verbatim}
igor@0: 
igor@0: Скопируйте пакет ядром для работы с Xen,
igor@0: который был подготовлен ранее,
igor@0: в новую виртуальную машину:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # cp linux-xen0-2.6.16-xen_10.00.Custom_i386.deb /mnt/root
igor@0: \end{verbatim}
igor@0: 
igor@0: Сделайте новую файловую систему корневой (с помощью chroot):
igor@0: 
igor@0: \begin{verbatim}
igor@0: # chroot /mnt /bin/bash
igor@0: \end{verbatim}
igor@0: 
igor@0: Проинсталлируйте пакет с ранее подготовленным
igor@0: ядро Xen:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # dpkg -i /root/linux-xen0-2.6.16-xen_10.00.Custom_i386.deb
igor@0: \end{verbatim}
igor@0: 
igor@0: Измените запись, соответствующую корневой системе в файле /etc/fstab:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # vi /etc/fstab
igor@0: /dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
igor@0: \end{verbatim}
igor@0: 
igor@0: Если используется несколько дисковых разделов
igor@0: в виртуальной машине, перечислите их:
igor@0: 
igor@0: \begin{verbatim}
igor@0: /dev/hda2      /usr             ext3    defaults                   0 2
igor@0: /dev/hda3      /var             ext3    defaults                   0 2
igor@0: ...
igor@0: \end{verbatim}
igor@0: 
igor@0: Запустите программу \textbf{base-config} для установки базовой
igor@0: системы Debian.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # base-config new
igor@0: \end{verbatim}
igor@0: 
igor@0: Измените конфигурацию сети в виртуальной машине:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # vi /etc/network/interfaces
igor@0: # vi /etc/resolv.conf
igor@0: # vi /etc/hosts
igor@0: \end{verbatim}
igor@0: 
igor@0: Отключите использование TLS, 
igor@0: в противном случае работа системы может сильно замедлиться.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # mv /lib/tls /lib/tls.disabled
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если используется дистрибутив Etch, 
igor@0: проинсталлируйте \texttt{libc6-xen}.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # apt-get install libc6-xen
igor@0: \end{verbatim}
igor@0: 
igor@0: Отключите лишние терминалы getty, 
igor@0: а первый терминал направьте на файл \texttt{/dev/console}
igor@0: вместо \texttt{/dev/tty1}:
igor@0: 
igor@0: \begin{verbatim}
igor@0: 1:2345:respawn:/sbin/getty 38400 /dev/console
igor@0: #2:23:respawn:/sbin/getty 38400 tty2
igor@0: #3:23:respawn:/sbin/getty 38400 tty3
igor@0: #4:23:respawn:/sbin/getty 38400 tty4
igor@0: #5:23:respawn:/sbin/getty 38400 tty5
igor@0: #6:23:respawn:/sbin/getty 38400 tty6
igor@0: \end{verbatim}
igor@0: 
igor@0: Если в виртуальной машине будут загружаться модули ядра, 
igor@0: установить пакет \texttt{module-init-tools}
igor@0: (обязательно для ядер 2.6 domU).
igor@0: 
igor@0: \begin{verbatim}
igor@0: # apt-get install module-init-tools
igor@0: \end{verbatim}
igor@0: 
igor@0: На этом инсталляция ОС в виртуальной машине завершена, 
igor@0: и можно завершить работу оболочки с изменённой корневой системой (chrooted shell).
igor@0: 
igor@0: \begin{verbatim}
igor@0: # exit
igor@0: \end{verbatim}
igor@0: 
igor@0: Если вы создавали несколько разделов в виртуальной машине, 
igor@0: размонтируйте их, начиная с самой глубокой.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # umount /mnt/usr
igor@0: # umount /mnt/var
igor@0: \end{verbatim}
igor@0: 
igor@0: После чего размонтируйте корневую файловую систему
igor@0: виртуальной машины.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # umount /mnt
igor@0: \end{verbatim}
igor@0: 
igor@0: \paragraph{Конфигурирование виртуальной машины}
igor@0: Необходимо создать конфигурационный файл виртуальной
igor@0: машины.
igor@0: Пусть виртуальная машина называется debian-vm0.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # vi /etc/xen/debian-vm0
igor@0: # Kernel to use
igor@0: kernel = "/boot/xen0-linux-2.6.16-xen"
igor@0: # Memory in megabytes
igor@0: memory = 128
igor@0: # Your domain's name
igor@0: name = "debian-vm0"
igor@0: # Root device
igor@0: root = "/dev/hda1 ro"
igor@0: # Don't forget to specify your bridge correctly here
igor@0: vif = [ 'mac=aa:00:00:00:00:d2, bridge=br-xen' ]
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если использует физический дисковый раздел:
igor@0: 
igor@0: \begin{verbatim}
igor@0: disk = [ 'phy:/dev/hdX,hda1,w' ]
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если используется несколько разделов:
igor@0: 
igor@0: \begin{verbatim}
igor@0: disk = [ 'phy:/dev/hdX,hda1,w', 'phy:/dev/hdY,hda2,w' ]
igor@0: \end{verbatim}
igor@0: 
igor@0: Если вместо раздела используется файл,
igor@0: конфигурация дисковой подсистемы выглядит так:
igor@0: 
igor@0: \begin{verbatim}
igor@0: disk = [ 'file:/xen/images/debian-host1.img,hda1,w' ]
igor@0: \end{verbatim}
igor@0: 
igor@0: В том случае, если используется несколько файлов, 
igor@0: строка должна выглядеть так:
igor@0: 
igor@0: \begin{verbatim}
igor@0: disk = [ 'file:/xen/images/debian-host1.img,hda1,w', 'file:/xen/images/debian-host1-usr.img,hda2,w' ]
igor@0: \end{verbatim}
igor@0: 
igor@0: Обратите внимание на то, чтобы записи о диска в конфигурации
igor@0: виртуальной машины соответствовали файлу \texttt{/etc/fstab}
igor@0: операционной системы этой машины.
igor@0: 
igor@0: \subsubsection{Инсталляция и настройка Fedora Core в domU}
igor@0: 
igor@0: При условии, что домен 0 работает под управлением Debian GNU/Linux, 
igor@0: а образ гостевой системы подмонтирован в каталог /mnt,
igor@0: процедура инсталляции выглядит следующим образом:
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# apt-get install yum
igor@0: %# yum -c /tmp/yum-xen.conf --installroot=/mnt -y groupinstall Base
igor@0: \end{verbatim}
igor@0: 
igor@0: Пример конфигурационного файла \texttt{yum-xen.conf} (вы можете использовать другой репозиторий и другой уровень отладки):
igor@0: 
igor@0: \begin{verbatim}
igor@0: [main]
igor@0: cachedir=/var/cache/yum
igor@0: debuglevel=2
igor@0: logfile=/var/log/yum.log
igor@0: exclude=*-debuginfo
igor@0: gpgcheck=0
igor@0: obsoletes=1
igor@0: reposdir=/dev/null
igor@0: 
igor@0: [base]
igor@0: name=Fedora Core 6 - i386 - Base
igor@0: #mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-6
igor@0: baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/i386/os/
igor@0: enabled=1
igor@0: 
igor@0: [updates-released]
igor@0: name=Fedora Core 6 - i386 - Released Updates
igor@0: #mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc6
igor@0: baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/updates/6/i386/
igor@0: enabled=1
igor@0: \end{verbatim}
igor@0: 
igor@0: Если при инсталляции вы получаете ошибку
igor@0: 
igor@0: \begin{verbatim}
igor@0: Failed to add groups file for repository: base
igor@0: Error: No Groups on which to run command
igor@0: \end{verbatim}
igor@0: 
igor@0: то модифицируйте код \textit{yum} следующим образом:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # cp /usr/share/python-support/yum/yum/comps.py{,.ORIG}
igor@0: # vi /usr/share/python-support/yum/yum/comps.py        
igor@0: # diff /usr/share/python-support/yum/yum/comps.py{.ORIG,}
igor@0: 124c124
igor@0: <                 if type not in ('mandatory', 'default', 'optional'):
igor@0: ---
igor@0: >                 if type not in ('mandatory', 'default', 'optional', 'conditional'):
igor@0: 143c143
igor@0: <                 if type not in ('mandatory', 'default', 'optional'):
igor@0: ---
igor@0: >                 if type not in ('mandatory', 'default', 'optional', 'conditional'):
igor@0: \end{verbatim}
igor@0: 
igor@0: Установленную систему можно доработать.
igor@0: 
igor@0: \textit{Создать некоторые каталоги и файлы устройств.}
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# mkdir /mnt/{dev,proc,etc}
igor@0: %# for i in console null zero ; do /sbin/MAKEDEV -d /mnt/dev -x $i ; done
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Отключить TLS}.
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# mv /mnt/lib/tls /mnt/lib/tls-disabled
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Создать /etc/fstab}
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# cat <<EOL > /mnt/etc/fstab
igor@0: /dev/sda1               /                       ext3    defaults 1 1
igor@0: none                    /dev/pts                devpts  gid=5,mode=620 0 0
igor@0: none                    /dev/shm                tmpfs   defaults 0 0
igor@0: none                    /proc                   proc    defaults 0 0
igor@0: none                    /sys                    sysfs   defaults 0 0
igor@0: /dev/sda2               /mnt                    ext3    defaults 1 2
igor@0: /dev/sda3               swap                    swap    defaults 0 0
igor@0: EOL
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Настроить сетевые интерфейсы}.
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# cat <<EOL > /mnt/etc/sysconfig/network
igor@0: NETWORKING=yes
igor@0: HOSTNAME=localhost.localdomain
igor@0: EOL
igor@0: 
igor@0: cat <<EOL > /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
igor@0: ONBOOT=yes
igor@0: DEVICE=eth0
igor@0: BOOTPROTO=dhcp
igor@0: EOL
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Скопировать модули ядра}
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# cp -R /lib/modules/2.6.*xen* /mnt/lib/modules/
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Установить пароль root\rq{}а}
igor@0: 
igor@0: \begin{verbatim}
igor@0: %$ sudo chroot /mnt
igor@0: bash-3.1# pwconv
igor@0: bash-3.1# passwd
igor@0: Changing password for user root.
igor@0: New UNIX password: 
igor@0: Retype new UNIX password: 
igor@0: passwd: all authentication tokens updated successfully.
igor@0: bash-3.1# exit
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Отключить сообщения об ошибках ядра на консоль} (не обязательно)
igor@0: 
igor@0: \begin{verbatim}
igor@0: 
igor@0: \end{verbatim}
igor@0: 
igor@0: После того как инсталляция закончена, 
igor@0: можно попробовать запустить домен.
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# umount /mnt
igor@0: %# xm console -c fc
igor@0: \end{verbatim}
igor@0: 
igor@0: (здесь \textit{fc} это конфигурационный файл домена).
igor@0: 
igor@0: \begin{center} \resizebox{10cm}{!}{\includegraphics{/var/lib/mediawiki/images/9/90/Fc-in-xen.png}}\\ \textit{}\end{center}
igor@0: 
igor@0: \subsubsection{Инсталляция и настройка других дистрибутивов Linux в domU}
igor@0: \begin{itemize}
igor@0: \item  Centos5 — описание процедуры подготовки domU для Centos5
igor@0: \end{itemize}
igor@0: 
igor@0: \subsubsection{Инсталляция Debian из-под других дистрибутивов Linux}
igor@0: 
igor@0: \begin{verbatim}
igor@0: %# wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3_i386.udeb
igor@0: %# ar t debootstrap-udeb_0.3.3_i386.udeb
igor@0: %# mkdir debootstrap
igor@0: %# cd debootstrap
igor@0: %# tar xvzf ../data.tar.gz
igor@0: \end{verbatim}
igor@0: 
igor@0: После этого инсталляция с помощью \textit{./deboostrap} выполняется как обычно.
igor@0: 
igor@0: \subsection{Запуск виртуальной машины}
igor@0: <graphviz>
igor@0: digraph G \{
igor@0: \begin{verbatim}
igor@0: node [shape=rectangle];
igor@0: a [label="Подготовка\nдомена 0"];
igor@0: b [label="Подготовка\nдомена U"];
igor@0: c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled];
igor@0: a -> b;
igor@0: b -> c;
igor@0: \end{verbatim}
igor@0: \}
igor@0: </graphviz>
igor@0: 
igor@0: \begin{verbatim}
igor@0: # xm create -c debian-vm0
igor@0: \end{verbatim}
igor@0: 
igor@0: Данная команда запустит новую виртуальную машину и создаст
igor@0: подключенную к ней консоль (ключ -c).
igor@0: Можно войти в систему от имени пользователя 
igor@0: root и настроить сетевой интерфейс eth0.
igor@0: 
igor@0: Обратите внимание на то, что на консоли (\texttt{/dev/console})
igor@0: по умолчанию комбинация клавиш Ctrl-C не настроена 
igor@0: для прерывания процессов.
igor@0: 
igor@0: Отключиться от консоли виртуальной машины вернуться в
igor@0: терминал, из которого выполнялось подключение/запуск,
igor@0: можно с помощью комбинации Ctrl-].
igor@0: 
igor@0: Вернуться на отключенную консоль
igor@0: можно с помощью команды:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # xm console debian-vm0
igor@0: \end{verbatim}
igor@0: 
igor@0: Остановить домен можно командой:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # xm shutdown -H debian-vm0
igor@0: \end{verbatim}
igor@0: 
igor@0: Выключить домен (как будто бы вырубить виртуальную машину
igor@0: по питанию), можно с помощью команды:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # xm destroy debian-vm0
igor@0: \end{verbatim}
igor@0: 
igor@0: Для получения полного списка команд, таких как shutdown, destroy
igor@0: и т.д. введите:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # xm help
igor@0: \end{verbatim}
igor@0: 
igor@0: Для того чтобы виртуальная машина (domU) загружалась автоматически,
igor@0: когда загружает основная система (dom0),
igor@0: необходимо сделать ссылку на 
igor@0: конфигурационный файл виртуальной машины:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # ln -s <configfile> /etc/xen/auto/
igor@0: \end{verbatim}
igor@0: 
igor@0: \subsection{Дополнительные вопросы}
igor@0: \subsubsection{Сборка ядра Linux под Xen в Debian}
igor@0: <dl><dd> \textit{Основная страница: \textbf{Сборка ядра Linux под Xen в Debian}}
igor@0: </dd></dl>
igor@0: 
igor@0: Ядро Linux, с поддержкой Xen, находящееся в репозитории Debian GNU/Linux
igor@0: собрано с поддержкой PAE. 
igor@0: С другой стороны, большое количество систем (FreeBSD, NetBSD, Plan 9 и др.), работающих как гостевые системы в паравиртуальном домене Xen
igor@0: не поддерживают PAE. 
igor@0: В этом случае потребуется пересобрать ядро домена 0
igor@0: без поддержки PAE.
igor@0: Пересборка ядра может потребоваться и в других случаях.
igor@0: 
igor@0: \subsection{Возможные проблемы при подготовке и запуске}
igor@0: Множество проблем, с которыми можно столкнуться
igor@0: при подготовке и запуске гостевой системы Xen,
igor@0: описано на странице Xen FAQ.
igor@0: 
igor@0: \subsubsection{Возможные проблемы с udev}
igor@0: При старте домена может возникнуть такая проблема:
igor@0: домен не стартует, на экран выдаётся сообщение
igor@0: об ошибке:
igor@0: 
igor@0: \begin{verbatim}
igor@0: Device 768 (vbd) could not be connected. Hotplug scripts not working.
igor@0: \end{verbatim}
igor@0: 
igor@0: \textit{Номер устройства (768) может отличаться.}
igor@0: 
igor@0: Если такая проблема возникла, причём она не пропадает
igor@0: ни при отключении сетевых интерфейсов в виртуальной машине;
igor@0: ни при изменении конфигурации дисков, проблема может быть связана с \textbf{udev}.
igor@0: 
igor@0: Убедитесь, что udev достаточно новый.
igor@0: Последние версии udev находятся здесь: http://kernel.org/pub/linux/utils/kernel/hotplug/
igor@0: 
igor@0: Проверьте, есть ли в конфигурации udev правила xen.
igor@0: 
igor@0: Если нет, нужно их добавить.
igor@0: Нужно создать файл \texttt{xen-backend.rules}
igor@0: в каталоге \texttt{/etc/udev/rules.d} следующего содержания:
igor@0: 
igor@0: \begin{verbatim}
igor@0: # cat /etc/udev/rules.d/xen-backend.rules
igor@0: SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap $env{ACTION}"
igor@0: SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block $env{ACTION}"
igor@0: SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm $env{ACTION}"
igor@0: SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} online"
igor@0: SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", RUN+="$env{script} offline"
igor@0: SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/etc/xen/scripts/xen-hotplug-cleanup"
igor@0: KERNEL=="evtchn", NAME="xen/%k"
igor@0: \end{verbatim}
igor@0: 
igor@0: Если такой файл \texttt{xen-backend.rules} уже есть,
igor@0: можно переименовать его или создать символическую ссылку,
igor@0: содержащую номер в названии. Правило должно грузиться предпоследним.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # cd /etc/udev/rules.d
igor@0: # mv xen-backend.rules 92-xen-backend.rules
igor@0: \end{verbatim}
igor@0: 
igor@0: После этого нужно перезапустить udev и попробовать 
igor@0: стартануть домен снова.
igor@0: 
igor@0: \begin{verbatim}
igor@0: # ps aux | grep udev
igor@0: root      3321  0.0  0.2   1768   516 ?        S<s  22:51   0:00 udevd --daemon
igor@0: root      9349  0.0  0.2   1860   640 pts/2    S+   23:27   0:00 grep udev
igor@0: # udevd --daemon
igor@0: # ps aux | grep udev
igor@0: root      9352  0.0  0.2   1768   516 ?        S<s  23:28   0:00 udevd --daemon
igor@0: root      9356  0.0  0.2   1860   640 pts/2    S+   23:29   0:00 grep udev
igor@0: \end{verbatim}
igor@0: 
igor@0: Дополнительные сведения о проблеме: \url{http://marc.theaimsgroup.com/?l=xen-users\&m=114319459529175\&w=2}
igor@0: 




