75 votes

Comment convertir une image disque brute plate en vmdk pour virtualbox ou vmplayer ?

J'ai quelques vieilles images d'anciens systèmes de fichiers Linux au format de fichier plat. Elles peuvent être utilisées par Bochs mais j'ai besoin de les exécuter avec Boîte virtuelle . Virtual Box ne peut pas utiliser les images dans ce format. Je dois donc convertir ces images de fichier plat en format de fichier .vmdk. Existe-t-il un moyen de le faire ?

2 votes

3 votes

Un mot d'avertissement lorsque vous utilisez qemu-img pour convertir les images à utiliser avec VMWare Fusion - Fusion n'aime pas les disques qui ne sont pas dimensionnés exactement au mégaoctet près. Si vous avez une telle image, assurez-vous de la redimensionner au mégaoctet près, puis convertissez-la au format vmdk. Si vous ne le faites pas, vous obtiendrez un vmdk qui pourra être attaché à une VM au moment de l'installation, mais si vous tentez de l'ajouter à une VM ultérieurement, le bouton Appliquer ne fonctionnera pas.

4 votes

Merci pour ce commentaire. J'avais du mal à comprendre pourquoi le Apply ne fonctionnait pas. Il m'a fallu quelques minutes pour trouver comment augmenter la taille du fichier au mégaoctet près. Voici comment j'ai procédé. Mon fichier devait être augmenté de 600 kilo-octets. Cette commande a fait le travail dd if=/dev/zero count=600 bs=1k >> image.dd

104voto

krosenvold Points 35979

Tout d'abord, installez QEMU. Sur les distributions basées sur Debian comme Ubuntu, exécutez :

$ apt-get install qemu

Ensuite, exécutez la commande suivante :

$ qemu-img convert -O vmdk imagefile.dd vmdkname.vmdk

Je suppose qu'une image disque plate est un dd -style d'image. L'opération de conversion traite également de nombreux autres formats.

Pour plus d'informations sur le qemu-img voir la sortie de la commande

$ qemu-img -h

4 votes

Doit-on utiliser une image de disque ou une image de partition ?

12 votes

Il suffit d'installer qemu-utils (apt-get install qemu-utils). Cette solution fonctionne bien (bien qu'un peu lente )

0 votes

J'ai créé un bash script pour automatiser le processus - voir ma réponse @krosenvold - merci cela a bien fonctionné.

99voto

Lloeki Points 1092

Puisque la question mentionne VirtualBox, celui-ci fonctionne actuellement :

VBoxManage convertfromraw imagefile.dd vmdkname.vmdk --format VMDK

Exécutez-la sans arguments pour obtenir quelques détails intéressants (notamment les --variant drapeau) :

VBoxManage convertfromraw

5 votes

A mon avis, c'est une solution plus propre car elle ne nécessite que les outils de Vbox, et vbox est censé être déjà là.

7 votes

+1 et VBoxManage peuvent également être utilisés pour convertir l'autre sens (image virtuelle vers brut). VBoxManage clonehd --format raw vmdiskimage.vmdk imagefile.dd

0 votes

+1 parce que l'utilisation des outils de la boîte virtuelle est plus susceptible de la faire fonctionner avec la boîte virtuelle (au cas où il y aurait des bizarreries sur la façon dont elle fait les choses).

9voto

Anonymous Points 71

Pour répondre à TJJ : Mais est-il également possible de le faire sans copier l'ensemble du fichier ? Donc, juste pour créer d'une manière ou d'une autre un vmdk-metafile supplémentaire, qui fait référence à l'image dd brute.

Oui C'est possible. Voici comment utiliser une image disque plate dans VirtualBox :

Tout d'abord, vous créez une image avec dd de la manière habituelle :

dd bs=512 count=60000 if=/dev/zero of=usbdrv.img

Vous pouvez ensuite créer un fichier pour VirtualBox qui fait référence à cette image :

VBoxManage internalcommands createrawvmdk -filename "usbdrv.vmdk" -rawdisk "usbdrv.img"

Vous pouvez utiliser cette image dans VirtualBox telle quelle, mais selon le système d'exploitation invité, elle peut ne pas être visible immédiatement. Par exemple, j'ai essayé d'utiliser cette méthode avec un OS invité Windows et j'ai dû faire ce qui suit pour lui donner une lettre de lecteur :

  • Allez dans le Panneau de configuration.
  • Allez dans Outils d'administration.
  • Allez à Gestion des ordinateurs.
  • Aller au stockage \Disk Gestion dans le panneau latéral gauche.
  • Vous verrez votre disque ici. Créez une partition dessus et formatez-la. Utilisez FAT pour les petits volumes, FAT32 ou NTFS pour les gros volumes.

Vous pourriez vouloir accéder à vos fichiers sous Linux. Commencez par le démonter de l'OS invité pour être sûr et supprimez-le de la machine virtuelle. Maintenant, nous devons créer un périphérique virtuel qui fait référence à la partition.

sfdisk -d usbdrv.img

Réponse :

label: dos
label-id: 0xd367a714
device: usbdrv.img
unit: sectors

usbdrv.img1 : start=          63, size=       48132, type=4

Prenez note de la position de départ de la partition : 63. Dans la commande ci-dessous, j'ai utilisé loop4 car c'était le premier périphérique de boucle disponible dans mon cas.

sudo losetup -o $((63*512)) loop4 usbdrv.img
mkdir usbdrv
sudo mount /dev/loop4 usbdrv
ls usbdrv -l

Réponse :

total 0
-rwxr-xr-x. 1 root root 0 Apr  5 17:13 'Test file.txt'

Yay !

6voto

xhafan Points 544

Sous Windows, utilisez https://github.com/Zapotek/raw2vmdk pour convertir les fichiers bruts créés par dd ou winhex en vmdk. raw2vmdk v0.1.3.2 a un bug - une fois que le fichier vmdk est créé, éditez le fichier vmdk et fixez le chemin vers le fichier brut (dans mon cas au lieu de D:\Temp\flash_16gb.raw (créé par winhex) le chemin généré était D:Tempflash_16gb.raw). Ensuite, je l'ouvre dans une machine virtuelle vmware version 6.5-7 (la 5.1 refusait d'attacher le disque dur vmdk). howgh !

1voto

Peut-être devriez-vous essayer d'utiliser Starwind V2V Converter, vous pouvez l'obtenir ici - http://www.starwindsoftware.com/converter . Il prend également en charge le format de disque IMG et effectue une conversion secteur par secteur entre IMG, VMDK ou VHD vers et depuis n'importe lequel d'entre eux sans apporter de modifications à l'image source. Cet outil est gratuit :)

0 votes

J'ai essayé ce "StarWind V2V Image Converter" pour couvrir un dd l'image brute créée vers le VHD. Mais après avoir sélectionné l'image source, j'obtiens "Internal error (32) [32]". De plus, avant de télécharger, vous devez remplir un formulaire et fournir votre adresse e-mail. Je ne peux pas recommander.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X