Senden Sie Ihre E-Mail-Adresse, um einen Link zum sofortigen Download auf Ihrem Desktop zu erhalten!
VirtualBox-Benutzer aller Stufen (vom Anfänger bis zum Entwickler) haben zahlreiche Szenarien, in denen sie über USB-Passthrough Zugriff auf ein USB-Gerät von VirtualBox vms benötigen. Insbesondere der Zugriff auf USB-Geräte, die mit einem Host-Computer verbunden sind.
Wie führen vbox-Benutzer erfolgreich VirtualBox USB-Passthrough innerhalb von VMs durch, um über Ethernet (oder andere Netzwerkverbindungen) auf ihre USB-Hardwaregeräte zuzugreifen?
Das beantworten wir weiter unten...
Dieser Artikel enthält Schritt-für-Schritt-Anleitungen, um vbox-Benutzern zu zeigen, wie sie den Hardwarezugriff auf die SD-Karte von einem Ubuntu Linux VirtualBox-Gastcomputer auf einem Hostcomputer mit Windows-Betriebssystemen über Ethernet (oder eine andere Netzwerkverbindung) aktivieren.
Bevor Sie einen der folgenden Schritte ausführen, stellen Sie sicher, dass alle Treiber auf allen am USB-Passthrough teilnehmenden Computern aktualisiert werden.
Unabhängig von Plattform, Tool oder Betriebssystem (VboxManage, Ubuntu, XP, VirtualBox Extension Packs usw.) müssen Entwickler und neue vboxuser gleichermaßen ihre Treiber auf dem neuesten Stand (oder kompatibel mit der verwendeten Version des VirtualBox Extension Packs) sein, um den Erfolg zu maximieren USB-Passthrough.
Schritt 1-1: Öffnen Sie die Eingabeaufforderung (oder Windows PowerShell auf Windows-Betriebssystemen – wie XP Pro) als Administrator (zum Beispiel: "Windows"-Taste + "x". Wählen Sie dann "Eingabeaufforderung (admin)")
Schritt 1-2: Verwenden Sie den Befehl wmic (oder den Befehl lsusb unter Linux), um die Laufwerke aufzulisten. Dies sollte vor dem Einlegen der SD-Karte in den PC erfolgen.
wmic diskdrive list brief
Die Ausgabe sollte wie folgt lauten:
Bildbeschriftung | Geräte ID | Modell | Partitionen | Größe |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Schritt 1-3: Legen Sie die SD-Karte in das Gerät ein und führen Sie den gleichen Befehl wie zuvor aus (auf einem Linux-Betriebssystem wäre es der Befehl lsusb, um Informationen zu spezifischen Details zu USB-Bussen usw).
Benutzer sollten eine zusätzliche Zeile mit der Geräte-ID der SD-Karte sehen. Im folgenden Beispiel lautet die ID: “\\.\PHYSICALDRIVE1“.
Bildbeschriftung | Geräte ID | Modell | Partitionen | Größe |
Generic- USB3.0 CRW -SD USB Device | \\.\PHYSICALDRIVE1 | Generic- USB3.0 CRW -SD USB Device | 2 | 31914086400 |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Entwickler und vboxuser sollten beachten: Benutzer sollten wissen, ob sie ein 3.0 USB-Gerät oder ein 2.0 (EHCI) USB verwenden. "EHCI" steht für: "Enhanced Host Controller Interface".
Schritt 2-1: Übertragen Sie den Ordner in den VirtualBox-Installationsordner. Im folgenden Beispiel lautet dies: “C:\Program Files\Oracle\VirtualBox\”.
cd "C:\Program Files\Oracle\VirtualBox\"
Schritt 2-2: Erstellen Sie mit der "VBoxManage.exe" die VMDK-Datei der SD-Karte. Das letzte Argument betrifft die DeviceID der SD-Karten (siehe Schritte 1-1 bis 1-3)
.\VBoxManage.exe internalcommands createrawvmdk -filename C:\sdcard.vmdk -rawdisk
\\.\PHYSICALDRIVE1
Wenn alles in Ordnung ist, lautet die Ausgabe "sdcard.vmdk" und wird dann im Stammordner des C-Laufwerks erstellt.
RAW host disk access VMDK file C:\sdcard.vmdk created successfully.
Schritt 3-1: Starten Sie als Administrator die VirtualBox-GUI
Schritt 3-2: Navigieren Sie in der VirtualBox-GUI wie folgt: "Einstellung > Speicher"
Schritt 3-3: Klicken Sie auf "Controller: SATA"
Schritt 3-4: Aktivieren Sie das Kontrollkästchen neben "Host-E/A-Cache verwenden".
Schritt 3-5: Klicken Sie nun auf das Symbol "Festplatte hinzufügen" (in der visuellen Hilfe unten gezeigt).
Schritt 3-6: Wählen Sie "Vorhandene Festplatte auswählen"
Schritt 3-7: Gehen Sie zum Laufwerk C und wählen Sie die Datei "sdcard.vmdk" (die Datei, die wir in Schritt 2 erstellt haben).
Starten Sie die virtuelle Maschine und beginnen Sie mit der Überprüfung. In diesem Beispiel sieht es so aus: "/dev/sdb" (Raspbian OS-Image auf 32 GB SD-Karte).
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29.8 GiB, 32010928128 bytes, 62521344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb1d773dc
Gerät | Boot-Start | Ende | Sektoren | Größe | Ausweis | Typ |
/dev/sdb1 | 8192 | 96453 | 88262 | 43.1M | c | W95 FAT32 (LBA) |
/dev/sdb2 | 98304 | 31116287 | 31017984 | 14.8G | 83 | Linux |
Leider sind beim Versuch, die SD-Karte zu verwenden, zahlreiche Fehler aufgetreten. Im Folgenden finden Sie einige Fehlerbehebungsoptionen für VirtualBox SD-Karten-Passthrough.
Fehlerbehebungsoption 1:
Der Fehler: "I/O-Cache ist beim Aktualisieren von Daten auf Medium "ahci-0-1" (rc=VERR_ACCESS_DENIED) auf einen Fehler gestoßen"
Für Benutzer, bei denen der obige Fehler auftritt, kehren Sie zu Schritt 2 zurück und stellen Sie sicher, dass das Kontrollkästchen "Host-E/A-Cache verwenden" aktiviert ist.
Fehlerbehebungsoption 2
Der Fehler: "UUID des Mediums stimmt nicht mit dem in der Medienregistrierung gespeicherten Wert überein.
Führen Sie im VirtualBox-Installationsordner den folgenden Befehl aus:
.\VBoxManage.exe list hdds
Benutzer haben dann die Möglichkeit, die UUID in den Fehlerdetails zu finden
UUID: 5b951504-358d-4a6e-bb8f-61be3ec32367
Parent UUID: base
State: inaccessible
Type: normal (base)
Location: C:\Users\max\Desktop\sdcard.vmdk
Storage format: VMDK
Capacity: 0 MBytes
Encryption: disabled
Verwenden Sie den folgenden Befehl (durch Angabe der UUID), um die Festplatte zu entfernen:
.\VBoxManage.exe closemedium disk 5b951504-358d-4a6e-bb8f-61be3ec32367