Гид по технологиям

Как установить Xen 3.0 из бинарников в Ubuntu 6.06 LTS (Dapper Drake)

• 6 min read • Виртуализация • Обновлено 23 Nov 2025
Установка Xen 3.0 в Ubuntu 6.06 LTS
Установка Xen 3.0 в Ubuntu 6.06 LTS

Кратко: установите Ubuntu 6.06, скачайте и запустите инсталлятор Xen 3.0 из архива, создайте initrd и запись в GRUB, настройте запуск xend/xendomains и создайте образ(ы) гостевых доменов через debootstrap. В статье подробно описаны команды, типичные подводные камни и рекомендации по тестированию и откату.

Важно: инструкция рассчитана на Ubuntu 6.06 LTS (Dapper Drake) и Xen 3.0 — некоторые команды и пути могут отличаться в более новых выпусках.

Версия и автор

Версия 1.0
Автор: Ásgeir Bjarni Ingvarsson
Последнее редактирование: 13 июня 2006 г.

Содержание

  • Шаг 1 — Подготовка базовой системы
  • Шаг 2 — Установка и настройка Xen
  • Шаг 3 — Подготовка гостевых образов и первичный запуск
  • Шаг 4 — Создание первого гостевого домена
  • Контрольные проверки, откат и рекомендации по безопасной эксплуатации
  • Краткий чеклист и глоссарий

1 Установите чистую серверную систему

Установите Ubuntu как обычно. В примере автор использовал три раздела на /dev/hda, но вы можете использовать любую схему, просто учитывайте её при редактировании конфигурационных файлов.

  • hda1 — swap
  • hda2 — 2 ГБ, смонтировано как /
  • hda3 — остальной диск, смонтировано как /xen-images

Важно: пути устройств (/dev/hdaX) и схема разделов зависят от вашего диска; в современных системах устройства могут называться /dev/sdaX.

2 Обновите систему и установите Xen

Откройте root-оболочку, чтобы не вводить sudo для каждой команды:

sudo -s

Обновите систему и установите необходимые пакеты:

apt-get update
apt-get upgrade
apt-get install iproute python python-twisted bridge-utils debootstrap

2.1 Установка Xen и его компонентов

Скачайте и распакуйте tarball Xen 3.0 (пример: xen-3.0.1-install-x86_32.tgz), затем запустите скрипт установки:

tar xvf xen-3.0.1-install-x86_32.tgz
cd xen-3.0.1-install
./install.sh

Проверьте вывод на ошибки — все шаги должны завершиться с OK.

Создайте модули и файлы зависимостей для нового ядра (подставьте корректную версию ядра из /lib/modules):

/sbin/depmod -a 2.6.16-xen

Добавьте параметр loop в файл /etc/mkinitramfs/modules (если используете mkinitramfs):

loop max_loop=64

Если позже закончились loop-устройства — увеличьте max_loop и пересоберите initrd.

Создайте initrd-образ (версия ядра должна совпадать):

cd /boot
mkinitramfs -o initrd.img-2.6.16-xen 2.6.16-xen

Отредактируйте /boot/grub/menu.lst и вставьте следующие строки ДО секции Automagic (сохраните отступы):

title Xen 3.0 / XenLinux 2.6
kernel /boot/xen-3.gz
module /boot/vmlinuz-2.6-xen root=/dev/hda2 ro
module /boot/initrd.img-2.6.16-xen

Чтобы Xen и выбранные гостевые домены автоматически запускались, установите соответствующие уровни запуска. xend должен запускаться раньше, xendomains позже при остановке:

update-rc.d xend start 30 2 3 4 5 . stop 31 0 1 6 .
update-rc.d xendomains start 31 2 3 4 5 . stop 30 0 1 6 .

Отключите Thread-Local Storage (TLS). После обновлений проверяйте это снова:

mv /lib/tls /lib/tls.disabled

Important: изменение /lib/tls может повлиять на другие приложения — выполняйте только если указано в инструкции и вы понимаете последствия.

2.2 Временные обходы (может не понадобиться в будущих релизах)

Переименуйте правила udev, если необходимо:

mv /etc/udev/rules.d/xen-backend.rules /etc/udev/rules.d/92-xen-backend.rules

Убедитесь, что каталоги /var/run/xenstored и /var/run/xend существуют — отредактируйте /etc/init.d/xend и добавьте после проверки /proc/xen/capabilities:

