Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
VirtualBox
2018-11-07: Zero-Day-Lücke für Virtualbox veröffentlicht ⇒ Ein russischer Hacker hat eine Zero-Day Guest-to-Host-Lücke für Virtualbox veröffentlicht. Er sei frustriert darüber, wie der Hersteller mit Bug Bountys und Security-Forschung umgehe.
Installation
Ubuntu Linux
Ubuntu 20.04 LTS:
> apt install virtualbox virtualbox-ext-pack
USB-Geräte in die VirtualBox durchreichen
Bei Linux Mint 17.1 (bzw. Ubuntu 14.04) muss der Betreiber der VirtualBox in der Gruppe "vboxusers" sein! Anderenfalls wird man dort keine USB-Geräte finden.
Auflösungen der Gast-Systeme ändern
Im folgenden Beispiel, baue ich eine zusätzliche Auflösung von 1366x768 (das ist die maximale Auflösung meines LapTop's "DELL Latitude E6320"), mit einer Farbtiefe von 16 Bit, zusätzlich ein.
16 Bit Farbtiefe ist in meinen Tests die maximale Farbtiefe für Android gewesen, Linux und Windows können durchaus auch 24 oder 32 Bit Farbtiefe darstellen.
Die Farbtiefe wird gewöhnlich durch ein "@" getrennt an die Auflösung angehängt, in diesem Fall wird sie aber (in Linux/Android) mit einem "x" an die Auflösung angehängt.
Änderungen in VirtualBox
diese Arbeitsschritte sind in VirtualBox (nachdem die zu bearbeitende VM gestoppt ist) immer für die entsprechende VM nötig, egal welches Betriebssystem innerhalb der VM installiert wurde:
> cd ~/VirtualBox\ VMs/ > ls Test-VM_01 > VBoxManage setextradata "Test-VM_01" "CustomVideoMode1" "1366x768x16"
es ist auch möglich weitere Bildschirmauflösungen hinzuzufügen:
> VBoxManage setextradata "Test-VM_01" "CustomVideoMode2" "1346x650x16" > VBoxManage setextradata "Test-VM_01" "CustomVideoMode3" "1300x720x16" > VBoxManage setextradata "Test-VM_01" "CustomVideoMode4" "1280x720x16" > VBoxManage setextradata "Test-VM_01" "CustomVideoMode5" "1024x768x16" > VBoxManage setextradata "Test-VM_01" "CustomVideoMode6" "1920x1080x16"
Änderungen in Linux
Es hängt von der Distribution ab, wie man in den Modus kommt, in dem die folgenden Arbeitsschritte möglich sind. Im allgemeinen weiß ein Systemadministrator für die entsprechende Linux-Distribution, wie man dahin gelangt.
Bei "Android x86" muss man im Grub-Boot-Menü den Punkt "Android-x86 ???????? (Debug mode)" auswählen.
diese Arbeitsschritte sind in alten Linux-Distributionen bzw. Android nötig:
> vi /boot/grub/menu.lst
diese Arbeitsschritte sind in neueren Linux-Distributionen nötig:
> vi /boot/grub/grub.cfg
die Zeile, die bearbeitet werden muss, beginnt mit "linux" und enthält an irgendeiner Stelle den Teil "/boot/", man kann die folgende Option einfach am Zeilenende (durch ein Leerzeichen getrennt) anhängen:
UVESA_MODE=1366x768x16
Änderungen in Windows
In Windows kann man die neuen Auflösung nach dem Neustart aus der Liste der möglichen Bildschirmauflösungen auswählen.
FreeBSD 8.2 als Host-System
Hier die einzelnen Schritte (aus dem FreeBSD-Wiki) kommentarlos im Überblick.
Vorraussetzungen
# portmaster sysutils/hal devel/pcre devel/dbus
# vi /etc/fstab: proc /proc procfs rw 0 0 # mount /proc
# vi /boot/loader.conf atapicam_load="YES" # kldload atapicam
# vi /etc/rc.conf dbus_enable="YES" # /usr/local/etc/rc.d/dbus start
# vi /etc/rc.conf hald_enable="YES" # /usr/local/etc/rc.d/hald start
Weitere Infos zu HAL: http://www.freebsd.org/gnome/docs/halfaq.html
# vi /etc/devfs.conf perm cd0 0660 perm xpt0 0660 perm pass0 0660 # /etc/rc.d/devfs restart
Weitere Infos zur X-Konfiguration: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html
Installation
# portsnap fetch update # cd /usr/ports/emulators/virtualbox-ose # make config ┌────────────────────────────────────────────────────────────────────┐ │ Options for virtualbox-ose 3.2.12 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] QT4 Build with QT4 Frontend │ │ │ │ [ ] DEBUG Build with debugging symbols │ │ │ │ [ ] GUESTADDITIONS Build with Guest Additions │ │ │ │ [X] DBUS Build with D-Bus and HAL support │ │ │ │ [ ] PULSEAUDIO Build with PulseAudio │ │ │ │ [X] X11 Build with X11 support │ │ │ │ [ ] VDE Build with VDE support │ │ │ │ [X] VNC Build with VNC support │ │ │ │ [X] WEBSERVICE Build Webservice │ │ │ │ [X] NLS Native language support │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
# portmaster emulators/virtualbox-ose x11-servers/xorg-server x11/xterm x11-wm/icewm # echo 'vboxdrv_load="YES"' >> /boot/loader.conf # echo 'vboxnet_enable="YES"' >> /etc/rc.conf # pw groupmod vboxusers -m fritz
entweder einen Reboot durchführen oder diese Schritte abarbeiten:
# kldload vboxdrv # /usr/local/etc/rc.d/vboxnet start
für USB-Unterstützung (ab Version 4)
# pw groupmod operator -m fritz # vi /etc/devfs.rules [system=10] add path 'usb/*' mode 0660 group operator # echo 'devfs_system_ruleset="system"' >> /etc/rc.conf # /etc/rc.d/devfs restart
Troubleshooting
Wenn Sie VirtualBox als nicht-root-Benutzer starten und einen Fehler wie diesen bekommen:
NS_ERROR_FACTORY_NOT_REGISTERED
dann löschen Sie bitte diese Dateien:
# rm -f /tmp/.vbox-*-ipc
Weitere Hinweise finden Sie auf der Webseite von VirtualBox:
Please report any problems to emulation@. Thanks!
VirtualBox über das Netz starten
X11
Diese Variante ist am einfachsten umzusetzen, hat aber in schmalbandigen Netzen (z.B. 54-er WLAN) das Problem, dass die Netzwerkbandbreite einfach nicht ausreicht um die Bilddaten mit dem X11-Protokoll zu übertragen.
Diese Lösung sollte deshalb mind. in einem 100Mbps-, besser aber in einem 1000Mbps-Netzwerk eingesetzt werden.
Vorbereitung
als "root" das nötigste installieren:
# portmaster x11-servers/xorg-server x11/xterm net/vnc
als Benutzer (Fritz) eine X-Initialisierungsdatei anlegen:
# echo "/usr/bin/icewm-session" > .xinitrc
Starten
Fritz startet es:
# VirtualBox
Probleme
Wenn die Variable LIBGL_ALWAYS_INDIRECT nicht gesetzt wird, stirbt VirtualBox beim anklicken von fast jeder Einstellung mit dieser Fehlermeldung:
Qt WARNING: QGLContext::makeCurrent(): Cannot make invalid context current. Segmentation fault: 11
Lösung
VirtualBox starten:
# export LIBGL_ALWAYS_INDIRECT=1 ; VirtualBox
VNC
Die Installation und Bedienung wird, kurz, hier dargestellt VNC.
VirtualBox auf der Komandozeile
Hilfe:
# VBoxManage -h
Infos zur VM anzeigen:
# VBoxManage showvminfo "VM-Name"
klonen einer VM
Hat man sich in VirtualBox eine VM eingerichtet, dann kann man sie als Klon-Vorlage für weitere VMs verwenden. Eine weitere VM kann man auf diese Weise in wenigen Arbeitsschritten als Klon erstellen.
FreeBSD 8.2-RELEASE (VirtualBox-OSE Version 3.2.12)
Schritt 1
Eine VM mit dem Namen vm01 anlegen und installieren.
Schritt 2
Das Plattenabbild der installierten Maschine (vm01) als Plattenabbild der Zweitmaschine (vm02) kopieren:
# cd ~/.VirtualBox/HardDisks # copy vm01.vdi vm02.vdi
Schritt 3
Jetzt muss das neue Plattenabbild eine eigene UUID bekommen:
# VBoxManage internalcommands sethduuid vm02.vdi
Schritt 4
Eine VM für unser Zweitsystem (vm02), mit den gleichen Einstellungen wie "vm01", vorbereiten. Sie muss jedoch nicht installiert werden, deshalb sollte man hier das Boot-CD-Image entweder nicht einbinden oder die Bootreihenfolge ändern.
Ubuntu-Linux (VirtualBox-OSE Version 4.0.4)
Schritt 1
Eine VM mit dem Namen vm01 anlegen und installieren.
Schritt 2
Das Plattenabbild der installierten Maschine (vm01) als Plattenabbild der Zweitmaschine (vm02) kopieren:
# cd ~/VirtualBox\ VMs # mkdir vm02 # copy vm01/vm01.vdi vm02/vm02.vdi
Schritt 3
Jetzt muss das neue Plattenabbild eine eigene UUID bekommen:
# VBoxManage internalcommands sethduuid vm02/vm02.vdi
Schritt 4
Eine VM für unser Zweitsystem (vm02), mit den gleichen Einstellungen wie "vm01", vorbereiten. Sie muss jedoch nicht installiert werden, deshalb sollte man hier das Boot-CD-Image entweder nicht einbinden oder die Bootreihenfolge ändern.
Windows 7 (VirtualBox-OSE Version 4.0.4)
Schritt 1
Eine VM mit dem Namen vm01 anlegen und installieren.
Schritt 2
Das Plattenabbild der installierten Maschine (vm01) als Plattenabbild der Zweitmaschine (vm02) kopieren:
# cd C:\Users\Name\VirtualBox VMs # mkdir vm02 # copy vm01\vm01.vdi vm02\vm02.vdi
Schritt 3
Jetzt muss das neue Plattenabbild eine eigene UUID bekommen:
# C:\Programme\Oracle\VirtualBox\VBoxManage.exe internalcommands sethduuid vm02\vm02.vdi
Schritt 4
Eine VM für unser Zweitsystem (vm02), mit den gleichen Einstellungen wie "vm01", vorbereiten. Sie muss jedoch nicht installiert werden, deshalb sollte man hier das Boot-CD-Image entweder nicht einbinden oder die Bootreihenfolge ändern.
Gemeinsame Ordner
Um Dateien direkt zwischen Host und Gast austauschen zu können, kann man einen "Gemeinsamen Ordner" einrichten.
Unter "Ändern" (bzw. "Settings"), man hätte es besser "Einstellungen" nennen sollen, kann man zu jeder einzelnen VM unter dem Menüpunkt "Gemeinsame Ordner" ein oder mehrer Verzeichnise auf der realen Host-Maschine auswählen.
In diesem Beispiel habe ich das Verzeichnis "/cdrom" als Gemeinsamen Ordner ausgewählt.
Im folgenden wird beispielhaft gezeigt, wie man unter verschiedenen Betriebssystemen diesen Gemeinsamen Ordner einbinden kann.
DOS-artiges BS
# net use x:\\vboxsvr\cdrom
Windows
Hier kann man alle Gemeinsamen Ordner über das Netzwerk auf dem virtuellen Host \\vboxsvr
als share's erreichen.
In diesem Beispiel also:
\\vboxsvr\cdrom
Linux
# mount -t vboxfs cdrom /mnt
SATA mit Windows XP
Windows XP bringt von Haus aus keinen SATA-Treiber mit, deshalb muss er entweder per Floppy mit [F6] bei der Installation installiert werden oder nachträglich mit der CD.
Mit dem "Intel Matrix-Storage-Manager" von http://downloadcenter.intel.com/ unterstützt "Windows XP" auch das SATA-Gerät in VirtualBox.
Ich habe den "Intel Matrix-Storage-Manager" in der Version 8.9.0.1023 in einem "Windows XP Prof. SP3" vom CD-Image aus nachträglich installiert.
Alle anderen voreingestellten Geräte habe ich bei behalten:
- Hauptplatine
- Hauptspeicher: 892 MB
- Chipsatz: PIIX3
- Erweiterte Einstellungen:
- IO-APIC aktivieren: An
- EFI aktivieren: Aus
- Hardware-Uhr in UTC: Aus
- Apsolutes Zeigegerät aktivieren: An
- Massenspeicher-Controler-Typ
- IDE-Controller
- Typ: PIIX4
- Host I/O-Cache verwenden: An
- SATA-Controller
- Typ: AHCI
- Host I/O-Cache verwenden: An
- Audio
- Audio-Treiber des Hosts: ALSA-Audio-Treiber
- Audio-Controler: ICH AC97
- Netzwerk
- Angeschlossen an: NAT
- Erweitert
- Adaptertyp: PCnet-FAST III (Am79C973)
Dann hat sich rausgestellt, dass sowohl die Variante mit dem Inteltreiber als auch die Variante mit dem virtuellem CD-Laufwerk in VirtualBox sehr langsam ist.
Deshalb verwende ich jetzt nur die drei IDE-CDROM-Laufwerke und setze lieber mehrere VirtualBox-VMs ein.
Vielleicht probiere ich es später nocheinmal mit KVM aus.



