Mac OS X'e VHD bağlama


14

OS X'te Windows 7 tarafından oluşturulan bir VHD dosyasını bağlamak mümkün (nasıl)?

Bunu linux'da nasıl yapacağım hakkında bazı bilgiler buldum. Virtualbox tarafından desteklenen dosya sistemlerini bağlamak için virtualbox libs kullanan bir sigorta fs "vdfuse" vardır. Ancak neredeyse tüm başlıklar eksik olduğundan ve osx üzerinde paketi derleyemedim ve yine de çalışacağından şüpheliyim ...

EDIT # 2: Tamam ellerimi kirlettim ve nihayet osx üzerinde vdfuse ( http://forums.virtualbox.org/viewtopic.php?f=26&t=33355&start=0 ) derledim . Başlangıç ​​noktası olarak macfuse ( http://code.google.com/p/macfuse/ ) kullandım ve örnek dosya sistemlerine baktım.

Bu beni aşağıdaki derleme betiğine götürdü

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}

Aslında makinenizde VirtualBox'ı derlemenize gerek yok, sadece VirtualBox'ın son bir sürümünü yükleyin.

Şimdi vhds'yi kısmen monte edebilirim. Ayrı bölümler, bağlama noktamdaki Partition1, Partition2, ... blok dosyaları olarak görünür. Ancak Mac OS X, bir geri döngü dosya sistemi içermez ve macfuse'un geri döngü fs blok dosyalarıyla çalışmaz, bu nedenle blok dosyaları gerçek bölümler olarak bağlamak için bir geri döngü fs'ye ihtiyacımız vardır.


Win7'nin bununla ne ilgisi var? Sorunuzu tamamen yanıtlamak için, hangi uygulamanın
VHD'nizi

Aslında
VHD'yi

Sen kullanmak isteyebilirsiniz gcc -ARCH X86-64 "$ {infile}" hat 7 \ o 64-bit derler böylece (özellikle 10.6) Leopard veya Snow Leopard çalıştırıyorsanız
gWaldo

@gWaldo, VHD, Windows 6.1, Sanal PC, Sanal Sunucu, Hyper-V, Xen ve diğerleri tarafından kullanılan bir dosya biçimidir.
Chris S

İnanılmaz bir şekilde, bu çalışmayı 2020'de çalıştırmak için bu talimatları çok fazla değiştirmek zorunda kalmadım. Ancak, birkaç küçük değişiklik vardı. Onları yeni bir gönderide listeledim.
Ben XO

Yanıtlar:


7

Sonunda işe koyuldum. Özet olarak, burada gerçekleştirilecek adımlar

  1. Macfuse yükleyin
  2. Sanal Kutuyu Yükle
  3. Vdfuse'yi soruda belirtildiği gibi derleyin
  4. Vhd diskini takın

    sudo ./vdfuse -tVHD -w -f / Yol / Hedef / VHD / Yol / Hedef / Bağlama Noktası

  5. Sanal bölüm blok dosyalarını ekleme

    hdiutil attach -imagekey diskimage-class = CRawDiskImage -nomount / Yol / Hedef / Bağlama Noktası / BölümN

  6. Sanal bölümü bağlama

    mount -t YourFS / dev / diskK / Yol / Kime / ParitionMountPoint


İnanılmaz bir şekilde, bu çalışmayı 2020'de çalıştırmak için bu talimatları çok fazla değiştirmek zorunda kalmadım. Ancak, birkaç küçük değişiklik vardı. Onları yeni bir gönderide listeledim.
Ben XO

3

Bu benim için Mountain Lion'da işe yaradı. Kurulum veya derleme gerekmez:

hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage <Path to .vhd file>

Benim için 10.8.3'te söyle: hdiutil: ekleme başarısız - bağlanabilir dosya sistemi yok
hkulekci

Sadece tekrar denedim ve aynı hata mesajını aldım. Tuhaf. Bunu birkaç ay önce birkaç kez başarıyla kullandım.
henning77

Daha eski bir vhd görüntüsü ile tekrar çalışır (01/2013'te oluşturulan NTFS). Daha yeni bir vhd ile değil. Farkın nerede olduğunu henüz bilmiyorum.
henning77

bu konuda bir şey bulamadım.
hkulekci

Windows 7'den bitlocker şifreli bir VHD'im var ve benzer şekilde bağlayabiliyor hdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomountve daha sonra şifresini çözmek için m3datarecovery.com/mac-bitlocker kullanabiliyordum . Mac için DAEMON Tools: Akıllı montaj ve görüntüleme yazılımı da montaj için çalıştı, ancak ücretsiz değil.
Pat

1

FUSE, MacOSX üzerinde çalışır, ancak başlıklara ihtiyacınız vardır.


Teşekkürler, ntfs (tuxera), ext2 ve diğer dosya sistemlerini osx kullanıcılarımıza erişilebilir hale getirmek için makinelerimizde macfuse kurdum. Belki bir linux sistemde lib derlemek ve daha sonra ot osx dosyaları kopyalayabilirsiniz ...
jan bernlöhr

1

Başka bir çözüm bulamazsanız, VirtualBox'ı (veya VHD dosyalarını destekleyen başka bir aracı) bu sanal disk görüntüsünü kullanan bir sanal sistemi çalıştırmak için kullanabilir ve ardından Samba veya sftp veya benzeri kullanarak ihtiyacınız olan dosyalara erişebilir veya kopyalayabilirsiniz. .


Teşekkür ederim, bu uygulanabilir ama ne yazık ki aradığım şey tam olarak değil. Şu anda çift önyükleme sisteminde NTFS bölümleri var, bu yüzden win / osx'tan veri okuyabilir / yazabilirim. Bir sonraki adım, win7 ve veri içeren bölümleri sanallaştırmaktır ... Ancak yine de verinin osx üzerinden erişilebilir olması gerekir.
jan bernlöhr

0

Sadece VHD dosyanızı IMG olarak yeniden adlandırın. Bu kadar.

Mac OS X'in yalnızca NTFS birimi için okuma erişimi sağladığını unutmayın; bu nedenle VHD'nizin bir NTFS birimi varsa, yalnızca okuma erişiminiz vardır.


1
Ne yazık ki bu işe yaramıyor. DiskImageMounter sadece "tanınmadı" diyor.
jan bernlöhr

0

Şimdi 2020 ve bu 10 yaşındaki talimatlar neredeyse işe yaradı. İşte Jan Bernlöhr'un kabul edilen cevabının yanı sıra sorudaki betiğe dayanarak Mojave Mac'ime Windows 7'den eski bir Yedekleme Görüntüsü monte etmek için yaptım.

  1. Osxfuse'i (macfuse'un halefi) yükleyin
  2. VirtualBox Kur
  3. Vdfuse kaynak kodunu ( vdfuse.c) https://github.com/Thorsten-Sick/vdfuse adresinden indirin (şu anda v83'te - orijinal bağlantı v80 olarak sabitlenmiştir).
  4. VirtualBox başlıklarını indirin, ancak 2012'den bir sürüm almanız gerekiyor. Aşağıdaki komutu kullandım: svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
  5. Sorudan uyarlanmış, ancak birkaç küçük değişiklikle (64 bit derleme ve daha yeni VirtualBox'larda VBoxREM.dylib bulunmuyor gibi görünen aşağıdaki derleme yönergelerini kullanın:
  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. Vhd diskini takın

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

  2. Sanal bölüm blok dosyalarını ekleme

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

  3. Sanal bölümü bağlama

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

Mucizevi bir şekilde, bu bir cazibe işe yarıyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.