Je souhaite formater une carte SD à partir de ma machine virtuelle Linux. J'ai un SD card intégré lecteur dans mon ordinateur portable. J'ai essayé d'utiliser VirtualBox et VMware Player et j'ai invité Ubuntu 10.04 invité. Aucun d’entre eux n’affiche le lecteur de carte SD en tant que périphérique. Je peux accéder à la carte SD à partir de l'hôte Windows.
Je ne suis pas intéressé par les solutions utilisant des dossiers partagés, car je souhaite accéder à la carte SD en tant que matériel (cela devrait apparaître dans /dev
).
En gros, je souhaite configurer la carte SD pour BeagleBoard , mais je ne souhaite pas installer Ubuntu physique sur mon PC.
Sur les MacBook Pro récents, le logement pour carte SD n'est plus exposé en tant que périphérique USB. Pour cette raison, vous devez connecter le périphérique brut à la VM afin d'obtenir un accès brut à l'intégralité de la carte. La documentation complète se trouve dans la section Advanced Storage Configuration de la documentation de VirtualBox.
Comme indiqué clairement dans la documentation:
Avertissement - L'accès au disque dur brut est réservé aux utilisateurs expérimentés. L'utilisation incorrecte ou l'utilisation d'une configuration obsolète peut entraîner une perte totale des données sur le disque physique . Plus important encore, n'essayez pas de démarrer la partition avec le système d'exploitation hôte en cours d'exécution dans un invité. Cela conduira à une grave corruption des données.
Comme guide rapide, voici les étapes à suivre pour connecter le périphérique à une machine virtuelle Linux:
Identifiez le périphérique de bloc de disque brut sur votre système hôte.
Ouvrez un terminal et tapez "mount". Vous verrez une sortie identifiant le volume monté à partir de votre carte SD. Sur mon système, je reçois ce qui suit
$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk2s1 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners)`
Dans mon cas, le volume "NO NAME" est la carte SD, je prends donc note de la partie /dev/disk2s1
. Dans ce cas particulier, la partie s1
représente une partition (tranche) sur le périphérique brut. Par conséquent, la partie que nous utiliserons plus tard est simplement la partie /dev/disk2
.
Maintenant, nous configurons VirtualBox pour qu'il connaisse le périphérique brut avec la commande suivante dans le terminal.
/path/to/file.vmdk
peut être placé n'importe où, mais il est judicieux de le stocker dans le dossier invité VM, tel que ~/VirtualBox VMs/guest-vm/sdcard.vmdk
.Notez que le -rawdisk
que nous utilisons ne fait pas référence à la partition (slice), mais uniquement au périphérique bloc dans son ensemble.
$ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
Ensuite, nous attachons le disque brut à un invité VM dans l'interface utilisateur de VirtualBox.
/path/to/file.vmdk
que vous avez utilisé à l'étape 3 et sélectionnez-le.file.vmdk
dans la liste.Il semble que certaines personnes puissent avoir des difficultés à accéder au périphérique brut à l'étape 3.2 ou 4.6. Tenter d'exécuter certaines des commandes avec Sudo ne vous aidera pas, car VirtualBox s'exécutera en tant qu'utilisateur connecté et ne pourra toujours pas accéder au périphérique brut correct ni au fichier vmdk généré.
Les étapes suivantes devraient aider, même si je ne les ai pas testées.
Vérifier les permissions du disque brut
$ ls -l /dev/disk2
brw-r----- 1 jinn staff 14, 5 Aug 26 15:33 /dev/disk2
Ces autorisations doivent correspondre à votre compte d'utilisateur actuellement connecté:
$ id
uid=501(jinn) gid=20(staff) ...snip...
Les autorisations sur le périphérique doivent également permettre à votre compte d'utilisateur habituel de lire (r) et d'écrire (w) sur ce périphérique. NE MODIFIEZ PAS LES AUTORISATIONS SUR L'APPAREIL SI VOUS NE SAVEZ PAS ABSOLUMENT CE QUE VOUS FAITES.
OSX Mountain Lion a créé le périphérique avec les privilèges "root: operator" et les autorisations 0640. Malheureusement, pour l’instant, le seul moyen d’avoir accès à cet appareil est de "Sudo chown $ USER" à votre utilisateur actuel chaque fois que vous insérez l’appareil. Toutefois, cela n’est pas recommandé à moins que vous ne compreniez vraiment ce que vous faites. Espérons que Apple ou VirtualBox trouveront une solution plus appropriée.
Réponse pour les utilisateurs Windows
Obtenez le DeviceID de votre lecteur de carte SD.
Vous aurez besoin d'une carte dans le lecteur, montée par Windows.
Entrez cette commande
wmic diskdrive list brief
Ça devrait ressembler a quelque chose comme ca:
C:\Users\Sandy Scott>wmic diskdrive list brief
Caption DeviceID Model Partitions Size
WDC WD7500BPKT-75PK4T0 \\.\PHYSICALDRIVE0 WDC WD7500BPKT-75PK4T0 3 750153761280
O2Micro SD SCSI Disk Device \\.\PHYSICALDRIVE1 O2Micro SD SCSI Disk Device 1 3964584960
Le dernier appareil est le lecteur de carte SD, donc le DeviceID est \\.\PHYSICALDRIVE1
Créez le fichier de lien vers la carte SD
Ouvrez une commande windows en tant qu'administrateur
"C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk "\\.\PHYSICALDRIVE1"
Cela suppose le chemin d'installation par défaut - changez-le si vous en avez besoin. (Assurez-vous que les guillemets sont autour de l'argument rawdisk.)
Le fichier .vmdk est un lien vers la carte SD. Vous pouvez le placer n’importe où sur votre système hôte, mais cette commande l’a simplement placé sur votre bureau pour plus de commodité.
Suivez les étapes 4 à 6 de la réponse de JinnKo, le seul changement mineur est que vous devez démarrer VirtualBox en tant qu'administrateur.
- Ensuite, nous attachons le disque brut à un invité VM dans l'interface utilisateur de VirtualBox
- Assurez-vous que l'invité VM est éteint.
- Assurez-vous que VirtualBox ne fonctionne pas
- Démarrez VirtualBox en faisant un clic droit dessus et en choisissant "Exécuter en tant qu'administrateur"
- Ouvrir la zone de paramètres pour la machine virtuelle invitée
- Cliquez sur "Stockage" dans la barre d'outils
- À côté du contrôleur, cliquez sur l'icône "Ajouter un disque dur"
- Sélectionnez "Choisir un disque existant"
- Accédez au
/path/to/file.vmdk
que vous avez utilisé à l'étape 3 et sélectionnez-le.- Vous devriez maintenant être redirigé vers l'onglet Stockage et voir votre
file.vmdk
dans la liste.- Démarrer la VM
- Selon que vous ayez ou non une interface graphique, la carte SD peut ou non être montée automatiquement. Si vous devez monter manuellement, il est simplement exposé comme un autre périphérique de bloc standard. Par conséquent, sur mon invité, cela a été exposé sous le nom/dev/sdb.
Il est fort probable que vous manquiez les extensions si votre lecteur SD utilise votre contrôleur USB.
Sous Fichier> Préférences, suivez les images. Ajoutez et pointez sur l'extension téléchargée.
Redémarrez votre machine virtuelle et vous devriez avoir accès aux périphériques USB.
J'utilise Kubuntu 15.04, VirtualBox 4.3.26
Cela suppose que le périphérique de carte SD est /dev/mmcbl0
et que le fichier .vdk de sortie sera sd-card.vmk
:
Sudo VBoxManage internalcommands createrawvmdk -filename ./sd-card.vmdk -rawdisk /dev/mmcblk0
Pas sûr que ce soit le meilleur moyen de réparer les permissions, mais ça a fonctionné:
Sudo chmod 777 /dev/mmcblk0
Sudo chmod 777 ./sd-card.vmdk
Allez maintenant dans les VM Paramètres, sélectionnez Stockage, cliquez sur Contrôleur: Sata, cliquez sur l'icône Ajouter un disque dur, sélectionnez votre fichier .vdk (sd-card.vmdk dans ce cas)
Sur les MacBook Pro récents, le logement pour carte SD n'est plus exposé en tant que périphérique USB
Pour résoudre ce problème, vous pouvez simplement utiliser un lecteur de carte mémoire USB externe (carte SD vers adaptateur USB) au lieu d'un lecteur de carte intégré. Il exposera votre carte SD en tant que périphérique USB, ce qui vous permettra de le monter facilement, comme tout périphérique USB. Ce sont des appareils bon marché et constitueraient une solution acceptable compte tenu de tous les tracas de l’autre.
J'ai eu beaucoup de mal à faire fonctionner la solution de JinnKo, principalement en raison de mon statut sur Mountain Lion (OS X 10.8) ... Mais avec son aide, j'ai résolu le problème.
La solution complète est détaillée ici .
Cependant, l’essence de ma solution - pour les utilisateurs de Mountain Lion - est la suivante (utilisez les étapes de JinnKo ci-dessus, mais insérez mon étape ici avant avec la commande 'VBoxManage internalcommands createrawvmdk [...]' ( c'est-à-dire entre ses étapes 2 et 3):
** Particulièrement pour Mtn Lion ** Assurez-vous que vous êtes le propriétaire de cet appareil. Sur 10.8 millions de Lion, vous constaterez probablement que vous ne l'êtes pas. Vérifiez-le en faisant:
ls -l /dev/disk*
Avec le '*', vous verrez TOUTES vos unités de disque, vous pouvez aussi faire: ls -l/dev/diskX pour voir seulement 'X', par exemple, j'ai:
ls -l /dev/disk5
Sur Mtn Lion (10.8.x), vous verrez quelque chose comme:
brw-r----- 1 root operator 1, <today's date/time> /dev/diskX
Où "X" est votre numéro de périphérique, comme le "5" dans/dev/disk5 ...
Sur Lion (10.7.x), Snow Leopard (10.6.x) ou peut-être sur des versions antérieures d’OS X, vous verrez probablement, si votre nom d’utilisateur est «brad»,:
brw-r----- 1 brad operator 1, <today's date/time> /dev/diskX
Où "X" est votre numéro de périphérique, comme le "5" dans/dev/disk5 ... Si vous êtes le propriétaire, alors tout va bien, rien à faire ici, passez à l'étape suivante, c'est-à-dire l'étape createrawvmdk ( dans les grandes instructions de @JinnKo ci-dessus).
Si vous n'êtes pas le propriétaire (mais l'utilisateur root ou un autre utilisateur), vous devez (a) vous connecter en tant qu'utilisateur admin ou (b) procéder comme suit (encore une fois, soyez très sûr que vous utilisez le numéro de périphérique/lettre correct ici!):
* ATTENTION * Ce qui suit n’est destiné qu’à ceux qui veulent risquer détruire définitivement les données de leur disque dur ou de leur lecteur de stockage flash. FAITES PAS _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ n n n se s ne soit pas sûr de savoir ce que tu fais
Sudo chown <your username> /dev/disk5
Sudo chown <your username> /dev/disk5s1
* ATTENTION * DO PAS _ FAITES ceci si vous n'êtes pas sûr de savoir ce que vous faites. Ce qui précède s’adresse uniquement à ceux qui souhaitent RISQUER de détruire en permanence les données de leur disque dur ou de leur lecteur de stockage flash.
Vous devrez le faire pour TOUTES vos tranches (s1, s2, s3, ... quel que soit leur nombre). Par exemple, mon nom d'utilisateur est 'brad', c'est pourquoi j'ai: Sudo chown brad /dev/disk5
, puis Sudo chown brad /dev/disk5s1
, puis pour s2
et s3
(étant donné que j'avais déjà 3 partitions ou tranches existantes).
Si vous n'avez pas partitionné la carte SD, vous n'aurez peut-être besoin que de faire le Sudo chown <your username> /dev/diskX
une fois (sans aucune des tranches/partitions).
J'espère que cela aidera d'autres utilisateurs pauvres de Mtn Lion!
Jusqu'à présent, je n'ai pas réussi à trouver un moyen de le faire directement, même avec un lecteur de carte USB (la carte a été placée sur /dev/dm-1
plutôt que le /dev/mmcblk1
attendu).
Mon travail consistait à créer un lecteur virtuel de 4 Go dans VirtualBox. Cela pourrait alors (en tant que /dev/sdb
) procéder à une installation de BeagleBoard Ubuntu comme documenté.
J'ai ensuite arrêté la VM, l'ai convertie en un fichier RAW DD et ai utilisé DD pour la mettre sur la carte: (sur le Mac hôte):
VBoxManage clonehd UbuntuBeagleImage.vdi UbuntuBeagleImage.dd --format RAW
Sudo dd if=UbuntuBeagleImage.dd of=/dev/rdisk(NUMBER) bs=1m
(/dev/disk2
dans mon cas, mais le fait de ne pas vérifier que tout se passe bien pourrait faire chavirer votre disque dur).
La commande dd
a pris environ 1 heure 20 minutes!
J'espère que ça aide. Je cherche toujours un moyen plus simple et plus rapide - nous ne devrions pas avoir besoin de transférer 4 Go de données pour 600 Mo d’OS.
Pour moi, la solution consistait à allumer un périphérique USB avec une carte SD, en utilisantDevices -> USB devices ->My card reader
,
et après quelques secondes, de nouveaux disques apparaissent dans ma VM.
J'ai déjà installé VirtualBox Extensions Pack.
J'ai installé les fichiers "Virtual Box Guest Additons CD", mais mon lecteur de carte SD n'apparaissait pas dans ma machine virtuelle Windows XP. Le mien fonctionnait avec enable le périphérique USB dans Virtual Box, puis redémarrage la machine virtuelle.
Comme mentionné par Kobaltz. Pour prendre en charge les versions USB 2.0 et 3.0, vous devez installer le Virtual Extension Pack. J'ai installé le 5.2.22 Oracle VM VirtualBox Extension Pack, et vous pouvez le télécharger à partir de la page de téléchargement de Virtual Box. Une fois le fichier téléchargé, vous pouvez directement l'installer et l'installer, il sera ajouté à vos extensions Virtual Box.
Vous devez également ajouter votre carte SD aux filtres de périphérique de notre boîte virtuelle. Veuillez vous rendre dans Paramètres -> USB -> Cliquez sur l’option Ajouter une carte SD jointe.
Maintenant, vous pourrez utiliser votre carte SD dans les filtres.
Allez dans les fichiers et voir les dossiers de la carte SD (j'utilise Ubuntu Linux Distribution)