Настройка Xen · 5 min read · Feb 10, 2026

Идеальная настройка Xen 3.0.3 для Debian Sarge - Страница 3

4.4 Создание Виртуальной Машины (domU)

(Обратите внимание: создание образа зависит от того, установили ли вы Xen из исходников или из бинарных файлов. Если вы установили Xen из бинарных файлов, пожалуйста, обратитесь к главе 5.2!)

Далее мы создаем образ виртуальной машины. Это будет базовая система Debian. Этот образ станет шаблоном для всех наших виртуальных машин. Каждый раз, когда мы хотим создать новую виртуальную машину, мы просто копируем этот образ, создаем новый конфигурационный файл Xen и загружаем копию, а затем можем настроить копию под наши нужды (например, установить почтовый сервер, веб-сервер, DNS-сервер и т.д.). Все наши образы будут находиться на разделе /vserver, который должен быть самым большим из имеющихся.

mkdir /vserver/vm_base  
mkdir /vserver/images

Теперь мы создаем файл образа размером 1 ГБ и файл подкачки размером 500 МБ. В итоге виртуальные машины будут иметь 1 ГБ пространства и 500 МБ подкачки. Это всего лишь примерные значения, в реальном мире вам может понадобиться больше места для ваших виртуальных машин (например, от 5 до 30 ГБ), поэтому просто увеличьте значение count для создания больших образов.

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

Затем мы форматируем /vserver/images/vm_base.img с ext3 и vm_base-swap.img с swap:

mkfs.ext3 /vserver/images/vm_base.img

Когда вы увидите следующее, ответьте y:

/vserver/images/mail.img is not a block special device.  
Proceed anyway? (y,n) <-- y
mkswap /vserver/images/vm_base-swap.img

4.4.1 Установка Базового Debian В Образ

Чтобы установить базовую систему Debian в наш образ, мы монтируем образ, запускаем debootstrap и несколько других команд:

mount -o loop /vserver/images/vm_base.img /vserver/vm_base  
debootstrap --arch i386 sarge /vserver/vm_base/ http://ftp2.de.debian.org/debian
chroot /vserver/vm_base  
apt-setup

Вам будет задан следующий вопрос:

Метод доступа к архиву для apt: <– http

Затем выберите зеркало, близкое к вам.

После этого отредактируйте /etc/apt/sources.list и замените testing на stable. Вот как выглядит мой /etc/apt/sources.list:

vi /etc/apt/sources.list

| deb http://ftp2.de.debian.org/debian/ stable main deb-src http://ftp2.de.debian.org/debian/ stable main deb http://security.debian.org/ stable/updates main |

Затем выполните

apt-get update

Теперь мы настраиваем наши локали. Если мы не сделаем это сейчас, мы увидим несколько некрасивых предупреждений во время base-config, таких как:

| perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_DE:en_US:en_GB:en", LC_ALL = (unset), LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory |

Они не серьезные, но некрасивые… Поэтому мы запускаем

apt-get install localeconf

Вам будет задано несколько вопросов:

Выберите локали для генерации. <– en_US ISO-8859-1
Какая локаль должна быть по умолчанию в системной среде? <– en_US
Управлять файлами конфигурации локали с помощью debconf? <– Да
Настройки окружения, которые должны переопределить локаль по умолчанию: <– не выбирайте ничего
Заменить существующие файлы конфигурации локали? <– Да
Локаль системы по умолчанию: <– например, en_US ISO-8859-1

Затем выполните

base-config

Вы увидите меню с вариантами установки. Вот что мы делаем:

  1. Настроить часовой пояс
  2. Настроить пользователей и пароли
  3. Выбрать и установить пакеты (когда дойдет до Выбрать программное обеспечение для установки:, вы можете выбрать что угодно; я, однако, ничего не выбираю, потому что хочу установить базовую систему.)
  4. Завершить настройку базовой системы

Не обращайте внимания на другие пункты меню, они вам не нужны. Затем мы удаляем nfs-common и удаляем /etc/hostname:

apt-get remove nfs-common  
rm -f /etc/hostname

Затем редактируем /etc/fstab. Он должен выглядеть так:

vi /etc/fstab

| /dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0 /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 |

Измените /etc/network/interfaces, чтобы он выглядел так:

vi /etc/network/interfaces

| auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 |

Затем создайте /etc/hosts:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost # Следующие строки желательны для хостов, поддерживающих IPv6 ::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 |

Затем мы редактируем скрипты /etc/init.d/hwclock.sh и /etc/init.d/hwclockfirst.sh и добавляем строку exit 0 в самом начале, потому что в противном случае эти два скрипта действительно замедлят загрузку наших виртуальных машин:

vi /etc/init.d/hwclock.sh

| #!/bin/sh # hwclock.sh Установить и настроить CMOS часы, в соответствии с UTC # настройкой в /etc/default/rcS (см. также rcS(5)). # # Версия: @(#)hwclock.sh 2.00 14-Дек-1998 [email protected] # # Патчи: # 2000-01-30 Henrique M. Holschuh <[email protected]> # - Небольшие косметические изменения в попытке помочь новым # пользователям заметить, что что-то меняет их часы # во время загрузки/выключения. # - Добавлены комментарии, чтобы предупредить пользователей о проблемах с hwclock # и не поощрять вмешательство без должного чтения документации. # ПРЕДУПРЕЖДЕНИЕ: Пожалуйста, прочитайте /usr/share/doc/util-linux/README.Debian.hwclock # перед изменением этого файла. Вы рискуете серьезным # неправильным поведением часов. exit 0 [...] |

vi /etc/init.d/hwclockfirst.sh

| #!/bin/bash # hwclockfirst.sh Установить системные часы на аппаратные часы, в соответствии с UTC # настройкой в /etc/default/rcS (см. также rcS(5)). # # ПРЕДУПРЕЖДЕНИЕ: Работает без прав на запись в /etc, и перед # монтированием всех файловых систем! Если вам нужны права на запись # для выполнения чего-либо, сделайте это в hwclock.sh. # # ПРЕДУПРЕЖДЕНИЕ: Если ваши аппаратные часы не находятся в UTC/GMT, этот скрипт # должен знать местный часовой пояс. Эта информация # хранится в /etc/localtime. Это может быть проблемой, если # ваш /etc/localtime является символической ссылкой на что-то в # /usr/share/zoneinfo И /usr не находится в корневом # разделе! Решение - определить TZ либо # в /etc/default/rcS, либо в соответствующем месте ниже. # # НЕ ЗАБУДЬТЕ РЕДАКТИРОВАТЬ hwclock.sh ТАКЖЕ! # Установите это на любые параметры, которые вам могут понадобиться для hwclock, такие # как тип аппаратных часов машины для Alphas. exit 0 HWCLOCKPARS= [...] |

Теперь мы выходим из окружения chroot:

exit

Затем мы копируем модули ядра в наш образ виртуальной машины и размонтируем образ:

cp -dpR /lib/modules/2.6.16.29-xenU /vserver/vm_base/lib/modules/  
mv /vserver/vm_base/lib/tls /vserver/vm_base/lib/tls.disabled  
fuser -k /vserver/vm_base  
umount /vserver/vm_base

Теперь наш шаблон образа виртуальной машины готов!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.