Donnerstag, 24. Mai 2012, 14:54

Du bist nicht angemeldet.



Hutchef

hat hier 2. Wohnsitz.

  • »Hutchef« ist der Autor dieses Themas

Beiträge: 252

Ubuntu: 11.04

Kernel: aus der Paketverwaltung

Architektur: 64-bit

  • Private Nachricht senden

1

Dienstag, 4. November 2008, 15:11

VirtualBox - Bridging

Hallo zusammen

edit 2008-11-04
Mit dem Erscheinen von 8.10 habe ich das HowTo überarbeitet und angepasst. Da ich es inzwischen auch auf meiner Seite habe und keinen Bock alles doppelt zu tippen, bitte
hier nachlesen.

Danke




Es gibt ja nicht nur VMWare, sondern auch VirtualBox. Bisher schreckte mich die Netzadapter-Geschichte ab, der Rest gefiel mir besser als die Konkurrenz von VMWare. Durch meine massiven Zeitprobleme mit meinem Ubuntu-Server und dem VMWare-Server, habe ich mich dazu durchgerungen, mich mal intensiver mit VirtualBox zu beschäftigen.
Das Ergebnis war ein glücklicher Hutchef der eine Menge gelernt, etliche Wikis und HowTos gelesen und festgestellt hat, dass in jedem ein Stück zu Erfolg steckte. Also habe ich es zusammengetragen und dieses, mein erstes, HowTo geschrieben.
Ich hoffe es hilft jemandem weiter, der genau wie ich vor diesem Berg "Netzwerkadapter" steht. Ach ja, die Beschreibung ist jene, wie es bei mir funktioniert hat.


1. HOST-OS
Ubuntu 8.04.1

2. Installation
Es gibt zwei Möglichkeiten, V-Box zu installieren. Einmal die freie Version mit dem schönen Namen OSE (open source edition) und eine Version, die unter Umständen einsetzbar ist. Der direkte Download ( www.sun.com -> Download -> VirtualBox ) hat den Vorteil, das man die aktuellere Version bekommt.

2.1 Paketquellen

Quellcode

1
2
sudo aptitude install virtualbox-ose
sudo aptitude install virtualbox-ose-modules-`uname -r` 

- wobei ich hier komischerweise nur zum Erfolg kam, wenn ich das Ergebnis von "uname -r" genommen habe

2.2 fertiges *.deb Paket direkt von der Sun-Seite
Nachdem man das Paket irgendwo lokal gespeichert hat (oder im Netzwerk), einfach Doppelklick (oder auf Konsole) und installieren.
Anschließend noch den Kernel anpassen lassen

Quellcode

1
sudo /etc/init.de/vboxdrv setup


Anschließend fügt man den Benutzer (vorzugsweise sich selber) der Gruppe vboxusers zu

Quellcode

1
sudo adduser hutchef* vboxusers

- sollte auch mit der Variable gehen, ich habe aber den Namen direkt hingeschrieben
- scheint sich um einen Bug zu handeln, dass man das selber erledigen muss
- abmelden und neu anmelden

* Benutzername

Damit wäre die Installation fertig.
Nun kann man seinen Gast anlegen und vorbereiten (oder man hat bereits einen).

3. Konfiguration Bridge

Quellcode

1
sudo aptitude uml-utilities bridge-utils

- die Pakete für das Bauen der Bridge

Für jede virtuelle Maschine benötigt man einen separaten Adapter, wenn man sie gleichzeitig betreiben will.
In die /etc/network/interfaces folgendes ergänzen:

Quellcode

1
2
3
4
5
auto tap0
iface tap0 inet manual
up ifconfig $iface 0.0.0.0 up
down ifconfig $iface down
tunctl_user hutchef* 


*Nutzernamen, der dieses Interface benutzen soll

Ein weiterer würde also eine Kopie dieser fünf Zeilen bedeuten, nur dass es halt tab1 oder tab2 usw. heisst.


4. Bridge bauen

Entweder man tippt das jedes Mal in die Konsole...

Quellcode

1
2
3
4
5
6
sudo tunctl -b -t tap0 -u hutchef*
sudo chown root.vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun
sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc
sudo brctl addif br0 eth0


ist die HOST IP von einem DHCP:

Quellcode

1
sudo dhclient br0

ist die HOST IP statisch:
#Bsp.: 192.168.1.50 ist Host IP | 255.255.255.0 Netzmaske

Quellcode

1
sudo ifconfig br0 192.168.1.50 netmask 255.255.255.0

#Bsp.: 192.168.1.1 Default Gateway

Quellcode

1
2
3
4
sudo route add default gw 192.168.1.1 br0

sudo brctl addif br0 tap0
sudo ifconfig tap0 up


*Nutzernamen, der dieses Interface benutzen soll

oder man bastelt sich ein komfortables Script:
Startscript: vbox_tab0_up.sh

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#-------------------------------------------------------------------#
# - Startscript für die Einrichtung einer Bridge für #
# VirtualBox mit statischer IP des HOST-Systems #
# - Script muss vor jedem Start eines Gast-Systems #
# ausgeführt werden #
# Autor: Hutchef 2008-08-10 #
#-------------------------------------------------------------------#

#!/bin/bash

USERNAME=hutchef # Benutzername
HOST_IP=192.168.1.50 # statische IP des HOST Systems
NETMASK=255.255.255.0 # Netzmaske
GATEWAY=192.168.1.1 # Gateway - zu Hause fast immer der Router (FritzBox, Speedport etc.)
ADAPTER=tab0 # Schnittstellenname, der dann bei der VM Maschiene verwendet wird

