Monter un disque dur virtuel sur Mac OS X

14

Est-il possible (comment) de monter un fichier VHD créé par Windows 7 sous OS X?

J'ai trouvé des informations sur la façon de procéder sur Linux. Il existe un fusible fs "vdfuse" qui utilise des bibliothèques virtualbox pour monter des systèmes de fichiers pris en charge par virtualbox. Cependant, je n'ai pas pu compiler le package sur osx car presque tous les en-têtes sont manquants et je doute que cela fonctionnerait de toute façon ...

EDIT # 2: D'accord, je me suis sali les mains et j'ai finalement compilé vdfuse ( http://forums.virtualbox.org/viewtopic.php?f=26&t=33355&start=0 ) sur osx. Comme point de départ, j'ai utilisé macfuse ( http://code.google.com/p/macfuse/ ) et j'ai examiné les exemples de systèmes de fichiers.

Cela m'a conduit au script de construction suivant

infile=vdfuse.c
outfile=vdfuse
incdir="your/path/to/vbox/headers"
INSTALL_DIR="/Applications/VirtualBox.app/Contents/MacOS"
CFLAGS="-pipe"

gcc -arch i386 "${infile}" \
         "${INSTALL_DIR}"/VBoxDD.dylib \
         "${INSTALL_DIR}"/VBoxDDU.dylib \
         "${INSTALL_DIR}"/VBoxVMM.dylib \
         "${INSTALL_DIR}"/VBoxRT.dylib \
         "${INSTALL_DIR}"/VBoxDD2.dylib \
         "${INSTALL_DIR}"/VBoxREM.dylib \
        -o "${outfile}" \
        -I"${incdir}" -I"/usr/local/include/fuse" \
        -Wl,-rpath,"${INSTALL_DIR}"  \
        -lfuse_ino64  \
        -Wall ${CFLAGS}

Vous n'avez en fait pas besoin de compiler VirtualBox sur votre machine, installez simplement une version récente de VirtualBox.

Alors maintenant, je peux monter partiellement des VHD. Les partitions séparées apparaissent sous forme de fichiers de blocs Partition1, Partition2, ... sur mon point de montage. Cependant, Mac OS X n'inclut pas de système de fichiers de bouclage et les fs de bouclage de macfuse ne fonctionnent pas avec les fichiers de blocs, nous avons donc besoin d'un fs de bouclage pour monter les fichiers de blocs en tant que partitions réelles.

jan bernlöhr
la source
Qu'est-ce que Win7 a à voir avec ça? Pour répondre complètement à votre question, j'aurais besoin de savoir quelle application a créé votre disque dur virtuel (VirtualBox, VMware (et poste de travail vs serveur vs ...), etc.)
gWaldo
En fait j'ai créé le VHD avec diskpart contenu dans Windows 7 ...
jan bernlöhr
Vous voudrez peut-être utiliser gcc -arch x86-64 "$ {infile}" \ pour la ligne 7 si vous exécutez Leopard ou Snow Leopard (esp 10.6) afin qu'il compile 64 bits
gWaldo
@gWaldo, VHD est un format de fichier utilisé par Windows 6.1, Virtual PC, Virtual Server, Hyper-V, Xen et autres.
Chris S
Incroyablement, je n'ai pas eu à modifier ces instructions beaucoup pour que cela fonctionne en 2020. Cependant, il y a eu quelques petites modifications. Je les ai listés dans un nouveau post.
Ben XO

Réponses:

7

Enfin, je l'ai fait fonctionner. Donc, en résumé, voici les étapes à effectuer

  1. Installer macfuse
  2. Installer Virtual Box
  3. Compiler vdfuse comme mentionné dans la question
  4. Montez le disque VHD

    sudo ./vdfuse -tVHD -w -f / Path / To / VHD / Path / To / Mountpoint

  5. Attachez les fichiers de blocs de partition virtuelle

    hdiutil attach -imagekey diskimage-class = CRawDiskImage -nomount / Path / To / Mountpoint / PartitionN

  6. Montez la partition virtuelle

    monter -t YourFS / dev / diskK / Path / To / ParitionMountPoint

jan bernlöhr
la source
Incroyablement, je n'ai pas eu à modifier ces instructions beaucoup pour que cela fonctionne en 2020. Cependant, il y a eu quelques petites modifications. Je les ai listés dans un nouveau post.
Ben XO
3

Cela a fonctionné pour moi sur Mountain Lion. Aucune installation ou compilation nécessaire:

hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage <Path to .vhd file>
henning77
la source
Dites pour moi sur 10.8.3: hdiutil: échec de la connexion - aucun système de fichiers montable
hkulekci
Je viens de l'essayer à nouveau et j'obtiens le même message d'erreur. Bizarre. Je l'ai utilisé plusieurs fois avec succès il y a quelques mois.
henning77
Avec une image vhd plus ancienne, cela fonctionne à nouveau (NTFS, créé en 01/2013). Avec un vhd plus récent, ce n'est pas le cas. Je ne sais pas encore où est la différence.
henning77
je n'ai rien trouvé sur ce problème.
hkulekci
J'ai un VHD chiffré par bitlocker de Windows 7 et j'ai pu le monter de la même manière hdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomount, puis utiliser m3datarecovery.com/mac-bitlocker pour le décrypter . DAEMON Tools for Mac: Un logiciel de montage et d'imagerie intelligent a également fonctionné pour le montage, mais ce n'est pas gratuit.
Pat
1

FUSE fonctionne sur MacOSX, mais vous aurez besoin des en-têtes.

gWaldo
la source
Merci, j'ai déjà installé macfuse sur nos machines pour rendre ntfs (tuxera), ext2 et d'autres systèmes de fichiers accessibles à nos utilisateurs osx. Peut-être que je peux compiler la lib sur un système linux puis copier les fichiers osx ...
jan bernlöhr
1

Si vous ne trouvez pas une autre solution, vous pouvez utiliser VirtualBox (ou un autre outil similaire qui prend en charge les fichiers VHD) pour exécuter un système virtuel qui utilise cette image de disque virtuel, puis accéder ou copier les fichiers dont vous avez besoin à l'aide de Samba ou sftp ou autre .

JanC
la source
Merci, c'est faisable mais malheureusement pas tout à fait ce que je recherche. Actuellement, j'ai des partitions NTFS sur un système à double démarrage, donc je peux lire / écrire des données depuis win et osx. L'étape suivante consiste à virtualiser les partitions qui contiennent win7 et les données ... Cependant, les données doivent encore être accessibles sur osx.
jan bernlöhr
0

Renommez simplement votre fichier VHD en IMG .. double-cliquez dessus pour le monter. C'est tout.

N'oubliez pas que Mac OS X fournit un accès en lecture uniquement pour le volume NTFS, donc si votre VHD a un volume NTFS, vous ne disposez que d'un accès en lecture.

FiReBaT
la source
1
Malheureusement ça ne fonctionne pas. DiskImageMounter dit simplement "non reconnu".
jan bernlöhr
0

Nous sommes maintenant en 2020, et ces instructions vieilles de 10 ans ont presque fonctionné. Voici ce que j'ai fait pour monter une ancienne image de sauvegarde à partir de Windows 7 sur mon Mojave Mac, sur la base de la réponse acceptée de Jan Bernlöhr, ainsi que du script de la question.

  1. Installer osxfuse (le successeur de macfuse)
  2. Installer VirtualBox
  3. Téléchargez le code source vdfuse ( vdfuse.c) à partir de https://github.com/Thorsten-Sick/vdfuse (actuellement à la v83 - le lien d'origine est rattaché à la v80).
  4. Téléchargez les en-têtes VirtualBox, mais vous devez obtenir une version de 2012. J'ai utilisé la commande suivante: svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
  5. Utilisez les instructions de construction suivantes, adaptées de la question, mais avec quelques petites modifications (version 64 bits et les VirtualBox plus récentes ne semblent pas avoir VBoxREM.dylib:
  infile=vdfuse.c
  outfile=vdfuse
  incdir="$(pwd)/include"
  INSTALL_DIR="/Applications/VirtualBox.app/Contents/MacOS"
  CFLAGS="-pipe"

  gcc -arch x86_64 "${infile}" \
         "${INSTALL_DIR}"/VBoxDD.dylib \
         "${INSTALL_DIR}"/VBoxDDU.dylib \
         "${INSTALL_DIR}"/VBoxVMM.dylib \
         "${INSTALL_DIR}"/VBoxRT.dylib \
         "${INSTALL_DIR}"/VBoxDD2.dylib \
        -o "${outfile}" \
        -I"${incdir}" -I"/usr/local/include/fuse" \
        -Wl,-rpath,"${INSTALL_DIR}"  \
        -lfuse_ino64  \
        -Wall ${CFLAGS}
  1. Montez le disque VHD

    sudo ./vdfuse -tVHD -w -f/Path/To/VHD /Path/To/Mountpoint

  2. Attachez les fichiers de blocs de partition virtuelle

    hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount /Path/To/Mountpoint/PartitionN

  3. Montez la partition virtuelle

    mount -t YourFS /dev/diskK /Path/To/ParitionMountPoint

Miraculeusement, cela fait un charme!

Ben XO
la source