Inhalt

Vorwort

VirtualBox ist eine Software um virituelle Maschinen aufzusetzen und zu betreiben. Sie ist also eine weitere Spielart der Virtualisierungsoftware wie VmWare, KVM oder QEMU.

Homepage: http://www.virtualbox.org/

Forum :http://forums.virtualbox.org/

Lizenz: GPL (Es gibt auch eine Non-GPL Ausgabe der Software so ähnlich wie bei VmWare

Es lohnt sich, das Extension Pack nach der Installation auch als Erweiterung zu installieren. Man erhält USB2 Geschwindigkeit. (Über den Download von der Virtualbox Homepage und öffnen lassen mit Virtualbox, auch in Linux)

Begriffserklärung: Das Hauptprogramm Virtualbox läuft im HOST System (einige Leute sagen dann Virtualbox Host Windows 7, Client Debian Jessie, bei Anfragen in Foren), der Client ist dann der künstliche Computer in einem Fenster.

UEFI Bios und VT-x/AMD-v Virtualisierungs Technologie

Beim Hauptrechner / Laptop sollte man diese Option einschalten im Bios. Bevor man beginnt mit Clienten Installationen. Das ist die Virtualisierungs Erlaubniss. So können dann Clienten von Virtualbox direkt auf die CPU zugreifen.

Win 8.x OEM Computer

/!\ Klären Sie das vor dem Kauf ab, ob Sie die VT-x/AMD-v Einstellungen ändern können im UEFI.

Leider ist es so, das Win8.x OEM vorinstallierte Computer dieses meistens nicht mehr zulassen. Auch wenn die CPU es kann. Es ist in den Lizenzbestimmungen von Microsoft an die Hersteller die Erweiterten Einstellungen im UEFI Bios zu unterdrücken. Mit etwas Glück ist es noch erlaubt.

Entweder ruft man das UEFI Bios direkt beim Einschalten mit Funktions Tasten oder ähnlichem (variert je nach Gerät), auf. Oder versucht es über die Windows Problembehandlung.

In Win8.x wäre es:

Shift gedürckt halten und Neustart klicken
Problembehandlung
Erweiterte Optionen
UEFI Firmware Einstellungen   (ist nicht immer vorhanden)

https://www.youtube.com/watch?v=3irpIFya_lk

Hyper V

Hyper V kann man in Win8.x über Systemsteuerung -> Programme -> Programme & Features -> (dann links am Rand) Windows Features aktivieren oder deaktivieren , einschalten. Benötigt man aber eher in vmware.

Tipps & Tricks

Virtualbox Client Linux - One or Multiple Display Heads (Bildschirmauflösung) und Gasterweiterungen

Also die Gasterweiterungen sind im Link der folgt gezeigt. Freigebene Ordner vom Hauptprogramm Virtualbox und HostSystem, findet man im Clienten dann in /media Ordner.

Gasterweiterungen Linux Client findet man hier. xrander

Lahmes Netzwerk?

In /etc/rc.local des Hosts hinzufügen (o.ä., so dass es beim Booten ausgeführt wird):

ethtool -K eth0 sg off rx off tx off tso off

Hinter -K muss man das Interface angeben, das gebridged wird.

USB Device Zugriff

Wer die PUEL Version von Virtualbox nimmt, kann auf die USB Geeräte zugreifen. Jedoch benötigt das ein vboxusers Group und sich selber eintragen in dieser. Das muss man sowieso machen eigentlich in jeder Virtualbox Version.

Nach der Installation von Virtualbox als root:

In neueren Versionen nicht nötig, früher war es immer nötig. (Ich glaube es macht es automatisch), oder im Terminal als normal Benützer: id Enter und gucken ob man dabei ist in der Gruppe.

/!\ Das ist ein wichtiger Punkt der nicht genug hervorgehoben werden kann /!\

Abmelden, wieder Anmelden.

Host I/O-Cache verwenden

Bei einem Client kann man unter Ändern die Einstellungen verändern. Bei Massenspeicher kann man auf den Controller der für die Harddisk zuständig klicken. Dann kann man dort beruhigt das Host I/O-Cache aktivieren. In der Log von virtualbox wird man etwas darauf hingewiesen. Im grafischen Interface nicht spezielle. (Virutalbox laufe nicht optimal, so in dem Sinn in der log :) )

DOS in VirtualBox 3.2

In VirtualBox in der DOS Konfiguration unbedingt VT-X/AMD-V deaktivieren, für display.sys laden.

Um die CPU Auslastung etwas zu reduzieren, in DOS dosidle v2.1 laden in der autoexec.bat lh dosidle.exe -Fm2 , funktioniert aber nur in DOS6.22. In Win98 DOS leider kein Effekt.

Eine Alternative ist DosBox

USB-Stick