sudo tunctl -b -t $ADAPTER -u $USERNAME
sudo chown root.vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun
sudo chown root.vboxusers /dev/net/tun
sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc
sudo brctl addif br0 eth1
sudo ifconfig br0 $HOST_IP netmask $NETMASK
sudo route add default gw $GATEWAY
sudo brctl addif br0 $ADAPTER
sudo ifconfig $ADAPTER up



Stopscript: vbox_tab0_down.sh

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#--------------------------------------------------------------------------#
# - Script zum Abschalten einer Bridge für VirtualBox mit #
# mit statischer IP des HOST-Systems #
# - Script kann nach Beendigung eines Gast-Systems #
# ausgeführt werden #
# Autor: Hutchef 2008-08-10 #
#-------------------------------------------------------------------------#

#!/bin/bash

HOST_IP=192.168.1.50 # statische IP des HOST Systems
NETMASK=255.255.255.0 # Netzmaske
GATEWAY=192.168.1.1 # Gateway - zu Hause fast immer der Router (FritzBox, Speedport etc.)
ADAPTER=tab0 # Schnittstellenname, der dann bei der VM Maschiene verwendet wird

sudo ifconfig $ADAPTER down
sudo ifconfig br0 down
sudo brctl delbr br0
sudo ifconfig eth0 $HOST_IP netmask $NETMASK up
sudo route add default gw $GATEWAY eth0



5. Gastsysteme
In der Konfiguration des Gastsystemes wählt man nun Adapter:
- angeschlossen an: Hostinterface
- Name des Interface: tab0
- unten kann man die Scripte einbinden wenn der Autostart verlangt wird
(Anmerkung: Dazu die ersten beiden sudo im Script durch ein gksu(do) ersetzten. Bei mir hat das nur selten
korrekt geklappt, darum fahre ich die Adapter manuell hoch.
Zumal bei einem automatischen Start es mir nicht alle Oberflächen bei einer Installation eines Gastes angezeigt hat. )

Nun das Gastsystem starten und hoffen, dass alles gut ging.
Benutzt man gleichzeit ein weiteres Gastsystem, dann muss der tab1 (oder wie auch immer) konfiguriert sein.


5.1 Desktopsysteme
Beide Varianten der V-Box:
Bei der Installation von Desktopsystemen, egal ob Ubuntu, Kubuntu oder Win XP, verlief alles ohne Probleme. Die Systeme waren anschließend von außen erreichbar und wurden von DHCP versorgt. Auch die Vergabe einer statischen IP brachte keine Probleme.


5.2 Ubuntu-Server 8.04.1
5.2.1 OSE Version
Die Installation verlief ohne Probleme... bis zu ersten Boot.
(Abbildung: vbox_kernel00.png)

VBox kommt wohl mit dem speziellen Ubuntu-Server-Kernel nicht klar. Abhilfe schafft die Installation des Generic-Kernels.

Dazu bootet man mit der Installations-CD in den Rescue Modus und arbeitet sich bis zum Prompt vor.
Dort dann

Quellcode

1
aptitude install linux-generic

ausführen.
(Abbildung: vbox_kernel01.png)

Damit wird der Generic-Kernel installiert.
Dann gibt es zwei Varianten. Entweder es schlägt fehl...
(Abbildung: vbox_kernel02.png)

oder es hat alles wunderbar funktioniert.
(Abbildung: vbox_kernel03.png)


Bei mir war es bisher nur erfolgreich, wenn "/boot" und "/" nicht separat partitioniert wurden (ich habe keine Ahnung wo ich "/boot" mounten muss, wenn es zwei unterschiedliche Partitionen sind). Es wird der Prompt benötigt, der in "/" zu finden ist. Der Kernel wird wohl auch dort mit installiert, aber in "/boot" können die Veränderungen nicht getätigt werden, da es ja nicht vorhanden ist.
An dieser Stelle wäre ich über mehr Informationen glücklich, um dort mehr Durchblick zu haben und um den Text hier anzupassen.

Nach erfolgreicher Installation das System booten. Sollte immernoch der Fehler auftreten, dann im Boot-Menü (Grub -> ESC) kontrollieren, dass der korrekte Kernel geladen wird. Es kann vorkommen, dass der Server-Kernel als erstes steht.
In der Datei /boot/grub/menu.lst kann der Server-Kernel auskommentiert werden, damit bei einem remote Reboot der Server auch wirklich startet.
- VMWare Image brauchte das nicht, dort bootete gleich der korrekte Kernel (zumindest bei mir)

5.2.2 none OSE Version
Nach erfolgreicher Installation trat zunächst selbiges Problem wie bei der OSE-Version auf. Dessen Behebung war jedoch etwas leichter.
In der Auswahlliste der Gäste (linke Seite) tätigt man einen Rechtsklick (bei ausgeschaltetem Gast) und wählt dann Allgemein -> Reiter Erweitert -> Erweiterte Einstellungen -> Häckchen in PAE/NX aktivieren rein. Nun sollte der Server ordentlich starten... zumindest tat er das bei mir.

So, das war es auch schon. Für Anregungen, Verbesserungen und dergleichen bin ich immer offen - also immer her damit.

Changelog:
2008-08-21: Abschnitt 2 und 5 Überarbeitet
2008-11-04: siehe Webside
»Hutchef« hat folgende Bilder angehängt:
  • vbox_kernel00.png
  • vbox_kernel01.png
  • vbox_kernel02.png
  • vbox_kernel03.png
mfg Hutchef

Es ist besser für das, was man ist, gehasst,
als für das, was man nicht ist, geliebt zu werden.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Hutchef« (4. November 2008, 15:11)