Архив рубрики: QEMU

Настраиваем QEMU виртуализацию под консольным FreeBSD

Добрый день уважаемые Коллегы!
В данной статье я расскажу про настройку виртуальной машины под консольным FreeBSD.
Для простоты я не буду углубляться в подробности настроек.

Имеем: Сервер. FreeBSD 8.0-RELEASE. Порты обновлены. X не установлены.
Задача: Настроить дополнительно виртуальную машину на данном сервере.

Поехали:

Qemu ставим из портов.


cd /usr/ports/emulator/qemu
make -DWITH_KQEMU
make install clean

Включаем модуль акселерации и модуль асинхронного ввода-вывода:


kldload if_tap
kldload kqemu
kldload aio

Для автоматического подключения при загрузке добавляем в /boot/loader.conf


if_tap_load="YES"
kqemu_load="YES"
aio_load="YES"

На этом закончили с модулями ядра.

Поднимаем виртуальный сетевой интерфейс и мост для дальнейшего использования его на нашей виртуальной машине:


ifconfig tap0 create
ifconfig bridge0 create
ifconfig bridge0 addm em0 addm tap0 up

Чтобы мост создавался при загрузке, нужно добавить две строки в конфигурационный файл /etc/rc.conf:


cloned_interfaces="tap0 bridge0"
ifconfig_bridge0="addm em0 addm tap0 up"

Включаем автоматическое поднятие интерфейса tap0

sysctl net.link.tap.up_on_open=1

Разрешаем непривилегированному пользователю соединяться с интерфейсом tap0

sysctl net.link.tap.user_open=1

Чтобы эти переменные инициализировалась при загрузке, нужно добавить строки в конфигурационный файл /etc/sysctl.conf:


net.link.tap.up_on_open=1
net.link.tap.user_open=1

Разрешаем непривилегированному пользователю открывать устройство /dev/tap0

chmod 666 /dev/tap0

Файлы устройств пересоздаются каждый раз при загрузке системы, поэтому права доступа на файл после перезагрузки вернутся в исходное состояние (600). Поэтому следует задавать права доступа к устройству не через chmod, а через правила devfs. Для этого нужно добавить строку в конфигурационный файл /etc/devfs.conf:

perm tap0 0666

Создаем диск:


qemu-img create /data/windows.img 14096M

Стартуем

qemu -localtime -m 512 -boot d -cdrom /home/distrib/xp.iso -hda /data/windows.img -name "Windows" -vnc 192.168.0.2:1

Где 192.168.0.2 ip сервера.

Подключаемся удаленно к 192.168.0.2 через vnc и ставим ОС

Ну и, наконец, запускаем Windows.

qemu -localtime -m 512 -boot c -hda /data/windows.img -name "Windows" -net nic,macaddr=52:54:00:12:34:56 -net tap,ifname=tap0 -vnc 192.168.0.2:1&