if [ ! -d /var/run/xend ] ; then
    mkdir -p /var/run/xend
fi

if [ ! -d /var/run/xenstored ] ; then
    mkdir -p /var/run/xenstored
fi

В /etc/init.d/xendomains измените LOCKFILE на:

LOCKFILE=/var/lock/xendomains

2.3 Перезагрузка и проверка

Перезагрузите систему. После загрузки проверьте список доменов:

xm list

Ожидаемый пример вывода:

Name                              ID Mem(MiB) VCPUs State  Time(s)
Domain-0                           0      463     1 r-----    42.3

Если Domain-0 виден и xend запущен — переходите дальше.

3 Настройка гостевых доменов

3.1 Создание образов дисков и первичный bootstrap

Создайте точку монтирования для образов:

mkdir -p /xen-images/mnt

Создайте образ 1 ГБ и swap 500 МБ (увеличьте при необходимости):

dd if=/dev/zero of=/xen-images/guest_base.img bs=1024k count=1000
dd if=/dev/zero of=/xen-images/guest_base-swap.img bs=1024k count=500

Ограничьте права доступа на файлы образов:

chmod 640 /xen-images/guest_base*

Отформатируйте образ как ext3 и swap. Если mkfs предупредит, что файл не блочное устройство, подтвердите — это нормально.

mkfs.ext3 /xen-images/guest_base.img
mkswap /xen-images/guest_base-swap.img

Смонтируйте образ и сделайте bootstrap Ubuntu (замените зеркало на ближайшее к вам):

mount -o loop /xen-images/guest_base.img /xen-images/mnt
debootstrap --arch i386 dapper /xen-images/mnt http://archive.ubuntu.com/ubuntu/

Скопируйте /etc/apt/sources.list внутрь образа:

cp /etc/apt/sources.list /xen-images/mnt/etc/apt/

Скопируйте модули ядра в образ:

cp -dpR /lib/modules/2.6.16-xen /xen-images/mnt/lib/modules/

Отключите TLS внутри образа:

mv /xen-images/mnt/lib/tls /xen-images/mnt/lib/tls.disabled

Отредактируйте сетевые настройки гостя в /xen-images/mnt/etc/network/interfaces (пример):

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# Uncomment this and configure after the system has booted for the first time
#auto eth0
#iface eth0 inet static
#        address 192.168.0.101
#        netmask 255.255.255.0
#        broadcast 192.168.0.255
#        gateway 192.168.0.1
#        dns-nameservers 192.168.0.1

Создайте /xen-images/mnt/etc/hosts с минимальными записями:

127.0.0.1       localhost localhost.localdomain
127.0.0.1       guest

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Запишите имя хоста:

echo guest > /xen-images/mnt/etc/hostname

Отредактируйте /xen-images/mnt/etc/fstab (пример):

proc            /proc       proc    defaults    0 0
/dev/hda1       /           ext3    defaults,errors=remount-ro    0 1
/dev/hda2       none        swap    sw          0 0

Отмонтируйте образ:

umount /xen-images/mnt

Если появится предупреждение «device is busy» — обычно это безопасно и можно продолжать.

3.2 Первичный запуск образа для финальной настройки

Создайте конфигурационный файл гостя /etc/xen/baseimage с содержимым:

#  -*- mode: python; -*-
kernel = "/boot/vmlinuz-2.6.16-xen"
ramdisk = "/boot/initrd.img-2.6.16-xen"
memory = 128
name = "baseimage"
vif = ['bridge=xenbr0']
disk = ['file:/xen-images/guest_base.img,hda1,w','file:/xen-images/guest_base-swap.img,hda2,w']
ip = "192.168.0.101"
netmask = "255.255.255.0"
gateway = "192.168.0.1"
hostname = "baseimage"
root = "/dev/hda1 ro"
extra = "4"

Запустите гостя в консольном режиме:

xm create baseimage -c

Войдите как root и задайте пароль. Затем включите shadow-пароли:

shadowconfig on

Сделайте резервную копию сетевого файла:

cp /etc/network/interfaces /etc/network/interfaces.bak

Отредактируйте /etc/network/interfaces внутри гостя, укажите корректные параметры сети и поднимите интерфейсы:

ifup -a

Установите базовые пакеты:

