HOWTO Настройка User-Mode Linux

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

В данном HOWTO описывается установка 2-х UML систем и настройки сетевых подключений. Для этого использовалось основное ядро – kernel-2.6.11-gentoo-r6 и ядро vanilla-sources-2.6.11.7 в которое уже изначально включена поддержка UML. В ядро kernel-2.6.11-gentoo-r6 поддержка UML также включена, однако скомпилировать UML ядро из этого исходного кода так мне и не удалось. Зачем это вам надо – незнаю, придумайте сами. :) Может сгодится для чего.

Ядро основной системы должно быть скомпилировано с следующими опциями, для поддержки виртуальной сети:

Device Driver --->
  Networking support --->
    <*>Universal TUN/TAP device driver support
Device Driver --->
  Networking Support --->
    Networking options --->
      [*]Network packet filtering --->
        IP: Netfilter configuration --->
          <*>MASQUERADE target support

Устанавливаем ядро Vanilla:

emerge vanilla-sources

Переходим в каталог с исходным кодом ядра:

cd /usr/src/linux-2.6.11.7

Запускаем конфигурирование ядра UML:

make menuconfig ARCH=um

Ядро UML системы должно быть скомпилировано с следующими опциями:

UML - specific options --->
  <*>Host filesystem
File systems --->
  Pseudo filesystems --->
    [ ]Automatically mount at boot
    [*]Virtual memory file system support

Копируем ядро UML в /usr/local/bin:

cp linux /usr/local/bin/linux

Устанавливаем утилиты, необходимые для работы с UML ядром:

emerge sys-apps/usermode-utilities

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

mkdir /mnt/uml1

cd /mnt/uml1

Разархивируем основные файлы системы (всего около 300Мб) В нашем случае используем системные фаилы с дистрибутива Gentoo 2005.0 оптимизированные для работы с процессором intel Pentium 4:

tar -xvjpf /home/alex/stage3-pentium4-2005.0.tar.bz2

Разархивируем систему портежей. В нашем случае это система портежей по состоянию на 03-03-2005:

mkdir ./usr/portage

cd ./usr/portage

tar -xvjpf /portage-20050303.tar.bz2

mkdir distfiles

Задаем имя UML-системы в файле /mnt/uml1/etc/hostname:

uml1

Удаляем пароль root’а в фаиле /mnt/etc/uml1/etc/shadow Запускаем систему UML, в нашем случае сетевой интерфейс основного ядра – eth0, настроен с IP – адресом 192.168.10.66 и запущен:

linux root=/dev/root rootflags=/mnt/uml1 rootfstype=hostfs eth0=tuntap,,,192.168.10.66

В появившейся консоли вводим пользователя root, затем задаем пароль root’а командой:

passwd

Настраиваем сетевое подключение в файле /etc/conf.d/net, задаем UML-системе IP – адрес 192.168.10.1 Шлюзом настраиваем реальный IP – адрес основной системы, то есть - 192.168.10.66, в противном случае сетевой интерфейс работать не будет.:

iface_eth0="192.168.10.1 broadcast 192.168.10.255 netmask 255.255.255.0"

gateway="eth0/192.168.10.66"

Для работы с виртуальной сетью необходимо в основном ядре выполнить следующее:

emerge iptables

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forvard

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

rc-update add net.eth0 default

Для настройки доступа в интернет необходимо указать имя DNS – сервера, в нашем случае это 192.168.0.85:

File /etc/resolv.conf

nameserver 192.168.0.85

Выключим UML систему для того чтоб создать еще одну UML систему:

reboot

Для создания 2-й UML системы нужно просто скопировать корневой каталог uml1 в каталог uml2:

cd /mnt

mkdir ./uml2

cp -r ./uml1/* ./uml2

Так же необходимо сменить название системы в файле /mnt/uml1/etc/hostname с uml1 на uml2 и IP – адрес системы в файле /mnt/uml1/etc/conf.d/net с 192.168.10.1 на 192.168.10.2: Теперь запустим наши UML системы и для проверки всех сетевых соединений выполним в каждой системе (в том числе и в основной):

ping –c 3 192.168.10.66

ping –c 3 192.168.0.85

ping –c 3 192.168.10.1

ping –c 3 192.168.10.2

ping –c 3 www.gentoo.org

Если проверка везде прошла успешно то системы настроены верно. Интересен тот факт что способ создания корневого раздела указанный на официальном сайте Gentoo, то есть создание корневого раздела, swap – раздела, и при необходимости других, в 1 файле, оказался не работоспособен, поскольку при запуске UML ядро монтировало эти разделы только для чтения, что делало нормальную работу невозможной, однако может быть все дело в радиусе кривизны моих рук. Так же следует заметить что здесь не приводится настройка многих параметров системы, информацию о которых можно получить здесь, из документации на дистрибутив или на официальном сайте Gentoo.

Личные инструменты