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.