Mac OS X पर VHD माउंट करें


14

क्या यह संभव है (कैसे) OS X में विंडोज 7 द्वारा बनाई गई VHD फाइल को माउंट करना?

मुझे इस बारे में कुछ जानकारी मिली कि यह कैसे करना है। एक फ्यूज fs "vdfuse" है जो वर्चुअलबॉक्स लिबास का उपयोग करके वर्चुअलबॉक्स द्वारा समर्थित फाइलसिस्टम को माउंट करता है। हालाँकि मैं ओएक्सएक्स पर पैकेज संकलित करने में असमर्थ था क्योंकि लगभग सभी हेडर गायब हैं और मुझे संदेह है कि यह वैसे भी काम करेगा ...

EDIT # 2: ठीक है मैंने अपने हाथ गंदे कर लिए और आखिरकार ओएक्सएक्स पर 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}

आपको वास्तव में अपनी मशीन पर वर्चुअलबॉक्स संकलित करने की आवश्यकता नहीं है, बस वर्चुअलबॉक्स के हाल के संस्करण को स्थापित करें।

इसलिए अब मैं आंशिक रूप से vhds माउंट कर सकता हूं। अलग-अलग विभाजन ब्लॉक फाइल के रूप में दिखाई देते हैं विभाजन 1, विभाजन 2, ... मेरे आरोह बिंदु पर। हालांकि मैक ओएस एक्स में लूपबैक फाइल सिस्टम शामिल नहीं है और मैकफ्यूज का लूपबैक एफएस ब्लॉक फाइलों के साथ काम नहीं करता है, इसलिए हमें ब्लॉकफाइल्स को वास्तविक विभाजन के रूप में माउंट करने के लिए लूपबैक एफएस की आवश्यकता होती है।


Win7 का इससे क्या लेना-देना है? आपके प्रश्न का पूरी तरह से उत्तर देने के लिए, मुझे यह जानना होगा कि आपके वीएचडी (वर्चुअलबॉक्स, वीएमवेयर और वर्कस्टेशन वर्सेस सर्वर बनाम ...), आदि को मैंने क्या बनाया?
gWaldo

वास्तव में मैंने विंडोज 7 में निहित
डिस्कपार्ट के

यदि आप तेंदुए या हिम तेंदुए (esp 10.6) चला रहे हैं, तो आप लाइन 7 के लिए gcc -arch x86-64 "$ {infile}" का उपयोग करना चाह सकते हैं, इसलिए यह 64-बिट
gWaldo

@gWaldo, VHD एक फ़ाइल स्वरूप है जिसका उपयोग विंडोज 6.1, वर्चुअल पीसी, वर्चुअल सर्वर, हाइपर- V, Xen और अन्य द्वारा किया जाता है।
क्रिस एस

अविश्वसनीय रूप से, मुझे 2020 तक यह काम करने के लिए इन निर्देशों को बदलना नहीं था। हालांकि, कुछ छोटे बदलाव हुए थे। मैंने उन्हें एक नई पोस्ट में सूचीबद्ध किया है।
बेन एक्सओ

जवाबों:


7

अंत में मुझे यह काम कर गया। तो संक्षेप में यहाँ प्रदर्शन के चरण हैं

  1. Macfuse स्थापित करें
  2. वर्चुअल बॉक्स स्थापित करें
  3. प्रश्न में उल्लिखित संकलन vdfuse
  4. VHD डिस्क माउंट करें

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

  5. वर्चुअल पार्टीशन ब्लॉकफ़ाइल्स संलग्न करें

    hudutil संलग्न -imagekey diskimage-class = CRawDiskImage -nomount / Path / To / Mountpoint / PartitionN

  6. वर्चुअल विभाजन माउंट करें

    माउंट-योर एफएसएफ / देव / डिस्कके / पाथ / टू / पैरिशनमाउंटप्वाइंट


अविश्वसनीय रूप से, मुझे 2020 तक यह काम करने के लिए इन निर्देशों को बदलना नहीं था। हालांकि, कुछ छोटे बदलाव हुए थे। मैंने उन्हें एक नई पोस्ट में सूचीबद्ध किया है।
बेन एक्सओ

3

यह मेरे लिए माउंटेन लायन पर काम करता है। कोई स्थापना या संकलन आवश्यक नहीं:

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

10.8.3 पर मेरे लिए कहो: hututil: संलग्न विफल - कोई माउंट करने योग्य फ़ाइल सिस्टम नहीं
hkulekci

मैंने बस इसे फिर से आज़माया और वही त्रुटि संदेश प्राप्त किया। अजीब। मैंने कुछ महीनों पहले सफलतापूर्वक कई बार इसका इस्तेमाल किया है।
हेनिंग77

