Суть в том что простаивает фактически у меня роутер для интернета и давно уже хотелось его слегка нагрузить,
выбор пал на установку виртуальной машины qemu, давноу же хотел по настоянию хозейв здешней местности.
поехали:
Установка и запуск QEMU на FREEBSD, для установки FREEBSD
Обновляем дерево портов в системе или качаем новую коллекцию портов.
cd /usr/ports/emulators/qemu
make config
Выбираем
Код: Выделить всё
KQEMU
RTL8139_TIMER
SDL
GNUTLS
CDROM_DMA
Код: Выделить всё
make install clean
Код: Выделить всё
kldload if_tap if_bridge kqemu aio
Код: Выделить всё
echo 'kqemu_load="YES"' >> /boot/loader.conf
echo 'ng_bridge_load="YES"' >> /boot/loader.conf
echo 'if_tap_load="YES"' >> /boot/loader.conf
Код: Выделить всё
mkdir /usr/local/etc/qemu/virtual
Код: Выделить всё
qemu-img create /usr/local/etc/qemu/virtual/FreeBSD.7.img 12GB
Сеть для доступа к виртуальной машине:
существуют различные варианты работы с сетью в qemu, я остановился на bridge.
Код: Выделить всё
ifconfig bridge0 create
ifconfig bridge0 addm rl1 addm tap0 up
Код: Выделить всё
echo 'cloned_interfaces="tap0 bridge0"' >> /etc/rc.conf
echo 'ifconfig_bridge0="addm rl1 addm tap0 up"' >> /etc/rc.conf
Код: Выделить всё
sysctl net.link.tap.up_on_open=1
sysctl net.link.tap.user_open=1
chmod 666 /dev/tap0
Код: Выделить всё
echo 'net.link.tap.up_on_open=1' >> /etc/sysctl.conf
echo 'net.link.tap.user_open=1' >> /etc/sysctl.conf
echo 'perm tap0 0666' >> /etc/devfs.conf
Собственно дальше копируем образ FreeBSD в папку /usr/local/etc/qemu/virtual
Запускаем нашу систему
Код: Выделить всё
cat /usr/local/etc/qemu/start.sh
Код: Выделить всё
qemu -kernel-kqemu \
-hda /usr/local/etc/qemu/image/FreeBSD.7.img \
-cdrom /usr/local/etc/qemu/virtual/FreeBSD_Install.iso \
-boot d \
-vnc :0
-net nic
-net
-m 256
Далее:
на рабочую машину скачал и поставил TightVNC Viewer
Подключаемся к нашему серверу 192.168.0.1:5900
и ура, мы видем окно установки нашей любимой системы в системе.
дальше все как обычно вы делаете.
Код: Выделить всё
cat /usr/local/etc/qemu-ifup
Код: Выделить всё
#!/bin/sh
ifconfig $1 0.0.0.0
сдесь можно написать
Код: Выделить всё
ifconfig $1 192.168.0.200 netmask 255.255.255.0
так. в общем система установлена и работает.
дальше делаем killall qemu
и исправлем наш конфиг на загрузку с жесткого диска
а вернее правим вот этот параметр
Код: Выделить всё
c "-boot d" на "-boot c"
запускаем.
Код: Выделить всё
/usr/local/etc/qemu/start.sh
Собственно все что здесь изложено, это только основа с которой я начал.
Проблемы:
Долго не мог подключится по VNC, realvnc не подключался, случайно попробовал альтернативный клиент и все заработало.
Сеть не работала из-за блокировки интерфейса tap0 фаерволом, решилось добавлением разрешающего правила.
тоже самое касается и dhclient тоже не хотел получать ip из-за ipfw.
В общем итог:
Код: Выделить всё
cat /qemu.sh
Код: Выделить всё
#!/bin/sh
qemu -localtime -m 512 \
-name "FreeBSD" -kernel-kqemu \
-hda /usr/local/etc/qemu/image/FreeBSD.7.img \
-cdrom /usr/local/etc/qemu/virtual/FreeBSD_Install.iso \
-boot c \
-daemonize \
-net nic \
-net tap,ifname=tap0,script=/usr/local/etc/qemu-ifup
после того как был настроен доступ по ssh, доступ к серверу по vnc был отключен.
p.s. где-то находил информацию к vnc в qemu возможно установить пароль для доступа,
но разбираться нету особо желания, может конечно оно со временем и появится.
Здоровая критика, дополнения приветствуются.
Информация взята с миру по нитке, источники разные.