เมานต์ VHD บน Mac OS X


14

เป็นไปได้ (วิธี) ในการติดตั้งไฟล์ VHD ที่สร้างโดย Windows 7 ใน OS X หรือไม่?

ฉันพบข้อมูลบางอย่างเกี่ยวกับวิธีการทำเช่นนี้บน linux มีฟิวส์ "vdfuse" fs ซึ่งใช้ virtualbox libs เพื่อเมานต์ระบบไฟล์ที่สนับสนุนโดย virtualbox อย่างไรก็ตามฉันไม่สามารถคอมไพล์แพ็กเกจบน osx ได้เนื่องจากส่วนหัวเกือบทั้งหมดหายไปและฉันสงสัยว่ามันจะทำงานต่อไป ...

แก้ไข # 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}

คุณไม่จำเป็นต้องรวบรวม VirtualBox บนเครื่องของคุณเพียงติดตั้ง VirtualBox เวอร์ชันล่าสุด

ดังนั้นตอนนี้ฉันสามารถเมานต์ vhds ได้บางส่วน พาร์ติชั่นแยกปรากฏเป็นไฟล์บล็อก Partition1, Partition2, ... ที่จุดเมานท์ของฉัน อย่างไรก็ตาม Mac OS X ไม่ได้รวมระบบไฟล์ย้อนกลับและการวนกลับ fs ของ macfuse ไม่สามารถใช้งานได้กับไฟล์บล็อกดังนั้นเราจึงต้องวนรอบย้อนกลับเพื่อติดตั้งบล็อกไฟล์เป็นพาร์ติชันที่เกิดขึ้นจริง


Win7 เกี่ยวข้องกับอะไรบ้าง? เพื่อตอบคำถามของคุณอย่างสมบูรณ์ฉันจำเป็นต้องรู้ว่าแอปพลิเคชันใดที่สร้าง VHD ของคุณ (VirtualBox, VMware (และเวิร์กสเตชันเทียบกับเซิร์ฟเวอร์เทียบกับ ... ) ฯลฯ )
gWaldo

ที่จริงฉันสร้าง VHD ด้วย diskpart ที่มีอยู่ใน Windows 7 ...
jan bernlöhr

คุณอาจต้องการใช้ gcc -arch x86-64 "$ {infile}" \ สำหรับบรรทัด 7 หากคุณใช้ Leopard หรือ Snow Leopard (esp 10.6) ดังนั้นจึงรวม 64-bit
gWaldo

@gWaldo, VHD เป็นรูปแบบไฟล์ที่ใช้โดย Windows 6.1, พีซีเสมือน, เซิร์ฟเวอร์เสมือน, Hyper-V, Xen และอื่น ๆ
Chris S

อย่างไม่น่าเชื่อฉันไม่ต้องแก้ไขคำแนะนำเหล่านี้โดยมากเพื่อให้ทำงานได้ในปี 2020 อย่างไรก็ตามมีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ฉันได้แสดงรายการไว้ในโพสต์ใหม่
Ben XO

คำตอบ:


7

ในที่สุดฉันก็ทำให้มันทำงาน ดังนั้นโดยสรุปนี่คือขั้นตอนในการปฏิบัติ

  1. ติดตั้ง macfuse
  2. ติดตั้ง Virtual Box
  3. รวบรวม vdfuse ตามที่กล่าวไว้ในคำถาม
  4. เมานต์ดิสก์ vhd

    sudo ./vdfuse -tVHD -w -f / เส้นทาง / ถึง / VHD / เส้นทาง / ถึง / Mountpoint

  5. แนบไฟล์บล็อกพาร์ติชันเสมือน

    hdiutil แนบ -imagekey diskimage-class = CRawDiskImage - จำนวน / เส้นทาง / ถึง / Mountpoint / พาร์ทิชัน N

  6. ประกอบพาร์ติชันเสมือน

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


อย่างไม่น่าเชื่อฉันไม่ต้องแก้ไขคำแนะนำเหล่านี้โดยมากเพื่อให้ทำงานได้ในปี 2020 อย่างไรก็ตามมีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ฉันได้แสดงรายการไว้ในโพสต์ใหม่
Ben XO

3

สิ่งนี้ใช้ได้กับฉันใน Mountain Lion ไม่จำเป็นต้องติดตั้งหรือคอมไพล์

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