पुरानी वीएचडी छवि के साथ यह फिर से काम करता है (NTFS, 01/2013 में बनाया गया)। एक नए vhd के साथ यह नहीं है। मुझे अभी तक पता नहीं है कि अंतर कहां है।
हेनिंग77

मुझे इस मुद्दे पर कुछ नहीं मिला।
hkulekci

मेरे पास विंडोज 7 से एक बिटलॉकर-एनक्रिप्टेड वीएचडी है और इसे इसी तरह माउंट करने में सक्षम है hdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomountऔर फिर इसे अनएन्क्रिप्ट करने के लिए m3datarecovery.com/mac-bitlocker का उपयोग करें । मैक के लिए डेमॉन टूल्स: स्मार्ट माउंटिंग और इमेजिंग सॉफ्टवेयर ने भी माउंट करने के लिए काम किया, लेकिन यह मुफ़्त नहीं है।
पैट

1

FUSE मैकओएसएक्स पर काम करता है, हालांकि आपको हेडर की आवश्यकता होगी।


धन्यवाद, मैंने पहले ही अपने मशीनों पर macfuse की स्थापना ntfs (tuxera), ext2 और अन्य फाइल सिस्टम को हमारे osx उपयोगकर्ताओं के लिए सुलभ बनाने के लिए की है। शायद मैं एक linux सिस्टम पर lib संकलित कर सकता हूँ और फिर फ़ाइलों की प्रतिलिपि बना सकता हूँ ot osx ...
jan bernlöhr

1

यदि आपको कोई अन्य समाधान नहीं मिलता है, तो आप वर्चुअल सिस्टम का उपयोग करने के लिए वर्चुअलबॉक्स (या अन्य समान टूल जो वीएचडी फ़ाइलों का समर्थन करता है) का उपयोग कर सकते हैं जो उस वर्चुअल डिस्क छवि का उपयोग करता है, और फिर सांबा या एसटीपीपी या इस तरह की ज़रूरत वाली फ़ाइलों को एक्सेस या कॉपी कर सकता है। ।


धन्यवाद, यह संभव है लेकिन दुर्भाग्य से काफी नहीं है जो मैं देख रहा हूं। वर्तमान में मेरे पास एक दोहरे बूट सिस्टम पर NTFS विभाजन है, इसलिए मैं जीत और ओएसएक्स से डेटा पढ़ / लिख सकता हूं। अगला चरण उन विभाजनों का वर्चुअलाइजेशन कर रहा है जिनमें win7 और डेटा शामिल हैं ... हालाँकि डेटा को अभी भी ओएक्सएक्स पर एक्सेस करने की आवश्यकता है।
जन बर्नलोहर

0

बस अपनी VHD फ़ाइल को IMG में बदलें .. इसे माउंट करने के लिए उस पर डबल क्लिक करें। बस इतना ही।

याद रखें कि मैक ओएस एक्स केवल NTFS वॉल्यूम के लिए रीड एक्सेस प्रदान करता है, इसलिए यदि आपके VHD में NTFS वॉल्यूम है, तो आपने केवल एक्सेस एक्सेस पढ़ा है।


1
दुर्भाग्य से यह काम नहीं करता है। DiskImageMounter सिर्फ "मान्यता प्राप्त नहीं" कहता है।
बर्नलोहर

0

अब यह 2020 है, और इन 10-वर्षीय निर्देशों ने लगभग काम किया है। यहां मैंने जान बर्नलोहर के स्वीकृत उत्तर के साथ-साथ प्रश्न में स्क्रिप्ट के आधार पर विंडोज 7 से अपने मोजावे मैक पर एक पुरानी बैकअप छवि को माउंट करने के लिए किया था।

  1. Osxfuse (macfuse का उत्तराधिकारी) स्थापित करें
  2. VirtualBox स्थापित करें
  3. Vdfuse source कोड ( vdfuse.c) को https://github.com/Thorsten-Sick/vdfuse से डाउनलोड करें (वर्तमान में v83 - मूल लिंक v80 के लिए आंकी गई है)।
  4. वर्चुअलबॉक्स हेडर डाउनलोड करें, लेकिन आपको 2012 से एक संस्करण प्राप्त करना होगा। मैंने निम्न कमांड का उपयोग किया: svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
  5. निम्नलिखित बिल्ड निर्देशों का उपयोग करें, प्रश्न से अनुकूलित, लेकिन कुछ छोटे परिवर्तनों (64-बिट बिल्ड और नए वर्चुअलबॉक्स के साथ 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. VHD डिस्क माउंट करें

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

  2. वर्चुअल पार्टीशन ब्लॉकफ़ाइल्स संलग्न करें

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

  3. वर्चुअल विभाजन माउंट करें

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

चमत्कारी रूप से, यह एक आकर्षण का काम करता है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.