Oracle Virtualbox auf Debian Linux installieren

16-Juli-2010

Die Oracle VirtualBox (ehemals Sun VirtualBox) ist eine mächtige Virtualisierungssoftware für x64 und AMD64/Intel64 Plattformen. Ich betreibe u.a. einen EQ4 Server bei Hetzner auf welchem ich diese Virtualisierungssoftware installieren möchte.

Um VirtualBox direkt mit aptitude installieren zu können, wird ein neuer Eintrag in der Datei /etc/apt/sources.list benötigt:
(bitte die nachfolgenden Kommandos als ‚root‘ ausführen)

/etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian lenny non-free

Der Public Key für apt-secure kann folgendermaßen gedownloaded und gespeichert werden:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

Anschließend kann VirtualBox installiert werden:

apt-get update
apt-get install libqt4-opengl=4.4.3-1+lenny1 libqtcore4=4.4.3-1+lenny1 libqtgui4=4.4.3-1+lenny1
apt-get install virtualbox-3.2

Nun kann VirtualBox gestartet werden – es ist darauf zu achten, dass auf der Remoteconsole ein X-Server läuft – z.B. Xming.

Beispiel-Programmaufruf:
(ohne Setzen der DISPLAY Variablen kann kein X-Fenster für die VM geöffnet werden)

aurora ~ # export DISPLAY=mars.dmsp.de:0.0
aurora ~ # VirtualBox &

Einrichten des Netzwerk-Routings für Host und Clients (VirtualBox)

Host-System

IP-Forwarding einschalten:

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

Damit diese Einstellung auch nach einem Reboot bestehen bleibt, muss IP-Forwarding auch in der Datei /etc/sysctl.conf konfiguriert werden:

net.ipv4.ip_forward=1

Für einen EQ-Server von Hetzner erhält man ohne Mehrkosten bis zu drei zusätzliche IP(v4)-Adressen. Hetzner selber behauptet im eigenen Wiki dass ein „Bridged“-Setup für Virtualisierungslösungen nicht möglich ist, da sämtliche IP-Adressen den MAC-Adressen der (Host-)Systeme zugeordnet werden. Datenpakete mit davon unterschiedlichen MAC-Adressen werden aus Sicherheitsgründen am Router/Firewall verworfen. Also bleibt nur ein „Routed“-Setup – wobei wir versuchen werden trotzdem das „Bridged“-Setup von VirtualBox entsprechend auf „Routed“ zu verbiegen.

Für eine dieser zusätzlichen IP-Adressen, nämlich die, die von der VM verwendet werden soll, muss manuell eine Route eingetragen werden:

route add -host 78.46.22.42 gw 78.46.22.42

Um auch diese Konfiguration persistent einzurichten (reboot-fest), muss die Datei /etc/network/interfaces wie folgt (rote Zeile) ergänzt werden:

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   78.46.22.11
  broadcast 78.46.22.63
  netmask   255.255.255.192
  gateway   78.46.22.1

# default route to access subnet
up route add -net 78.46.22.0 netmask 255.255.255.192 gw 78.46.22.1 eth0
<font color=red>up route add -host 78.46.22.42 gw 78.46.22.42</font>

Gast-System

Dem „Bridged“ Network Adapter des Gast-Systems in der VirtualBox wird nun die neue zusätzliche IP-Adresse (78.46.22.42) zugewiesen und als Gateway die IP-Adresse des Host-Systems (78.46.22.11) konfiguriert.

Einrichten einer Virtual Machine (VM)

Auch wenn oben gezeigt wurde, wie VirtualBox über X-Windows gestartet wird, kann eine VM auch problemlos (wenn auch nicht so komfortabel wie mit der grafischen Oberfläche) über die Kommandozeile eingerichtet werden.

VBoxManage createvm --name "vm002-debian-32bit" --register
VBoxManage modifyvm vm002-debian-32bit --ostype Debian
VBoxManage modifyvm vm002-debian-32bit --memory 2048
VBoxManage modifyvm vm002-debian-32bit --acpi on
VBoxManage modifyvm vm002-debian-32bit --pae on
VBoxManage modifyvm vm002-debian-32bit --hwvirtex on
VBoxManage modifyvm vm002-debian-32bit --nestedpaging on
VBoxManage modifyvm vm002-debian-32bit --vtxvpid on
VBoxManage modifyvm vm002-debian-32bit --accelerate3d on
VBoxManage modifyvm vm002-debian-32bit --cpus 2
VBoxManage modifyvm vm002-debian-32bit --ioapic on
VBoxManage createhd --filename vm002-debian-32bit.vdi --size 40960

VBoxManage storagectl vm002-debian-32bit --name "IDE Controller" --add ide
VBoxManage modifyvm vm002-debian-32bit --hda vm002-debian-32bit.vdi
VBoxManage storageattach vm002-debian-32bit --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /root/VIRTUALBOX/debian-505-i386-DVD-1.iso
VBoxManage modifyvm vm002-debian-32bit --nic1 nat

VBoxManage showvminfo vm002-debian-32bit
Oracle VM VirtualBox Command Line Management Interface Version 3.2.6
(C) 2005-2010 Oracle Corporation
All rights reserved.

Name:            vm002-debian-32bit
Guest OS:        Debian
UUID:            a7415097-8370-4041-86d4-4ab361e2bdfa
Config file:     /root/.VirtualBox/Machines/vm002-debian-32bit/vm002-debian-32bit.xml
Hardware UUID:   a7415097-8370-4041-86d4-4ab361e2bdfa
Memory size:     2048MB
Page Fusion:     off
VRAM size:       8MB
HPET:            off
Number of CPUs:  2
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
PAE:             on
Time offset:     0 ms
RTC:             local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2010-07-16T14:25:57.000000000)
Monitor count:   1
3D Acceleration: on
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
IDE Controller (0, 0): /root/.VirtualBox/HardDisks/vm002-debian-32bit.vdi (UUID: 82040e5b-4f18-4d3b-b954-fc13afee76d4)
IDE Controller (1, 0): /root/VIRTUALBOX/debian-505-i386-DVD-1.iso (UUID: d06693b7-58cc-406a-9737-fc386ead470d)
NIC 1:           MAC: 0800275DFBD3, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0
NIC 1 Settings:  MTU: 0, Socket( send: 64, receive: 64), TCP Window( send:64, receive: 64)
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           disabled
Clipboard Mode:  Bidirectional
VRDP:            disabled
USB:             disabled

USB Device Filters:

<none>

Shared folders:  <none>

Guest:

Configured memory balloon size:      0 MB

Start und Installation der VM

Die VM ist nun fertig konfiguriert und kann zur Installation gestartet werden. Um auch eine Konsole zu haben, verwenden wir RDP (Remote Desktop Protocol). Dies hat den Vorteil, dass jede übliche Windows-Maschine diese Software quasi von Hause aus an Bord hat.

nohup VBoxVRDP -s vm002-debian-32bit &

Nach der eigentlichen Installation des Betriebssystems auf der VM muss die Installations-DVD entfernt und der Netzwerkadapter wieder von ‚NAT‘ auf ‚Bridged‘ umgestellt werden.

VBoxManage storageattach vm002-debian-32bit --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium none
VBoxManage modifyvm vm002-debian-32bit --nic1 bridged
VBoxManage modifyvm vm002-debian-32bit --bridgeadapter1 eth0

Nach dem Neustart der VM kann das Netzwerk eingerichtet werden. Die VM ist nun mit der zusätzlichen IP-Adresse direkt erreichbar.