jan*_*öhr 15 mount mac-osx vhd
是否可以(如何)在 OS X 中挂载由 Windows 7 创建的 VHD 文件?
我找到了一些有关如何在 linux 上执行此操作的信息。有一个熔断器 fs “vdfuse”,它使用 virtualbox 库来挂载 virtualbox 支持的文件系统。但是我无法在 osx 上编译这个包,因为几乎所有的头文件都丢失了,我怀疑它无论如何都能工作......
编辑 #2:好吧,我弄脏了我的手,最后在 osx 上编译了 vdfuse(http://forums.virtualbox.org/viewtopic.php?f=26&t=33355&start=0)。作为起点,我使用了 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}
Run Code Online (Sandbox Code Playgroud)
您实际上不需要在您的机器上编译 VirtualBox,只需安装最新版本的 VirtualBox。
所以现在我可以部分安装 vhds。单独的分区在我的挂载点上显示为块文件 Partition1、Partition2、...。然而,Mac OS X 不包含环回文件系统,并且 macfuse 的环回 fs 不适用于块文件,因此我们需要一个环回 fs 将块文件挂载为实际分区。
最后我让它工作了。所以总而言之,这里是执行的步骤
挂载 vhd 磁盘
须藤 ./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
小智 6
现在已经是 2020 年了,这些 10 年前的指令几乎奏效了。以下是我根据 Jan Bernl\xc3\xb6hr 接受的答案以及问题中的脚本,在我的 Mojave Mac 上安装 Windows 7 的旧备份映像所做的操作。
\n\nvdfuse.c
从https://github.com/Thorsten-Sick/vdfuse下载 vdfuse 源代码 ( ) (当前版本为 v83 - 原始链接与 v80 挂钩)。svn co -r \'{20120801}\' http://www.virtualbox.org/svn/vbox/trunk/include/
infile=vdfuse.c\n outfile=vdfuse\n incdir="$(pwd)/include"\n INSTALL_DIR="/Applications/VirtualBox.app/Contents/MacOS"\n CFLAGS="-pipe"\n\n gcc -arch x86_64 "${infile}" \\\n "${INSTALL_DIR}"/VBoxDD.dylib \\\n "${INSTALL_DIR}"/VBoxDDU.dylib \\\n "${INSTALL_DIR}"/VBoxVMM.dylib \\\n "${INSTALL_DIR}"/VBoxRT.dylib \\\n "${INSTALL_DIR}"/VBoxDD2.dylib \\\n -o "${outfile}" \\\n -I"${incdir}" -I"/usr/local/include/fuse" \\\n -Wl,-rpath,"${INSTALL_DIR}" \\\n -lfuse_ino64 \\\n -Wall ${CFLAGS}\n
Run Code Online (Sandbox Code Playgroud)\n\n挂载vhd磁盘
\n\nsudo ./vdfuse -tVHD -w -f/Path/To/VHD /Path/To/Mountpoint
附加虚拟分区块文件
\n\nhdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount /Path/To/Mountpoint/PartitionN
挂载虚拟分区
\n\nmount -t YourFS /dev/diskK /Path/To/ParitionMountPoint
奇迹般的是,这很有魅力!
\n 归档时间: |
|
查看次数: |
34879 次 |
最近记录: |