Da USB-Stick meistens grösser sind als was DOS6.22 verwalten kann, sollte man das nur in DOS 7.1 aus Win98 verwenden. USB 2.0 muss man ausschalten in der VirtualBox Konfiguration für DOS, sonst ist kein Zugriff. Dann sollte man in DOS die Treiber laden uspaspi.sys (Panasonic v2.0 oder v2.7 davon) und di1000dd.sys (Novac v2.0).

config.sys in DOS: (der nächst freie Laufwerksbuchstaben wird verwendet.)

device=himem.sys

devicehigh=usbaspi.sys /v

devicehigh=di1000dd.sys

Disketten Abbildern

Man kann sich auch behelfen mit Diskettenabbilder, künstlich kann man die so erzeugen:

dd if=/dev/zero of=FloppyA.img bs=1024 count=1440  (erstellt eine 1.44MByte Floppy Abbild)

oder...

dd if=/dev/zero of=FloppyA.img bs=1024 count=2880  (erstellt eine 2.88MByte Floppy Abbild)

mkdosfs -F 12 FloppyA.img  (formatiert diese)

mount -o loop FloppyA.img tmp   (würde jetzt in linux das Abbild auf tmp mounten, und man kann Daten übertragen in linux)

umount tmp  (hängt es wieder aus)

FloppyA.img kann man nun mit Daten drin an VirtualBox geben für DOS.

Siehe auch DiskettenImage

USB Stick Boot

Naja Perfekt ist es nicht so, ein MS-DOS Win98 muss man mit F8 abfangen etc. , vielleicht wird es noch besser.

{{{#!/bin/bash #scriptname: usbvboxboot Datum: 6 jan 2010 #copy it to /usr/local/bin/usbvboxboot #chmod +xs /usr/local/bin/usbvboxboot

clear echo "USB-Stick booten in Virtualbox" echo "


" echo echo "Leider ist diese Funktion nur möglich, wenn Virtualbox als root läuft." echo "Ich erstelle eine vmdk Zugrifssdatei für Ihren USB-Stick" echo "!!!! Sie müssen usbboot.vmdk als SCSI Festplatte einbinden in Virtualbox !!!!" echo echo "Sie müssen mir sagen, wie Ihr USB stick heisst, sdb? sdc?" echo "Ich zeig Ihnen die die gemounteten Geräte:" echo mount | grep media mount | grep mnt mount | grep mount echo echo "Wie heisst Ihr USB Stick?" echo -n "Keine Nummer eingeben, nur sdb, sdf, oder ähnlich: ";read devusb

#sudo rm /root/.VirtualBox/usbboot.vmdk

sudo mkdir -p /root/.VirtualBox sudo VBoxManage internalcommands createrawvmdk -filename /root/.VirtualBox/usbboot.vmdk -rawdisk /dev/$devusb -relative sudo chmod 666 /dev/$devusb* sudo VirtualBox }}}

Virtuelle Serielle Com Ports HOST-PIPE

Viele Computer haben keine seriellen Ports mehr. Aber dennoch kann man etwas testen. Wenn das Gast System ein Windows ist, könnte man auch com0com (Nullmodem-Simulation 2 com Ports, Freeware Windows) im Gast installieren. Jedoch kriegt man diese Ports nicht nach draussen. Man kann es aber auch so machen wenn Linux Host ist.

Virtualbox: Hardwarekonfiguration Gastsystem, Serielle Anschlüsse

So, das erzeugt zwei Socket Dateien im Home Verzeichnis, com1 und com2. Diese Sockets werden erst aktiv wenn der Gast läuft. Erst dann können Befehle auf die Sockets losgelassen werden.

Com-Schnittstellen anmelden in Gast WindowsXP unter Virtualbox

Aber zuerst etwas Hilfe zum Gast System z.b WindowsXP (muss hier schnell beschrieben werden ;) )

folgend Vorgehen jeweils für com1/com2:

Com3 wird aus versehen installiert, aber noch stehen lassen, dann nochmals:

Dann sollte Com1 im Gerätemanager ersichtlich sein, da gleich Com3 deinstallieren. Für Com2 das gleiche Spiel nochmals.

Zugriff auf Sockets com1/com2 in Linux mit socat

socat installieren. Ist in den meisten Distros enthalten.

Um es zu testen startet man Hyperterminal im Gast WindowsXP oder man installiert Putty (auf Serial klicken). Bei diesen Programmen gleich zwei Instanzen starten, einmal auf Com1 einmal auf Com2.

Ich zeige drei Möglichkeiten mit socat: (zum Test einzelne Terminals starten)

Zwischen den Beispielen muss man mit CTRL+C die socat's killen.


1. Beispiel

So kann man mit Telnet nach Hyperterminal im Gast kommunizieren.


2. Beispiel

So kann man im screen nach Hyperterminal im Gast kommunizieren.


3. Beispiel

