Встановіть VHD на Mac OS X


14

Чи можливо (як) змонтувати файл VHD, створений Windows 7 в OS X?

Я знайшов деяку інформацію про те, як це зробити на Linux. Існує запобіжник fs "vdfuse", який використовує вкладки virtualbox для монтажу файлових систем, підтримуваних virtualbox. Однак я не зміг скласти пакет на osx, тому що майже всі заголовки відсутні, і я сумніваюся, що це все одно спрацює ...

EDIT № 2: Гаразд, я забруднив руки і нарешті склав vdfuse ( http://forums.virtualbox.org/viewtopic.php?f=26&t=33355&start=0 ) на 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.

Тож тепер я можу частково монтувати vhds. Окремі розділи відображаються у вигляді блокових файлів Partition1, Partition2, ... у моїй точці монтування. Однак Mac OS X не включає файлову систему циклу зворотного зв’язку, і locback fs macfuse не працює з файлами блоків, тому нам потрібен losback fs для монтажу блокфілів як фактичних розділів.


Що з цим пов’язано Win7? Щоб повністю відповісти на ваше запитання, мені потрібно знати, яка програма створила ваш VHD (VirtualBox, VMware (і робоча станція проти сервера проти ...) тощо)
gWaldo

Насправді я створив VHD з diskpart, що міститься в Windows 7 ...
Янв Бернлер

Ви можете скористатись gcc -arch x86-64 "$ {infile}" \ для рядка 7, якщо ви використовуєте Leopard або Snow Leopard (esp 10.6), щоб він
компілював

@gWaldo, VHD - це формат файлів, використовуваний Windows 6.1, Virtual PC, Virtual Server, Hyper-V, Xen та ін.
Chris S

Неймовірно, що мені не довелося багато змінювати ці вказівки, щоб працювати в 2020 році. Однак, було невеликих змін. Я перерахував їх у новій публікації.
Бен XO

Відповіді:


7

Врешті-решт, я працював. Отже, підсумовуючи наведені нижче кроки

  1. Встановіть macfuse
  2. Встановити віртуальну коробку
  3. Скомпілюйте vdfuse, як зазначено у запитанні
  4. Встановіть диск vhd

    sudo ./vdfuse -tVHD -w -f / Шлях / До / VHD / Шлях / До / Вершина

  5. Приєднайте блокові файли віртуальних розділів

    hdiutil attach -imagekey diskimage-class = CRawDiskImage -nomount / Шлях / До / Mountpoint / PartitionN

  6. Змонтуйте віртуальний розділ

    mount -t YourFS / dev / diskK / Шлях / До / ParitionMountPoint


Неймовірно, що мені не довелося багато змінювати ці вказівки, щоб працювати в 2020 році. Однак, було кілька невеликих змін. Я перерахував їх у новій публікації.
Бен XO

3

Це працювало для мене на гірському Леві. Не потрібно встановлення чи компіляції:

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

Скажіть для мене 10.8.3: hdiutil: приєднати не вдалося - немає встановлених файлових систем
hkulekci

Я просто спробував це ще раз і отримав те саме повідомлення про помилку. Дивно. Я кілька місяців тому цим успішно користувався.
henning77

З давнішим зображенням vhd він працює знову (NTFS, створений у 01/2013). З новим vhd це не так. Я ще не знаю, де різниця.
henning77

я не знайшов щось з цього питання.
hkulekci

У мене є зашифрований бітлокер VHD з Windows 7 і мені вдалося встановити його аналогічно, hdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomountа потім використовувати m3datarecovery.com/mac-bitlocker, щоб розшифрувати його. DAEMON Tools для Mac: для монтажу також працювало програмне забезпечення для розумного монтажу та обробки зображень , але це не безкоштовно.
Пат

1

FUSE працює на MacOSX, однак вам знадобляться заголовки.


Дякую, я вже створив macfuse на наших машинах, щоб зробити ntfs (tuxera), ext2 та інші файлові системи доступними для наших користувачів OSX. Можливо, я можу скласти lib у системі Linux і потім скопіювати файли ot osx ...
jan bernlöhr

1

Якщо ви не знайдете іншого рішення, ви можете використовувати VirtualBox (або інший подібний інструмент, що підтримує файли VHD), щоб запустити віртуальну систему, яка використовує зображення цього віртуального диска, а потім отримати доступ або скопіювати потрібні файли, використовуючи Samba або sftp або подібні .


Дякую, це можливо, але, на жаль, не зовсім те, що я шукаю. В даний час у мене є розділи NTFS на подвійній системі завантаження, тож я можу читати / записувати дані з win та osx. Наступний крок - віртуалізація розділів, що містять win7 та дані ... Однак дані все ще потрібні, щоб бути доступними на OSX.
Ян Бернлер

0

Просто перейменуйте свій файл VHD в IMG .. двічі клацніть по ньому, щоб встановити його. Це все.

Пам’ятайте, що Mac OS X забезпечує доступ для читання лише для NTFS-томів, тому якщо ваш VHD має гучність NTFS, у вас є лише доступ для читання.


1
На жаль, це не працює. DiskImageMounter просто говорить "не впізнано".
jan bernlöhr

0

Зараз 2020 рік, і ці 10-річні вказівки майже спрацювали. Ось що я зробив, щоб змонтувати старий Backup Image з Windows 7 на моєму Mojave Mac на основі прийнятої відповіді від Яна Бернлера, а також сценарію у питанні.

  1. Встановити osxfuse (наступник macfuse)
  2. Встановити VirtualBox
  3. Завантажте вихідний код vdfuse ( vdfuse.c) з https://github.com/Thorsten-Sick/vdfuse (наразі на v83 - вихідне посилання прив’язане до v80).
  4. Завантажте заголовки VirtualBox, але ви повинні отримати версію з 2012 року. Я використав таку команду: svn co -r '{20120801}' http://www.virtualbox.org/svn/vbox/trunk/include/
  5. Скористайтеся наведеними нижче інструкціями збірки, адаптованими до питання, але з кількома невеликими змінами (64-бітна збірка та новіші VirtualBoxes, схоже, не мають 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.