Pasang VHD di Mac OS X

14

Apakah mungkin (bagaimana) untuk memasang file VHD yang dibuat oleh Windows 7 di OS X?

Saya menemukan beberapa informasi tentang cara melakukan ini di linux. Ada sekering fs "vdfuse" yang menggunakan virtualbox libs untuk me-mount sistem file yang didukung oleh virtualbox. Namun saya tidak dapat mengkompilasi paket pada osx karena hampir semua header hilang dan saya ragu apakah itu akan berhasil ...

EDIT # 2: Oke tangan saya kotor dan akhirnya mengkompilasi vdfuse ( http://forums.virtualbox.org/viewtopic.php?f=26&t=33355&start=0 ) di osx. Sebagai titik awal saya menggunakan macfuse ( http://code.google.com/p/macfuse/ ) dan melihat contoh sistem file.

Ini mengarahkan saya ke skrip pembuatan berikut

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}

Anda sebenarnya tidak perlu mengompilasi VirtualBox di mesin Anda, cukup instal versi terbaru dari VirtualBox.

Jadi sekarang saya sebagian dapat me-mount vhds. Partisi yang terpisah muncul sebagai file blok Partition1, Partition2, ... pada titik mount saya. Namun Mac OS X tidak termasuk sistem file loopback dan loopback macfuse fs tidak berfungsi dengan file blok, jadi kami membutuhkan loopback fs untuk memasang filefile sebagai partisi sebenarnya.

jan bernlöhr
sumber
Apa hubungannya Win7 dengan itu? Untuk menjawab pertanyaan Anda sepenuhnya, saya harus tahu aplikasi apa yang membuat VHD Anda (VirtualBox, VMware (dan workstation vs Server vs ...), dll.)
gWaldo
Sebenarnya saya membuat VHD dengan diskpart yang terdapat pada Windows 7 ...
jan bernlöhr
Anda mungkin ingin menggunakan gcc -arch x86-64 "$ {infile}" \ untuk baris 7 jika Anda menjalankan Leopard atau Snow Leopard (esp 10.6) sehingga ia mengkompilasi 64-bit
gWaldo
@ gWaldo, VHD adalah format file yang digunakan oleh Windows 6.1, Virtual PC, Virtual Server, Hyper-V, Xen, dan lainnya.
Chris S
Luar biasanya, saya tidak perlu mengubah banyak instruksi ini untuk membuat ini berfungsi pada tahun 2020. Namun, ada beberapa perubahan kecil. Saya sudah mendaftarkan mereka di posting baru.
Ben XO

Jawaban:

7

Akhirnya saya berhasil. Jadi secara ringkas di sini adalah langkah-langkah untuk melakukan

  1. Instal macfuse
  2. Instal Kotak Virtual
  3. Kompilasi vdfuse seperti yang disebutkan dalam pertanyaan
  4. Pasang disk vhd

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

  5. Pasang blokfile partisi virtual

    hdiutil melampirkan -imagekey diskimage-class = CRawDiskImage -nomount / Path / Ke / Mountpoint / PartitionN

  6. Pasang partisi virtual

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

jan bernlöhr
sumber
Luar biasanya, saya tidak perlu mengubah banyak instruksi ini untuk membuat ini berfungsi pada tahun 2020. Namun, ada beberapa perubahan kecil. Saya sudah mendaftarkan mereka di posting baru.
Ben XO
3

Ini bekerja untuk saya di Mountain Lion. Tidak diperlukan instalasi atau kompilasi:

hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage <Path to .vhd file>
henning77
sumber
Katakan untuk saya di 10.8.3: hdiutil: gagal pasang - tidak ada sistem file yang dapat di
mount
Saya baru saja mencobanya lagi dan mendapatkan pesan kesalahan yang sama. Aneh. Saya telah menggunakan ini beberapa kali dengan sukses beberapa bulan yang lalu.
henning77
Dengan gambar vhd yang lebih lama berfungsi lagi (NTFS, dibuat pada 01/2013). Dengan vhd yang lebih baru tidak. Saya belum tahu di mana perbedaannya.
henning77
saya tidak menemukan sesuatu tentang masalah ini.
hkulekci
Saya memiliki VHD terenkripsi bitlocker dari Windows 7 dan dapat memasangnya dengan cara yang sama hdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomountdan kemudian menggunakan m3datarecovery.com/mac-bitlocker untuk membatalkan enkripsi. DAEMON Tools untuk Mac: Perangkat lunak pemasangan dan pencitraan pintar juga berfungsi untuk melakukan pemasangan, tetapi tidak gratis.
Pat
1

FUSE bekerja pada MacOSX, namun Anda membutuhkan header.

gWaldo
sumber
Terima kasih, saya sudah membuat macfuse pada mesin kami untuk membuat ntfs (tuxera), ext2 dan sistem file lainnya dapat diakses oleh pengguna osx kami. Mungkin saya dapat mengkompilasi lib pada sistem linux dan kemudian menyalin file atau osx ...
jan bernlöhr
1

Jika Anda tidak menemukan solusi lain, Anda bisa menggunakan VirtualBox (atau alat serupa lainnya yang mendukung file VHD) untuk menjalankan sistem virtual yang menggunakan gambar disk virtual itu, dan kemudian mengakses atau menyalin file yang Anda butuhkan menggunakan Samba atau sftp atau semacamnya. .

JanC
sumber
Terima kasih, ini layak tetapi sayangnya tidak cukup apa yang saya cari. Saat ini saya memiliki partisi NTFS pada sistem dual boot, sehingga saya dapat membaca / menulis data dari win dan osx. Langkah selanjutnya adalah memvirtualisasikan partisi yang berisi win7 dan data ... Namun data masih perlu diakses di osx.
jan bernlöhr
0

Cukup ganti nama file VHD Anda menjadi IMG .. klik dua kali untuk memasangnya. Itu saja.

Ingat bahwa Mac OS X menyediakan akses baca hanya untuk volume NTFS, jadi jika VHD Anda memiliki volume NTFS, Anda hanya memiliki akses baca.

FiReBaT
sumber
1
Sayangnya ini tidak berhasil. DiskImageMounter hanya mengatakan "tidak dikenal".
jan bernlöhr
0

Sekarang tahun 2020, dan instruksi 10 tahun ini hampir berhasil. Inilah yang saya lakukan untuk memasang Gambar Cadangan lama dari Windows 7 pada Mac Mojave saya, berdasarkan jawaban yang diterima dari Jan Bernlöhr, serta skrip dalam pertanyaan.

  1. Instal osxfuse (penerus macfuse)
  2. Instal VirtualBox
  3. Unduh kode sumber vdfuse ( vdfuse.c) dari https://github.com/Thorsten-Sick/vdfuse (saat ini di v83 - tautan asli dipatok ke v80).
  4. Unduh tajuk VirtualBox, tetapi Anda harus mendapatkan versi dari 2012. Saya menggunakan perintah berikut: svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
  5. Gunakan instruksi build berikut, diadaptasi dari pertanyaan, tetapi dengan beberapa perubahan kecil (build 64-bit, dan VirtualBox yang lebih baru tampaknya tidak memiliki 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. Pasang disk vhd

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

  2. Pasang blokfile partisi virtual

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

  3. Pasang partisi virtual

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

Ajaibnya, ini sangat mempesona!

Ben XO
sumber