So kann man innerhalb des Gast-OS von com1 nach com2 geschlauft mit zwei Hyperterminal arbeiten. Oder andere zwei Software gegeneinander testen. Eine Software auf com1 die andere auf com2. Das simuliert ein Nullmodemkabel an einem PC mit zwei Com Schnittstellen.


Wichtig

Diese socat Befehle funktionieren erst, wenn man das Gast System gestartet hat. Man sollte sich also ein starter-script bauen. Etwas Debug Informationen erhält man mit socat -d -d .

Startscript com2tcp

{{{#!/bin/sh #scriptname Com2TCP #oben muss das erste leerzeichen weg, geht hier nicht anserst im wiki

VirtualBox --startvm "Windows XP" & sleep 10 socat -d -d UNIX-CONNECT:com1 TCP-LISTEN:8040 & socat -d -d UNIX-CONNECT:com1 TCP-LISTEN:8041 &

#xterm -e 'telnet localhost 8040 -e q' #xterm -e 'telnet localhost 8041 -e q' }}} Startscript Nullmodem-Simulation

{{{#!/bin/sh #scriptname: com2com #oben muss das erste leerzeichen weg, geht hier nicht anserst im wiki

VirtualBox --startvm "Windows XP" & sleep 10 socat -d -d UNIX-CONNECT:com1 UNIX-CONNECT:com2 }}}

Geklonte Debian Lenny Images melden eth0 error

In der Shell der Gast-Lenny als root:

echo -e  '#!/bin/sh\nrm /etc/udev/rules.d/70-persistent-net.rules\nsync\nreboot' > /usr/local/bin/repairnet
chmod 700 /usr/local/bin/repairnet
chown root.root /usr/local/bin/repairnet

Dann kann root:

repairnet [ENTER]

Das System rebootet automatisch.

Festplattenimage kopieren

Normales Kopieren reicht nicht, da Vbox keine 2 Festplatten mit gleicher UUID zulässt.

In der Konsole:

VBoxManage clonevdi debian.vdi debian-dev.vdi

doch das klappt bei großen Dateien nicht immer: Fehler VDISK_FULL, obwohl genügend Platz auf einem ext3-System vorhanden war.

Abhilfe bietet:

cp -a debian.vdi debian-dev.vdi
VBoxManage internalcommands setvdiuuid debian-dev.vdi

Appliance exportieren

Die vermutlich bessere Metode ist das Exportieren und anschließende Importieren einer Appliance. Diese geht über den "VM VirtualBox Manager".

Zum Exportieren einer VM aus dem Menü "Datei" => "Appliance exportieren" auswählen, zum Importieren entsprechend.

Um die Appliance so klein wie möglich zu halten, ist es oft sinnvoll, die leeren Bereiche der virtuellen Festplatte vor dem Export mit Nullen zu überschreiben.

Unter Linux geht das so:

sudo dd if=/dev/zero of=/zerofile; sudo rm /zerofile

Für eine Windows-VM kann sdelete genutzt werden:

sdelete.exe -c c:

Mini-Howto

Internes Netz

Ein internes Netz ist ein IP-Netz, das nur den Gästen zugänglich ist. Damit lassen sich wunderbar komplexere Netzwerklandschaften simulieren/gestalten. Die Gui erlaubt zwar, den Gast-Netzwerkkarten ein internes Netz zuzuordnen, aber ohne Eingriff funktioniert das (mit Version 2.2.4) nicht:

Es soll ein internes Netz 192.168.10.0 mit dem Namen debiannet eingerichtet werden:

Entweder per Kommandozeile:

VBoxManage dhcpserver add --netname debiannet -ip 192.168.10.1 --netmask 255.255.255.0 --lowerip 192.168.10.50 --upperip 192.168.10.100

Hinweis: Das Kommando nicht als root eingeben, sonst landen die Daten in der falschen Konfiguration!

Oder direkt in der Konfiguration ~/.VirtualBox/VirtualBox.xml:

...
    <NetserviceRegistry>
      <DHCPServers>
        <DHCPServer networkName="HostInterfaceNetworking-vboxnet0" IPAddress="192.168.9.3" networkMask="255.255.255.0" lowerIP="192.168.9.100" upperIP="192.168.9.255" enabled="1"/>
        <DHCPServer networkName="debiannet" IPAddress="192.168.10.3" networkMask="255.255.255.0" lowerIP="192.168.10.50" upperIP="192.168.10.100" enabled="1"/>
      </DHCPServers>
    </NetserviceRegistry>
...

Hinweis: der erste Eintrag definiert das voreingestellte Host-Only-Netzwerk.

Virtualbox .ovf export -> VMware ESX 3.5?

Hat das schon jemand zum Laufen gebracht?

VirtualBox (zuletzt geändert am 2015-03-17 19:10:41 durch 178-82-224-199)