печать
Русско
Текущая версия VirtualBox? - 1.5.2


Долго ли, коротки ли - но иногда требуется реализации особо извращенной схемы, когда любимый chroot не в состоянии помочь (да и героев в связке chroot и оффтопик трудно найти ). Долгое время, начиная еще с 7-го РедХата и практически по сей день, для таких работ пользовал VMWare Workstation. Практически все устраивало, даже ключики были именные ( с времен бэта тестирования 3й ВМВари), но стало постепенно доставать. Скорость разворачивания после обновления системы, поиски нужных any-patch'ей и тп заставило посмотреть на альтернативные системы. После очередной зарубы (срочно потребовался софт работающий исключительно под оффтопиком ) решил обратить свой взгляд к VirtualBox external link, одним из решающих факторов было то, что под Etch есть готовый пакет под AMD64external link (у нас с хозяином данного сайта совершенно одинаковые предпочтения в технике и практически одинаковые ноуты). Установка банальна:

#dpkg -i virtualbox_1.4.0-21864_Debian_etch_amd64.deb


По сути есть только одна сложность, настройка сети (вполне вероятно что есть еще другие подводные камни, но у меня как то обошлось)

Для этого в окне свойств виртуальной машины указать : Хост-интерфейс, имя интерфейса - tap1

(проверьте, установлены ли в Вашей системе нужные пакеты: bridge-utils, uml-utilities)

Для формирования набора нужных интерфейсов ( br0 и tap1) и формирования нужных цепочек iptables используем скрипт (vboxup):

#!/bin/sh
# set PATH for the case we are called via sudo or su root

PATH=/sbin:/usr/bin:/bin:/usr/bin:/usr/sbin
INTIF="br0"
EXTIF="eth0"
TAPIF="tap1"

# create a tap
#<user> - пользователь в контексте которого запускается VirtualBox
tunctl -t tap1 -u <user>
ip link set up dev tap1

# create the bridge
brctl addbr br0
brctl addif br0 tap1

# set the IP address and routing
ip link set up dev br0
ip addr add 10.1.1.1/24 dev br0
ip route add 10.1.1.0/24 dev br0

echo 1 > /proc/sys/net/ipv4/ip_forward

# clear existing iptable rules, set a default policy
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F

# set forwarding and nat rules
iptables -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE


После завершения работы виртуальной машины желательно все привести к начальному виду, используем скрипт (vboxdown):

#!/bin/sh
# set PATH for the case we are called via sudo or su root

PATH=/sbin:/usr/bin:/bin:/usr/bin:/usr/sbin
INTIF="br0"
EXTIF="eth0"
TAPIF="tap1"

# disable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

#clear routing
ip route del 10.1.1.0/24 dev br0
ip addr del 10.1.1.1/24 dev br0
ip link set down dev br0

# close tap
ip link set down dev tap1

# delete bridge
brctl delbr br0

# clear existing iptable rules, set a default policy
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F


Переход на VirtualBox? v1.5.0

Бег по граблям, как вид спорта.

Вскрылась довольно любопытная подробность. Конфиги от разных версий не совпадают и довольно принципиально.

Если при переходе получаем такое сообщение при попытке запуска VM:
Could not load the settings file '~.VirtualBox/Machines/winders/winders.xml' (VERR_OPEN_FAILED).
FATAL ERROR: Required attribute 'hostMode' was not provided
Location: '/home/pabs/.VirtualBox/Machines/winders/winders.xml', line 45, column 77.


то делаем просто:
открываем на редактирование ~/.VirtualBox/Machines/VM/VM.xml ( конфиг данной VM)
находим секцию:
<Uart>
<Port IOBase="1016" IRQ="4" enabled="false" server="true" slot="0"/>
<Port IOBase="1016" IRQ="4" enabled="false" server="true" slot="1"/>
</Uart>

и банально ее удаляем. Вуаля...работает. Не буду обсуждать зачем и почему, просто констатирую факт.

Более подробно с данным багом можно ознакомится в нашем "родном"Дебиановском linux.debian.bugs.dist: http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/694ed27a3de34b07/fe4b9214b5f76cf5external link

Продолжение: теперь немного о использовании USB.

Поскольку по роду своих занятий частенько приходится работать со всякими интересными железяками, в том числе и с COM портами ( коих у меня на ноуте просто нет ) то просто жизненно необходимо было решить вопрос о доступе к RAW USB. По сути дела в мануале на VB четко все сказано на эту тему, то немного подумав получается такое решение.

добавляем пользователей которые пользуются Vbox в группу vboxusers (gid=2001)

добавляем в /etc/fstab:

none /proc/bus/usb usbfs devgid=2001,devmode=664 0 0


после чего, запустив VirtualBox? добавляем устройства в фильтр USB и наслаждаемся.

Проверено и на оффтопике и на linux. Работает.

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

P.S. Тем кто не догадался. В "гостевой" ОС адрес ставим из 10.1.1.0/24 сети, def gate = 10.1.1.1

Создано: GV последнее изменение: Sunday 21 October 2007 [15:52:59 UTC] автор GV