FreeBSD bhyve виртуализация

Дата | 11.06.2017

Понадобилось мне запустить Linux на системе FreeBSD.
Долго думал какую виртуализацию использовать, выбрал bhyve, в свежих версиях FreeBSD реализована полная поддержка этой виртуализации.
Систему под виртуализацию выбрал Debian.
Виртуалке я выделил 512 метров, под мои нужды самый раз.
Настройки виртуализации.

/etc/rc.conf
vm_enable="YES"
#vm_dir="/mnt/vms"
vm_list=""
cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm tap0 addm em0 up"

Добавляем автозагрузку модуля.

/boot/loader.conf
if_bridge_load="YES"
if_tap_load="YES"
nmdm_load="YES"
vmm_load="YES"

Файл с путями к созданному диску и образу системы.

# cat /mnt/vms/debian/device.map 
(hd0) /mnt/vms/debian/debian.img
(cd0) /mnt/vms/.iso/debian-8.7.1-amd64-netinst.iso

Запуск и установка системы, стандартная установка системы, желательно сразу поднимать ssh.

# cat /mnt/vms/debian/debian.start
#!/bin/sh
#sleep 5
while [ 1 ];
do
/usr/local/sbin/grub-bhyve -r hd0,msdos1 -m /mnt/vms/debian/device.map -M 512 debian
/usr/sbin/bhyve -c 1 -m 512M -H -P -A -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 4,ahci-cd,/mnt/vms/.iso/debian-8.7.1-amd64-netinst.iso -s 4,virtio-blk,/mnt/vms/debian/debian.img debian
done
bhyve_exit=$?
exit $bhyve_exit

Скрипт запуска.

# cat /mnt/vms/debian/debian.start
#!/bin/sh
#sleep 5
while [ 1 ];
do
/usr/local/sbin/grub-bhyve -r hd0,msdos1 -m /mnt/vms/debian/device.map -M 512 debian
/usr/sbin/bhyve -c 1 -m 512M -H -P -A -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 4,virtio-blk,/mnt/vms/debian/debian.img debian
done
bhyve_exit=$?
exit $bhyve_exit

Скрипт остановки.

# cat /mnt/vms/debian/debian.stop 
#!/bin/sh
bhyvectl --destroy --vm=debian

Смотрим в ведомой системе (FreeBSD) поднялась ли сеть для виртуалки.

# ifconfig 
em0: flags=8943 metric 0 mtu 1500
	options=42098
	ether 0c:c2:7a:38:1c:0f
	inet 80.3.7.2 netmask 0xfffffff8 broadcast 80.3.7.7 
	inet 80.3.7.4 netmask 0xffffffff broadcast 80.3.7.4 
	inet 80.3.7.5 netmask 0xffffffff broadcast 80.3.7.5 
	inet 80.3.7.6 netmask 0xffffffff broadcast 80.3.7.6 
	media: Ethernet autoselect (1000baseT )
	status: active
em1: flags=8c02 metric 0 mtu 1500
	options=4219b
	ether 0c:c4:7a:48:5c:0e
	media: Ethernet autoselect
	status: no carrier
lo0: flags=8049 metric 0 mtu 16384
	options=600003
	inet 127.0.0.1 netmask 0xff000000 
	groups: lo 
bridge0: flags=8843 metric 0 mtu 1500
	ether 02:7a:7c:29:3b:00
	groups: bridge 
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: em0 flags=143
	        ifmaxaddr 0 port 1 priority 128 path cost 2000000
	member: tap0 flags=143
	        ifmaxaddr 0 port 5 priority 128 path cost 2000000
tap0: flags=8943 metric 0 mtu 1500
	options=80000
	ether 00:bd:f6:8c:db:00
	media: Ethernet autoselect
	status: active
	groups: tap 
	Opened by PID 1125

Запускаем изначально так

/mnt/vms/debian/debian.start

После авторизовываемся в системе и поднимаем ssh, после запускать заходить в Linux через ssh.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *