2012-01-01 03:00:56 +0000 2012-01-01 03:00:56 +0000
66
66

Wie kann man von einer virtuellen Maschine auf eine SD-Karte zugreifen?

Ich möchte eine SD-Karte von meiner virtuellen Linux-Maschine aus formatieren. Ich habe einen eingebauten SD-Karten -Leser in meinem Laptop. Ich habe es mit VirtualBox und VMware Player versucht und Ubuntu 10.04 als Gast installiert. Keines dieser Programme zeigt den SD-Kartenleser als Gerät an. Ich kann vom Windows-Host aus auf die SD-Karte zugreifen.

Ich bin nicht an Lösungen mit gemeinsamen Ordnern interessiert, da ich auf die SD-Karte als Hardware zugreifen möchte (sie sollte in /dev angezeigt werden).

Ich möchte grundsätzlich die SD-Karte für BeagleBoard einrichten, aber ich möchte kein physisches Ubuntu auf meinem PC installieren.

Odpowiedzi (11)

56
56
56
2012-08-06 09:15:30 +0000

Bei neueren MacBook Pro’s ist der SD-Kartensteckplatz nicht mehr als USB-Gerät sichtbar. Aus diesem Grund müssen Sie das Raw-Gerät an die VM anschließen, um Raw-Zugriff auf die gesamte Karte zu erhalten. Die vollständige Dokumentation finden Sie im Abschnitt Erweiterte Speicherkonfiguration der VirtualBox-Dokumentation.

Wie in den Dokumentationen deutlich angegeben:

Warnung - Roher Festplattenzugriff ist nur für erfahrene Benutzer. Eine falsche Verwendung oder die Verwendung einer veralteten Konfiguration kann zu einem totalen Datenverlust auf der physischen Festplatte führen. Versuchen Sie vor allem nicht, die Partition mit dem aktuell laufenden Host-Betriebssystem in einem Gast zu booten. Dies führt zu einer schweren Datenbeschädigung.

Als Kurzanleitung sind dies die Schritte, um das Gerät an eine Linux-VM anzuschließen:

  1. Identifizieren Sie das Raw-Disk-Block-Gerät auf Ihrem Host-System

  2. Öffnen Sie das Festplattendienstprogramm und “hängen Sie das Volume aus”. Werfen Sie es nicht “aus”. Beachten Sie, dass Sie das Volume während der nächsten Schritte eventuell ab und zu aushängen müssen, da ich festgestellt habe, dass OSX es automatisch nach dem Zufallsprinzip wieder aushängt.

  3. Nun richten wir VirtualBox so ein, dass es das Raw-Device kennt, indem wir den folgenden Befehl im Terminal eingeben.

  4. Als nächstes binden wir die Raw-Disk an eine Gast-VM in der VirtualBox-Benutzeroberfläche an

  5. Starten Sie die VM

  6. Je nachdem, ob Sie eine GUI haben oder nicht, kann die SD-Karte automatisch gemountet werden oder nicht. Wenn Sie sie manuell mounten müssen, wird sie einfach als ein anderes Standard-Blockgerät angezeigt, auf meinem Gast war sie also als /dev/sdb angezeigt.


Update

Es scheint, dass einige Leute Probleme mit dem Zugriff auf das Raw-Gerät in Schritt 3.2 oder 4.6 haben könnten. Der Versuch, einige der Befehle mit sudo auszuführen, wird nicht helfen, da VirtualBox als Ihr angemeldeter Benutzer läuft und trotzdem nicht in der Lage ist, korrekt auf das Raw Device oder die generierte vmdk-Datei zuzugreifen.

Die folgenden Schritte sollten helfen, obwohl ich sie nicht getestet habe.

  1. stellen Sie sicher, dass das Konto, das Sie unter OSX verwenden, in den Systemeinstellungen/Benutzern über Admin-Rechte verfügt. Es ist gut möglich, dass es auch das primäre Konto auf dem System ist, damit der rohe Gerätezugriff funktioniert.
  2. Überprüfen Sie die Raw-Disk-Berechtigungen

Update #2

Es stellte sich heraus, dass OSX Mountain Lion das Gerät mit “root:operator”-Rechten und 0640-Berechtigungen erstellt hat. Leider ist im Moment die einzige Möglichkeit, Zugriff auf dieses Gerät zu bekommen, es mit “sudo chown $USER” jedes Mal, wenn Sie das Gerät einstecken, auf Ihren aktuellen Benutzer zu übertragen, was jedoch nicht zu empfehlen ist, es sei denn, Sie verstehen wirklich, was Sie tun. Hoffentlich finden entweder Apple oder VirtualBox eine geeignetere Lösung.

42
42
42
2013-08-14 15:35:08 +0000

Antwort für Windows-Benutzer

  1. Ermitteln Sie die DeviceID Ihres SD-Kartenlesers.

  2. Erstellen Sie die Verknüpfungsdatei zur SD-Karte

  3. Befolgen Sie die Schritte 4-6 in der Antwort von JinnKo, die einzige kleine Änderung ist, dass Sie VirtualBox als Administrator starten müssen

  1. Als Nächstes wird die Rohplatte in der VirtualBox-Benutzeroberfläche an eine Gast-VM angehängt
  2. Stellen Sie sicher, dass die Gast-VM ausgeschaltet ist.
  3. Versichern Sie, dass VirtualBox nicht läuft
  4. Starten Sie VirtualBox, indem Sie mit der rechten Maustaste darauf klicken und “Als Administrator ausführen ” wählen
  5. Öffnen Sie den Einstellungsbereich für die Gast-VM
  6. Klicken Sie in der Symbolleiste auf “Storage”
  7. Klicken Sie neben dem Controller auf das Symbol für “Festplatte hinzufügen”
  8. Wählen Sie “Vorhandene Festplatte auswählen”
  9. Navigieren Sie zur /path/to/file.vmdk, die Sie in Schritt 3 verwendet haben, und wählen Sie sie aus
  10. Sie sollten nun zur Registerkarte “Storage” zurückkehren und Ihre file.vmdk in der Liste sehen.
  11. Starten Sie die VM
  12. Je nachdem, ob Sie eine grafische Benutzeroberfläche haben oder nicht, kann die SD-Karte automatisch gemountet werden oder nicht. Wenn Sie sie manuell mounten müssen, wird sie einfach als ein anderes Standard-Blockgerät angezeigt, bei meinem Gast war sie also als /dev/sdb angezeigt.
7
7
7
2012-01-01 04:16:47 +0000

Wahrscheinlich fehlen Ihnen die Erweiterungen, wenn Ihr SD-Leser Ihren USB-Controller verwendet.

Unter Datei > Voreinstellungen, folgen Sie dem Bild. Hinzufügen und zeigen Sie auf die heruntergeladene Erweiterung.

Starten Sie Ihre virtuelle Maschine neu und Sie sollten Zugriff auf USB-Geräte haben.

4
4
4
2015-05-01 18:49:41 +0000

Ich verwende Kubuntu 15.04, VirtualBox 4.3.26

Dies setzt voraus, dass das sd-Kartengerät /dev/mmcbl0 ist, und die ausgegebene .vdk wird sd-card.vmk sein:

sudo VBoxManage internalcommands createrawvmdk -filename ./sd-card.vmdk -rawdisk /dev/mmcblk0

Nicht sicher, ob dies der beste Weg ist, um die Berechtigungen zu beheben, aber es hat funktioniert:

sudo chmod 777 /dev/mmcblk0
sudo chmod 777 ./sd-card.vmdk

Gehen Sie nun in die VM-Einstellungen, wählen Sie Storage, klicken Sie auf Controller:Sata, klicken Sie auf das Symbol für Add Hard Disk, wählen Sie Ihre .vdk (in diesem Fall sd-card.vmdk)

4
4
4
2014-02-13 12:41:45 +0000

Auf neueren MacBook Pro’s wird der SD-Kartensteckplatz nicht mehr als USB-Gerät angezeigt

Um dieses Problem zu lösen, können Sie einfach einen externen Usb Memory Card Reader (d.h. einen SD-Karten-zu-USB-Adapter) anstelle des eingebauten Kartenlesers verwenden. Dieser stellt Ihre SD-Karte als USB-Gerät dar, so dass Sie sie einfach wie jedes andere USB-Gerät anschließen können. Diese Geräte sind billig und wären eine akzeptable Lösung, wenn man bedenkt, wie umständlich der andere Weg ist.

3
3
3
2012-08-15 02:43:13 +0000

Ich hatte eine Menge Probleme, die Lösung von JinnKo zum Laufen zu bringen, was vor allem daran lag, dass ich mit Mountain Lion (OS X 10.8) arbeite … Aber mit seiner freundlichen Unterstützung habe ich die Probleme gelöst.

Die vollständige Lösung ist detailliert hier .

Die Essenz meiner Lösung - für Mountain Lion-Benutzer - ist jedoch wie folgt (verwenden Sie JinnKos obige Schritte, aber fügen Sie meinen Schritt hier ein, bevor Sie den Befehl ‘VBoxManage internalcommands createrawvmdk […]’ ausführen (also zwischen seinen Schritten 2 & 3):

** Speziell für Mtn Lion ** Stellen Sie sicher, dass Sie der Besitzer dieses Geräts sind. Bei 10.8 Mtn Lion werden Sie wahrscheinlich feststellen, dass Sie es nicht sind. Überprüfen Sie das, indem Sie Folgendes tun:

ls -l /dev/disk*

Mit dem ‘*’ werden Sie ALLE Ihre Festplattengeräte sehen, Sie können auch Folgendes tun: ls -l /dev/diskX, um nur ‘X’ zu sehen, zum Beispiel habe ich das getan:

ls -l /dev/disk5

Auf Mtn Lion ( 10.8.x ) werden Sie etwas sehen wie:

brw-r----- 1 root operator 1, <today's date/time> /dev/diskX

Wobei ‘X’ Ihre Gerätenummer ist, wie die ‘5’ in /dev/disk5 …

Unter Lion ( 10.7.x ), Snow Leopard (10.6.x ), oder vielleicht früheren Versionen von OS X, werden Sie - wenn Ihr Benutzername ‘brad’ ist - wahrscheinlich etwas sehen wie:

brw-r----- 1 brad operator 1, <today's date/time> /dev/diskX

Wobei ‘X’ Ihre Gerätenummer ist, wie die ‘5’ in /dev/disk5 … Wenn Sie der Besitzer sind, dann ist alles gut, hier gibt es nichts zu tun, gehen Sie zum nächsten Schritt, d.h. dem Schritt createrawvmdk (in @JinnKo ‘s großartiger Anleitung oben).

Wenn Sie nicht der Besitzer sind (sondern 'root’ oder ein anderer Benutzer), dann loggen Sie sich entweder (a) als dieser Admin-Benutzer ein oder (b) machen Sie das Folgende (noch einmal, seien Sie sehr sicher, dass Sie hier die richtige Gerätenummer/den richtigen Buchstaben verwenden!):

* VORSICHT * Das Folgende ist nur für diejenigen, die das Risiko eingehen wollen, Daten auf ihrer Festplatte oder ihrem Flash-Speicherlaufwerk dauerhaft zu zerstören. Tun Sie dies nicht, wenn Sie nicht sicher sind, dass Sie wissen, was Sie tun:

sudo chown <your username> /dev/disk5
sudo chown <your username> /dev/disk5s1

* VORSICHT * TUN SIE NICHT DIESES, wenn Sie nicht sicher sind, was Sie tun. Die obige Anleitung ist nur für diejenigen, die das RISIKO eingehen wollen, Daten auf ihrer Festplatte oder ihrem Flash-Speicherlaufwerk dauerhaft zu zerstören.

Sie müssen dies für ALLE Ihre Slices tun (s1, s2, s3, … wie viele es auch immer sind). Zum Beispiel ist mein Benutzername ‘brad’, also habe ich sudo chown brad /dev/disk5, dann sudo chown brad /dev/disk5s1, dann für s2 und s3 (da ich bereits 3 vorhandene Partitionen oder Slices hatte).

Wenn Sie die SD-Karte nicht partitioniert haben, müssen Sie sudo chown <your username> /dev/diskX nur einmal durchführen (ohne die Slices/Partitionen)

Ich hoffe, das hilft einigen anderen armen Mtn Lion-Benutzern da draußen!

1
1
1
2012-04-25 06:24:35 +0000

Ich habe bisher keinen Weg gefunden, dies direkt zu tun, auch nicht mit einem USB-Kartenleser (er legte die Karte auf /dev/dm-1 statt der erwarteten /dev/mmcblk1).

Mein Ausweg war, ein 4 GB großes virtuelles Laufwerk in VirtualBox zu erstellen. Dieses konnte dann (als /dev/sdb) eine Installation von BeagleBoard Ubuntu wie dokumentiert aufnehmen.

Ich habe dann die VM heruntergefahren, sie in eine RAW-DD-Datei konvertiert und sie mit DD auf die Karte gelegt: (auf dem Host-Mac):

VBoxManage clonehd UbuntuBeagleImage.vdi UbuntuBeagleImage.dd --format RAW
sudo dd if=UbuntuBeagleImage.dd of=/dev/rdisk(NUMBER) bs=1m

(/dev/disk2 in meinem Fall, aber überprüfen Sie es dreimal, denn wenn Sie es falsch machen, könnte Ihre Festplatte kaputt gehen).

Der Befehl dd dauerte etwa 1 Stunde und 20 Minuten!

Ich hoffe, das hilft. Ich arbeite immer noch an einem einfacheren und schnelleren Weg - wir sollten nicht 4 GB an Daten für 600 MB an Betriebssystemen übertragen müssen.

0
0
0
2018-11-27 09:48:54 +0000

Wie kobaltz erwähnt hat. Um die USB 2.0 und 3.0 Versionen zu unterstützen, müssen Sie das Virtual Extension Pack installieren. Ich habe das 5.2.22 Oracle VM VirtualBox Extension Pack installiert, und Sie können es von der Virtual Box Download-Seite herunterladen. Sobald Sie die Datei heruntergeladen haben, können Sie direkt loslegen und sie installieren, sie wird dann zu Ihren Virtual Box-Erweiterungen hinzugefügt.

Sie sollten auch Ihre SD-Karte zu den Gerätefiltern in unserer Virtual Box hinzufügen, bitte gehen Sie zu Einstellungen - > USB -> Klicken Sie auf die Option Angeschlossene SD-Karte hinzufügen.

Jetzt können Sie Ihre SD-Karte in den Filtern sehen.

Gehen Sie zu den Dateien und sehen Sie die Ordner der SD-Karte (ich verwende die Ubuntu Linux Distribution)

0
0
0
2016-02-16 19:55:43 +0000

Ich habe die “Virtual Box Guest Additons CD”-Dateien installiert, aber mein SD-Kartenleser wurde in meiner Windows XP Virtual Machine nicht angezeigt. Ich konnte meinen zum Laufen bringen, indem ich das USB-Gerät in Virtual Box aktivierte und dann die virtuelle Maschine neustartete.

0
0
0
2014-06-14 15:40:36 +0000

Für mich war die Lösung, das USB-Gerät mit der SD-Karte einzuschalten, mit Devices -> USB devices ->My card reader, und nach wenigen Sekunden erscheinen neue Festplatten in meiner VM.

Ich habe vorher das VirtualBox Extensions Pack installiert.

0
0
0
2019-04-03 14:15:22 +0000

Für alle, die Macos verwenden und den vorherigen Antworten folgen: Wenn Sie immer noch nicht auf die SD-Karte zugreifen können, weil es ein Berechtigungsproblem gibt, löst

Virtualbox mit sudo ausführen das Problem.

sudo VirtualBox

Beachten Sie, dass der Pfad zu den vm-Dateien unterschiedlich ist, in meinem Fall ist er es:

/private/var/root/VirtualBox\ VMs/$VM_NAME/

Wenn das immer noch nicht funktioniert, ändern Sie den Besitzer und die Zugriffsrechte des Laufwerks der sd-Karte auf Ihr Benutzerkonto bzw. 666.