apt-get update
apt-get install ubuntu-base configure-debian openssh-server

Опять отключите TLS внутри гостя, если нужно:

mv /lib/tls /lib/tls.disabled

Выполните рекомендуемые настройки системы, например:

configure-debian

Добавьте созданного пользователя в /etc/sudoers через visudo.

После конфигурации остановите сеть и верните резервную копию interfaces:

ifdown -a
mv /etc/network/interfaces.bak /etc/network/interfaces

Выключите гостя — базовый образ готов к клонированию.

4 Создание первого гостевого домена

Скопируйте базовые образы для нового гостя:

cp /xen-images/guest_base.img /xen-images/guestdom1.img
cp /xen-images/guest_base-swap.img /xen-images/guestdom1-swap.img

Скопируйте конфигурационный файл:

cp /etc/xen/baseimage /etc/xen/guestdom1

Отредактируйте /etc/xen/guestdom1: смените name, disk и hostname:

name = "guestdom1"
disk = ['file:/xen-images/guestdom1.img,hda1,w','file:/xen-images/guestdom1-swap.img,hda2,w']
hostname = "guestdom1"

Для каждого нового гостя надо корректировать как минимум файлы:

  • /etc/hostname
  • /etc/hosts
  • /etc/network/interfaces

Чтобы гость автоматически запускался и Domain-0 ожидал его перед выключением, создайте символьную ссылку:

ln -s /etc/xen/guestdom1 /etc/xen/auto/

Если хотите запускать вручную:

xm create guestdom1

Для подробной информации смотрите документацию Xen.

Контрольные проверки, тесты и откат

Краткая методология тестирования перед вводом в продуктив:

  1. После установки Xen и перезагрузки выполните xm list и проверьте Domain-0.
  2. Создайте и запустите один тестовый гость с минимальными ресурсами (128 МБ).
  3. Проверьте сетевые соединения из гостя (ping, apt-get update).
  4. Проверьте монтирование образов и целостность файловой системы.

Критерии приёмки:

  • Domain-0 стабильный и не падает под нагрузкой обычных сервисов.
  • Гость загружается, получает сеть и может обновляться через apt.
  • Нет ошибок в логах xend/xenstored при старте/остановке.

Откат/rollback (минимальный план):

  • Держите резервную копию /boot/menu.lst и initrd.
  • Если после установки Xen система не загружается — верните старую запись GRUB и initrd, загрузитесь в старом ядре.
  • До внесения глобальных изменений делайте snapshot (если поддерживается) или копию образов.

Чеклист ролей (кто что делает)

  • Администратор Domain-0: установка Xen, kernel/initrd, GRUB, управление xend/xenstored.
  • Системный администратор гостя: настройка сети внутри гостя, обновления пакетов, управление пользователями.
  • Сеть/Firewall: проверка мостов (bridge) и правил Shorewall/iptables.

Меры безопасности и советы

  • Не давайте лишних прав к файлам образов — chmod 640 как минимум.
  • Domain-0 — самый привилегированный узел: минимизируйте на нём сервисы.
  • Проверяйте каждое обновление ядра: пересобирайте initrd и проверяйте совместимость модулей.

Частые проблемы и когда это не сработает

  • Если ваше железо слишком новое, драйверы и схема устройства (sda вместо hda) могут отличаться — адаптируйте пути.
  • В новых версиях Ubuntu/ Debian способы создания initrd и имена пакетов изменились — эта инструкция специфична для Dapper/2006 года.
  • Thread-Local Storage («/lib/tls») может быть необходим приложениям — убедитесь, что отключение безопасно для вашего окружения.

Краткий глоссарий

  • Domain-0 — привилегированный домен (хост), где запускается гипервизор и управляющие службы.
  • xm — утилита управления Xen (создание/список/остановка доменов).
  • xend/xenstored — демоны управления Xen.
  • initrd — образ временной корневой FS при загрузке ядра.

Ресурсы и ссылки

Оригинальные и дополнительные ресурсы автора и сообщества:

Другие полезные материалы:


Краткое резюме

  • Установка Xen 3.0 из бинарника требует: распаковки install-скрипта, создания initrd, правок GRUB и настройки xend/xendomains.
  • Гостевые образы удобнее готовить через debootstrap и loop-файлы.
  • Тестируйте на одном госте и имейте план отката перед масштабированием.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро