OS XでWindows 7によって作成されたVHDファイルをマウントすることは可能ですか?
Linuxでこれを行う方法についての情報を見つけました。 virtualbox libsを使用して、virtualboxでサポートされているファイルシステムをマウントするFuse fs "vdfuse"があります。しかし、ほとんどすべてのヘッダーが欠落しているため、osxでパッケージをコンパイルできませんでした。
EDIT#2:さて、手を汚し、最終的にvdfuseをコンパイルしました( http://forums.virtualbox.org/viewtopic.php ?f = 26&t = 33355&start = )(OSXの場合)。開始点として、macfuse( http://code.google.com/p/macfuse/ )を使用して、サンプルファイルシステムを調べました。
これは私を次のビルドスクリプトに導きました
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}
マシンでVirtualBoxをコンパイルする必要はありません。VirtualBoxの最新バージョンをインストールするだけです。
これで、VHDを部分的にマウントできるようになりました。個別のパーティションは、マウントポイントにブロックファイルPartition1、Partition2、...として表示されます。ただし、Mac OS Xにはループバックファイルシステムが含まれておらず、macfuseのループバックfsはブロックファイルでは機能しないため、ブロックファイルを実際のパーティションとしてマウントするにはループバックfsが必要です。
最後に私はそれを働かせました。要約すると、ここに実行する手順があります
Vhdディスクをマウントする
Sudo ./vdfuse -tVHD -w -f/Path/To/VHD/Path/To/Mountpoint
仮想パーティションブロックファイルをアタッチします
hdiutil attach -imagekey diskimage-class = CRawDiskImage -nomount/Path/To/Mountpoint/PartitionN
仮想パーティションをマウントする
mount -t YourFS/dev/diskK/Path/To/ParitionMountPoint
これはマウンテンライオンで私のために働いた。インストールやコンパイルは必要ありません:
hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage <Path to .vhd file>
別の解決策が見つからない場合は、VirtualBox(またはVHDファイルをサポートする他の同様のツール)を使用して、その仮想ディスクイメージを使用する仮想システムを実行し、Sambaまたはsftpなどを使用して必要なファイルにアクセスまたはコピーできます。 。
FuseはMacOSXで動作しますが、ヘッダーが必要になります。
VHDファイルの名前をIMGに変更するだけです。ダブルクリックしてマウントします。それで全部です。
Mac OS XはNTFSボリュームに対してのみ読み取りアクセスを提供するので、VHDにNTFSボリュームがある場合、読み取りアクセスしかできないことに注意してください。
それは現在2020であり、これらの10年前の指示はほとんど機能しました。 JanBernlöhrからの承認済みの回答と質問のスクリプトに基づいて、Windows 7の古いバックアップイメージをMojave Macにマウントするために私が行ったのは次のとおりです。
vdfuse.c
)from https://github.com/Thorsten-Sick/vdfuse (現在v83-元のリンクはv80に固定されています)。svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
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}
Vhdディスクをマウントする
Sudo ./vdfuse -tVHD -w -f/Path/To/VHD /Path/To/Mountpoint
仮想パーティションブロックファイルをアタッチします
hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount /Path/To/Mountpoint/PartitionN
仮想パーティションをマウントする
mount -t YourFS /dev/diskK /Path/To/ParitionMountPoint
奇跡的に、これは魅力的です!