User Mode Linux: различия между версиями
Rain (обсуждение | вклад) (Новая: User Mode Linux - тип виртуализации на базе Linux-ядра, когда ядро компилируется как обчный исполняемый файл, сл...) |
Rain (обсуждение | вклад) |
||
Строка 54: | Строка 54: | ||
[[Category:User Mode Linux]][[Category: | [[Category:User Mode Linux]][[Category:Linux]] |
Версия 00:59, 26 октября 2008
User Mode Linux - тип виртуализации на базе Linux-ядра, когда ядро компилируется как обчный исполняемый файл, следовательно, гостевая система запускается просто как еще один (несколько) процессов на хост-системе.
Создание виртуальной UML-машины
Для создания виртуальной машины необходимо проделать 2 шага: скомпилировать ядро и создать образ корневой файловой системы.
Компиляция ядра
Все, что необходимо для создания ядра User Mode Linux присутствует в ванильном дереве, поэтому ничего докачивать и патчить не придется. Берем свежий архив исходного кода ядра, распаковываем, после чего выполняем 2 команды:
export ARCH=um make defconfig make menuconfig
Первая команда задаст архитектуру ядра, т.е., в данном случае UML, вторая сгенерирует дефолтный конфиг. Если же необходимо использовать конфиг от старого ядра - скопируйте его под именем .config в корень дерева исходников, в этом случае вторую команду можно пропустить. Последняя команда открывает конфигуратор ядра. Рекомендую собирать ядро без поддержки подулей, в таком случае на выходе получится только один бинарный файл размером примерно 3 Мб. Не забудьте включить поддержку виртуального блочного устройства и той файловой системы, которую Вы планируете использовать для образа корневой ФС. После завершения конфигурирования ядра выполняем еще одну команду:
make
Если Вы последовали совету и собирали ядро без модулей, то через несколько минут в корне дерева исходников появится бинарный файл linux - это и есть необходимое нам ядро. Сохраните его под удобным для Вас именем в отдельном каталоге.
Создание образа корневой ФС
Для создания образа корневой файловой системы необходимо создать пустой файл нужного размера, форматировать его, после чего распаковать туда базовую систему какого-либо дистрибутива Linux. Для начала создадим этот виртуальный раздел жесткого диска:
dd if=/dev/zero of=rootfs bs=1M count=1024 mkfs.reiserfs -f rootfs mkdir /tmp/rootfs mount -o loop rootfs /tmp/rootfs
Образ размером 1 Гб создан, форматирован в ReiserFS и примонтирован, осталось распаковать на него базовую систему. В Debian GNU/Linux для этого можно воспользоваться утилитой debootstrap:
debootstrap lenny /tmp/rootfs http://debian.org.ua/debian
как вариант - можно воспользоваться скриптом для полуавтоматической установки Debian.
Итак, образ корневой ФС создан, отмонтируем его командой umount.
Запуск UML-машины
Для запуска нашей UML-машины выполните наше ядро Linux как обычный бинарный файл, передав ему в качестве аргумента путь к образу корневой ФС:
./linux32 ubda=rootfs