· kernel: 2.6.35.4
 · gnome: 2.30.2
 · kde: 4.5.1
 häuschen /   buch howtos 

 vboxlogo virtualbox   vboxlogo EeePC   server netzwerk   pacman spiele 

powered by gimp
freedesktop logo
open clipart library

virtual box logo
virtualbox
(für fortgeschrittene)
Um es mal vorwegzunehmen, seit einiger Zeit benötigt man für Virtualbox keine selbstgebastelte Netzwerkbrücke mehr. Alle nötigen Module sind vorhanden und man kann die Brücke sehr einfach in den VMs aktivieren.

Ubuntu 9.10 - Karmic Koala
Man muss das Paket qemu-kvm deinstallieren damit Virtualbox ohne Fehlermeldung starten kann.

wieso und warum eigentlich virtualbox ?
so ein virtueller computer kann sehr nützlich sein, zb. um andere linux distributionen und betriebssyteme zu testen, um netzwerke auf zu bauen und diese wiederum zu testen. man spart sich mehrere echte computer und das wiederum spart eine menge strom und materielle kosten. dies alles ist sehr effizient und kostensparend und für heutige computer stellt es überhaupt kein problem dar mehre virtuelle systeme auf einmal zu betreiben. rechenkapazität und speicher haben wir ja heut zu tage massig verfügbar.

hier nun werde ich aufzeigen wie einfach es ist so einen virtuellen computer zu erschaffen, wie dieser im netzwerk integriert wird und was es sonst noch an nützliches gibt. genutzt wird hierbei die virtualisierungssoftware von innotek virtualbox. es gibt dort im downloadbereich so ziemlich für jede distribution pakete und auch eine open source edition. demnach dürfte die grundlegende installation kein problem darstellen, deshalb geh ich da auch nicht weiter drauf ein.

nach der installation
damit virtalbox richtig funktionieren kann müssen bestimmte rechte gesetzt werden. diese betreffen das kernelmodul und den usb device. es handelt sich hierbei um systemnahe befehle, also sollte man diese als root (superuser) ausführen.

das hier muss am anfang ausgeführt werden. damit wird das kernel modul installiert und die gruppe vboxusers angelegt. /etc/init.d/vboxdrv setup, habt ihr virtualbox selber kompiliert gestalltet sich das ein wenig anders, dazu bitte die readme der sourcen lesen.

kernelmodul rechte: (modprobe vboxdrv)
die vorgehensweise ist unterschiedlich, zb. so
/etc/udev/rules.d/udev.rules (diese datei bearbeiten)
KERNEL=="vboxdrv", NAME="%k", MODE="0666"

bei ubuntu zb. so
/etc/udev/rules.d/60-vboxdrv.rules (wird vom paket angelegt)
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
der benutzer sollte dann der gruppe vboxusers angehören.

usb rechte:
bei ubuntu ist es nötig die usb rechte für usbfs anzupassen.
/etc/udev/rules.d/40-permissions.rules (nicht nötig bei Ubuntu 8.04 Hardy Heron)
# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", MODE="0664", GROUP="plugdev"
der benutzer sollte dann der gruppe plugdev angehören.

ab version 1.5.0, muss man damit usb funktioniert in die /etc/fstab folgendes eintragen.
none /proc/bus/usb usbfs devgid=1001,devmode=664 0 0
(1001 = gruppen-id vboxusers)

netzwerk
standardmäßig wird eine nat-netzwerkverbindung für den virtuellen computer zur verfügung gestellt. damit kann man sich zwar mit dem internet verbinden aber leider ist keine direkte netzwerkverbindung zu anderen komponenten im netzwerk möglich.
deshalb hier eine beschreibung wie man ein richtiges netzwerk einrichten kann, in diesem fall eine netzwerkbrücke. schauen wir uns dazu folgende skizze an:
Virtual Machine |---| Linux PC |------------| Router / Firewall / Internet
(192.168.178.4)       (192.168.178.2)         (192.168.178.1)
                                                     |   
                                                     |
                                                     ----| computer2 (192.168.178.3)
wenn wir also den virtuellen computer (192.168.178.4) und den linux pc (192.168.178.2) mit einer netzwerkbrücke verbinden, so wird jeder jeden im netzwerk finden.

netzwerkbrücke bauen, zb. bei ubuntu braucht man dafür das bridge-utils paket (brctl). also hier jetzt die befehlsliste für unser beispiel, in () eine kleine beschreibung was der jeweilige befehl macht:

