Настройка 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) <-- ymkswap /vserver/images/vm_base-swap.img4.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/debianchroot /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Вы увидите меню с вариантами установки. Вот что мы делаем:
- Настроить часовой пояс
- Настроить пользователей и пароли
- Выбрать и установить пакеты (когда дойдет до Выбрать программное обеспечение для установки:, вы можете выбрать что угодно; я, однако, ничего не выбираю, потому что хочу установить базовую систему.)
- Завершить настройку базовой системы
Не обращайте внимания на другие пункты меню, они вам не нужны. Затем мы удаляем 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Теперь наш шаблон образа виртуальной машины готов!
Get new posts in your inbox
No spam. Unsubscribe anytime.