Искусство виртуализации Евгений Зобнин aka j1m Хакер, номер #089, стр. 089-094-4 # отводим 64 Мб оперативной памяти memory = 64 # имя может быть любым name = "ubuntu" # эмулируем одну сетевую карту nics = 1 # мак-адрес и IP-адрес (нужен для маршрутизации) vif = [ 'mac=fe:fd:00:00:00:11, ip=10.0.0.1' ] # гостевая ОС будет видеть только два раздела диска (здесь /dev/hda2 - корень, а /dev/hda3 - своп) disk = [ 'phy:hda2,hda2,w', 'phy:hda3,hda3,w' ] # указываем корневой раздел root = "/dev/hda2 ro" # параметры, передаваемые ядру (указываем только уровень инициализации для init) extra = "3" Теперь нужно снова примонтировать раздел с Ubuntu (/dev/hda2) и отредактировать соответствующим образом его конфиг /etc/fstab. Дело осталось за малым. Набираем команду "xm create ubuntu -c" и получаем доступ к первой консоли Ubuntu, на которой можно наблюдать загрузку ядра и инициализацию, а затем и приглашение к регистрации в системе. Обратно в xterm выходим через комбинацию <Ctrl+]>, возвращаемся в Ubuntu с помощью команды "xm console ubuntu". [реактивный qemu] С моей стороны было бы преступлением не рассказать про эмулятор ПК qemu, одно из главных достоинств которого - высокая скорость эмуляции. Автор qemu, Фабрис Беллард (Fabrice Bellard), - человек очень компетентный в данном вопросе. Он даже выложил на своем сайте документ, где поделился секретами оптимизации кода эмуляции. Вторая отличительная черта qemu - возможность работы в двух режимах: режиме эмуляции всего ПК и режиме эмуляции процессора. Первый режим позволяет запускать операционные системы внутри эмулятора, а второй - исполнять бинарные файлы на процессоре иной архитектуры. Например, с помощью qemu можно запустить бинарник от PowerPC на обычном пентиуме. Сейчас qemu поддерживает эмуляцию процессоров архитектуры x86, ARM, SPARC, PowerPC и MIPS. Сам эмулятор может работать на множестве архитектур, в операционных системах семейства UNIX, Windows и MacOS X. Относительно недавно разработчик выложил на своем сайте (fabrice.bellard.free.fr) модуль ядра Linux - kqemu, превращающий qemu в настоящую виртуальную машину (двоичный код теперь исполняется не виртуальным процессором, а физическим). Код модуля не доступен, и автор его не раскроет, пока не получит материальной поддержки. Однако энтузиасты из open source сообщества время даром не теряли и уже выпустили alpha-версию альтернативного модуля qvm86 (www.qvm86.org), бинарно совместимого с kqemu. Текущая версия qemu (0.8) воссоздает следующую аппаратную конфигурацию: чипсет i440, видеокарта Cirrus CLGD 5446, мышь и клавиатура с интерфейсом PS/2, сетевая карта NE2000, звуковая карта Creative SoundBlaster 16. Кроме того, qemu эмулирует последовательные, параллельные, USB-порты и поддерживает SMP, вплоть до 255 процессоров. [добро пожаловать в виртуальный мир] Настало время опробовать qemu в деле. Скачиваем последнюю версию qemu и kqemu с официальной странички (fabrice.bellard.free.fr/qemu), распаковываем архив qemu-0.8.0.tar.gz в каталог /tmp, а kqemu-0.7.2.tar.gz - в новообразованный /tmp/qemu-0.8.0. В нем набираем, ставшие уже классическими, команды: "./configure && make && make install". Инсталлятор установит бинарник qemu и сопутствующие файлы, а также поместит модуль kqemu в /lib/modules. Для работы kqemu требует доступ к tmpfs, поэтому в /etc/fstab необходимо добавить строку "tmpfs /dev/shm tmpfs defaults 0 0", выполнить команду "mount -a" и подгрузить модуль: "modprobe kqemu". |