|
В этой статье мы рассмотрим: как установить Windows XP / 2003 / др на FReeBSD в виртуальной машине qemu? Что такое qemu? как установить и настроить qemu? Виртуальная машина под FreeBSD. Как сделать терминальный сервер Windows под FreeBSD?
QEMU это свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Включая в себя эмуляцию процессоров Intel x86, что собственно и требуется. Отличается очень быстрой эмуляцией при спользовании специального модуля, названного kqemu. Изначально модуль kqemu имел проприетарную лицензнию, но в данный момент он запущен под GNU GPL. Задача, поднять на сервере FReeBSD терминальный сервер(или просто машину) на Windows XP (2003). Чтобы на используемом сервере не было запущено иксов, а все функции выполнялись в фоне. 1. Обновляем порты. portsnap fetch update Ставим qemu: #cd /usr/ports/emulators/qemu #make -DWITH_KQEMU -DWITH_HACKS && make install clean создаём диск который будет использоваться qemu #mkdir /usr/local/win #qemu-img create /usr/local/win/winxp.img 4096M Диск будет 4 гигобайта, под мои нужды его хватит, свой размер выбирайте сами. 2. Устанавливаем Windows. Запускаем qemu коммандой #qemu -full-screen -localtime -m 512 -cdrom /dev/acd0 -boot d /usr/local/win/winxp.img -full-screen - полный экран. -m 512 - количество используемой памяти, старайтесь оставить системе порядка 25% общего объёма -cdrom /dev/acd0 - указываем источник cdrom'a и указываем диск Устанавливаем Windows обычным способом. 3. Подгружаем модуль #kldload kqemu #kldload aio Для автоматической загрузки при старте в #/boot/loader.conf добавляем #kqemu_load="YES" #aio_load="YES" 4. Настраиваем сеть.
создаём файл, к примеру - /etc/qemu-ifup, в него забиваем
kldload bridge sysctl net.link.ether.bridge.enable=1 sysctl net.link.ether.bridge.ipfw=1 # эту строчку пишем, если хотим использовать ipfw для фильтрования # пакетов внутри моста через ipfw. По умолчанию не нужна. sysctl net.link.ether.bridge.ipf=1 # эту строчку пишем, если хотим фильтровать пакеты внутри моста # через ipfilter. По умолчанию не нужна. sysctl net.link.ether.bridge.config=rl0,tap0 # где rl0 - физический сетевой интерфейс, через который виртуальная винда # должна будет видеть вашу сеть. делаем его исполняемым
# chmod +x /etc/qemu-ifup выполняем #/etc/qemu-ifup 5. Запускаем qemu:
# qemu -k ru -kernel-kqemu -full-screen -localtime -boot c /usr/local/win/win.img -net nic -net tap -m 512 замечаем, что создался tap интерфейс с пидом процесса qemu. Отключаем все ненужные службы, оптимизируем, даём ip адрес. 6. Запуск в фоне: в /usr/local/etc/rc.d/qemu.sh добавляем
/etc/qemu-ifup /usr/local/bin/qemu /usr/local/bin/qemu -nographic -parallel null -serial null -monitor null -k ru -kernel-kqemu -localtime -net nic -net tap -m 512 -boot c /usr/local/win/win.img & делаем его исполняемым #chmod +x /usr/local/etc/rc.d/qemu.sh Всё. при следующей перезагрузке запускается виртуальная машина с windows xp\2003, которым можно рулить при помощи терминала.
обсудить статью |
Комментарии
но сначала нужно настроить машину, там где есть иксы ( устанвоить систему и пр.) Цитировать
qemu может работать без X-сервера? (без графической оболочки freeBSD?) Цитировать
По сравнению с эталоном, процентов 20 потеря, во всяком случае была у меня. Цитировать
насколько тормозит? Цитировать