modprobe vboxdrv (kernelmodul laden, bei ubuntu nicht nötig)
modprobe tun (tun modul laden, netzwerktunnel)
tunctl -u andi -t tap0 (ein tap interface bereitstellen, benutzername andi)
ifconfig tap0 0.0.0.0 promisc up (tap0 anschalten)
chmod 0666 /dev/net/tun (rechte für den netzwerktunnel setzen)
brctl addbr br0 (ein brücken interface bereitstellen, br0)
brctl addif br0 eth0 (eth0 interface mit dem br0 interface koppeln)
brctl addif br0 tap0 (tap0 interface mit dem br0 interface koppeln)
ifconfig br0 192.168.178.2 netmask 255.255.255.0 broadcast 192.168.178.255 up (br0 an...)
ifconfig eth0 0.0.0.0 promisc up (bei der netzwerkkarte eth0 die ip adresse löschen)
route add default gw 192.168.178.1 (gateway zum Router aktivieren)

für tunctl kann auch VBoxTunctl benutzt werden. so das wars, damit ist auf dem linux pc nur noch ein interface br0 (die netzwerkbrücke) mit dem netzwerkkabel verbunden. für eine automatisierung der befehle sollte man bei ubuntu das script /etc/rc.local und zb. für slackware /etc/rc.d/rc.M etc. benutzen.

bei ubuntu ab version 9.04 habe ich probleme beim route befehl, wird automatisch beim starten von gnome immer mit eth0 überschrieben und danach ist kein route über br0 möglich oder nur sehr schlecht. Falls jemand da eine Lösung für hat bitte mal in die comments schreiben. Ich hab das jetzt soweit gelöst das ich das system inklusive gnome normal starten lasse, und dann wenn ich die brücke brauche sie über ein script starte, dass läuft dann so wie gehabt und funktioniert tadellos.

da wir hier ja alles manuel machen am besten das entsprechende interface in "/etc/network/interfaces" auskommentieren. in euren virtuellen computer könnt ihr nun eine netzwerkkarte einfügen, normales hostinterface und als interface name tap0.
so ungefähr müsste dann auch eure routing tabelle aussehen, befehl: route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.178.0   *               255.255.255.0   U     0      0        0 br0
default         fritz.fonwlan.b 0.0.0.0         UG    0      0        0 br0
sonstiges
für eine übergangslose maus und bessere grafikperformance sollte auf den virtuellen computer Guest Additions installiert werden. wie man das macht steht in der hilfe zu virtualbox. dann ist es auch möglich "gemeinsame ordner" zu benutzen und seit version 1.4.0 eine übergreifende zwischenablage.

Neues ab virtualbox 2.0
die älteren Konfigurationen wurden Konvertiert und ohne Probleme übernommen.
An den Einstellungen für Netzwerk und USB hat sich nichts geändert, funktioniert weiterhin.
Die neue Version bietet jetzt SATA und 64bit Unterstützung für Gastsysteme.
Windows7 und Vista als 64Bit Gastsysteme funktionieren ziemlich gut.

SATA aktivieren:
Hierfür muss man nur bei Festplattenoptionen den SATA-Controler aktivieren. Alles andere erst einmal so lassen. Nun starten wir das Gastsystem und installieren zb. für Windows einen Treiber.
Es handelt sich dabei um ein Intel RAID/AHCI Treiber, Download bei Intel.
Dann schalten wir das Gastsystem ab und stellen bei Festplattenoptionen die jeweiligen Ports der Festplatten ein, zb "SATA Port 0" für die erste Festplatte die gebootet werden soll. So und das wars dann auch schon, Windows sollte ohne Probleme starten.
Bei Linux Gastsytemen hab ich das jetzt nur soweit getestet, dass ich von einem 64bit Ubuntu Live System gebootet hab und dieses automatisch das SATA Laufwerk erkannt hat. Sollte man ein bestehendes Linux Gastsystem auf SATA Laufwerke ändern, muss man sicherlich den Bootmanager anpassen, dazu bitte Wikis zu der verwendeten Distribution lesen.

so das wars, solltet Ihr Vorschläge haben oder sind euch vielleicht sogar Fehler aufgefallen, schreibt einfach in die Comments.
fenster kommentare:
10.03.2010 · andi
Sound Windows7 usw.:
http://www.computerbase.de/downloads/treiber/soundkarten/realtek_ac97_audio-treiber/
Und als Schnitstelle pulseaudio verwenden.
04.01.2009 · snupi
vielen Dank! Deine Anleitung hat mir das Leben gerettet. Einfachspitze dass es fähige Leute gibt, die bei solchen Problemen weiterhelfen können. Danke nochmal!

Danke!!!!

p.s weiter so
31.10.2008 · andi
mit dem neuen Ubuntu 8.10 (Intrepid Ibex) alles wie gehabt, läuft problemlos.
16.09.2008 · andi
Neues Interessantes zur Version 2.0 hinzugefügt.
27.05.2008 · joschi
Problem ist behoben. Im Gast musste ich in der /etc/network/interfaces den Eintrag "allow-hotplug eth0" durch "auto eth0" ersetzten. Scheint unter Debian Etch ein Bug im Packet ifupdown zu sein.

weitere kommentare lesen/schreiben (11)