พูดกับฉันใน 10.8.3: hdiutil: การแนบล้มเหลว - ไม่มีระบบไฟล์ที่ติดตั้งได้
hkulekci

ฉันลองอีกครั้งและได้รับข้อความแสดงข้อผิดพลาดเดียวกัน แปลก. ฉันใช้มันสองสามครั้งสำเร็จเมื่อหลายเดือนก่อน
henning77

ด้วยภาพ vhd รุ่นเก่ามันใช้งานได้อีกครั้ง (NTFS สร้างเมื่อ 01/2013) ด้วยรุ่นที่ใหม่กว่ามันไม่ได้ ฉันยังไม่รู้ว่าความแตกต่างอยู่ที่ไหน
henning77

ฉันไม่พบอะไรเกี่ยวกับปัญหานี้
hkulekci

ฉันมี VHD ที่เข้ารหัสด้วย bitlocker จาก Windows 7 และสามารถติดตั้งได้เช่นเดียวกันhdiutil attach -imagekey diskimage-class=CRawDiskImage /Path/to/encrypted.vhd -nomountจากนั้นใช้m3datarecovery.com/mac-bitlockerเพื่อทำการเข้ารหัส เครื่องมือ DAEMON สำหรับ Mac: ซอฟต์แวร์การติดตั้งและการถ่ายภาพอัจฉริยะนั้นยังสามารถใช้เพื่อติดตั้งได้ แต่ไม่ฟรี
Pat

1

FUSE ใช้งานได้กับ MacOSX แต่คุณต้องมีส่วนหัว


ขอบคุณฉันได้สร้าง macfuse บนเครื่องของเราเพื่อให้ ntfs (tuxera), ext2 และระบบไฟล์อื่น ๆ เข้าถึงได้โดยผู้ใช้ osx ของเรา บางทีฉันอาจจะสามารถรวบรวม lib บนระบบลินุกซ์และจากนั้นคัดลอกไฟล์ OT OSX ...
มกราคมbernlöhr

1

หากคุณไม่พบวิธีแก้ไขปัญหาอื่นคุณสามารถใช้ VirtualBox (หรือเครื่องมืออื่นที่คล้ายคลึงกันที่สนับสนุนไฟล์ VHD) เพื่อเรียกใช้ระบบเสมือนที่ใช้อิมเมจดิสก์เสมือนนั้นจากนั้นเข้าถึงหรือคัดลอกไฟล์ที่คุณต้องการโดยใช้ Samba หรือ sftp หรือ .


ขอบคุณนี่เป็นไปได้ แต่น่าเสียดายที่ไม่ใช่สิ่งที่ฉันกำลังมองหา ขณะนี้ฉันมีพาร์ทิชัน NTFS ในระบบบูตคู่ดังนั้นฉันสามารถอ่าน / เขียนข้อมูลจาก win และ osx ขั้นตอนต่อไปคือการจำลองเสมือนพาร์ติชั่นที่มี win7 และ data ... อย่างไรก็ตามข้อมูลยังคงต้องสามารถเข้าถึงได้บน osx
jan bernlöhr

0

เพียงแค่เปลี่ยนชื่อไฟล์ VHD ของคุณเป็น IMG .. ดับเบิลคลิกที่ไฟล์เพื่อติดตั้ง นั่นคือทั้งหมดที่

โปรดจำไว้ว่า Mac OS X ให้การเข้าถึงเพื่ออ่านสำหรับโวลุ่ม NTFS เท่านั้นดังนั้นหาก VHD ของคุณมีโวลุ่ม NTFS คุณจะมีสิทธิ์เข้าถึงเพื่ออ่านเท่านั้น


1
น่าเสียดายที่นี่ใช้งานไม่ได้ DiskImageMounter เพิ่งพูดว่า "ไม่รู้จัก"
jan bernlöhr

0

ตอนนี้ในปี 2020 และคำแนะนำอายุ 10 ปีเหล่านี้เกือบจะใช้ได้ นี่คือสิ่งที่ฉันทำเพื่อเมานต์อิมเมจสำรองเก่าจาก Windows 7 บน Mojave Mac ของฉันตามคำตอบที่ยอมรับจาก Jan Bernlöhrรวมถึงสคริปต์ในคำถาม

  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 บิตและ VirtualBox ที่ใหม่กว่าดูเหมือนจะไม่มี 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

ปาฏิหาริย์นี้ใช้งานได้ดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.