ฉันจะเปิดไฟล์. dmg ได้อย่างไร


คำตอบ:


53

ติดตั้งdmg2imgติดตั้ง dmg2img

จากนั้นอ่านหน้าข้อมูลแพ็คเกจและหน้าคู่มือเพื่อดูว่าเป็นประโยชน์กับคุณหรือไม่

ดูเหมือนว่าแอปพลิเคชันจะแปลง. dmg เป็นไฟล์ที่สามารถติดตั้งได้โดยใช้mountคำสั่ง:

dmg2img file.dmg imagefile.img

จากบทความ Wikipediaของคุณคำสั่งถัดไปดูเหมือนจะมีให้ทำเช่นนั้น:

sudo mount -o loop -t hfsplus imagefile.img /mnt

ด้วยวิธีนี้ไฟล์imagefile.imgเป็นผลมาจากและเนื้อหาจะสามารถใช้ได้ที่dmg2iso /mntหากตรวจไม่พบประเภท hfsplus คุณอาจต้องโหลดโมดูลเคอร์เนล:

sudo modprobe hfsplus

เมื่อเสร็จแล้วคุณสามารถถอนติดตั้งโดยเรียกใช้:

sudo umount /mnt

สิ่งนี้จะไม่ทำงานหากไฟล์ dmg มีไฟล์บีบอัด 10.6+ ไฟล์อยู่
HDave

5
ฉันได้รับข้อผิดพลาดนี้ -mount: wrong fs type, bad option, bad superblock on /dev/loop0
tuxdna

1
@tuxdna คุณมีภาพ HFS จริงเหรอ? file file.dmgตรวจสอบการส่งออกของ คุณยังสามารถลอง7z l file.dmgรายการเนื้อหา
Lekensteyn

dmg2img v1.6.2ฉันใช้ ฉันรัน dmg2img mysql-5.5.28-osx10.6-x86_64.dmgที่สร้างขึ้นmysql-5.5.28-osx10.6-x86_64.imgแต่ไม่ติดตั้ง
tuxdna

@Lekensteyn ขอบคุณ! ตอนนี้มันใช้งานได้ ตรวจสอบคำตอบของฉันด้านล่าง
tuxdna

45

หากต้องการแยกมันจะง่ายกว่าการใช้ 7zip เพียงทำ:

7z x file.dmg

7
ขอบคุณ7zทำงานในขณะที่dmg2imgบ่นเกี่ยวกับภาพ dmg เสียหาย
rinni

3
โปรดทราบว่า 7z ใช้ได้กับภาพ dmg ที่ไม่ได้เข้ารหัสเท่านั้น
vog

นี่เพิ่งสร้างไฟล์ชื่อ0.unknown partitionฉัน
Aaron Franke

31

สิ่งนี้ใช้ได้กับฉัน:

  • แยกโดยใช้ 7z x
  • ค้นหาhfsไฟล์พาร์ติชัน
  • เมานต์ไปยังไดเรกทอรี

แยกโดยใช้ 7z x

root # aptitude install p7zip-full
root # 7z x ../mysql-5.5.28-osx10.6-x86_64.dmg 

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: ../mysql-5.5.28-osx10.6-x86_64.dmg

Extracting  0.MBR
Extracting  1.Primary GPT Header
Extracting  2.Primary GPT Table
Extracting  3.free
Extracting  4.hfs
Extracting  5.free
Extracting  6.Backup GPT Table
Extracting  7.Backup GPT Header

Everything is Ok

Files: 8
Size:       125475840
Compressed: 117543935
root # ls
0.MBR  1.Primary GPT Header  2.Primary GPT Table  3.free  4.hfs  5.free  6.Backup GPT Table  7.Backup GPT Header

ค้นหาhfsพาร์ติชั่น (นี่คือ4.hfsไฟล์):

root # ls -l
total 122548
-rw-r--r-- 1 root root       512 Feb  5 16:06 0.MBR
-rw-r--r-- 1 root root       512 Feb  5 16:06 1.Primary GPT Header
-rw-r--r-- 1 root root     16384 Feb  5 16:06 2.Primary GPT Table
-rw-r--r-- 1 root root      3072 Feb  5 16:06 3.free
-rw-r--r-- 1 root root 125435904 Feb  5 16:06 4.hfs
-rw-r--r-- 1 root root      2560 Feb  5 16:06 5.free
-rw-r--r-- 1 root root     16384 Feb  5 16:06 6.Backup GPT Table
-rw-r--r-- 1 root root       512 Feb  5 16:06 7.Backup GPT Header

ติดตั้งเข้ากับโฟลเดอร์:

root # mkdir t
root # mount -oloop 4.hfs t
root # cd t/
root # ls
mysql-5.5.28-osx10.6-x86_64.pkg  MySQL.prefPane  MySQLStartupItem.pkg  ReadMe.txt

คุณสามารถระบุไฟล์เดียวที่คุณต้องการแยกไฟล์:7z x ../mysql-5.5.28-osx10.6-x86_64.dmg 4.hfs
Lekensteyn

8

หากคุณประสบความสำเร็จกับคำแนะนำจาก Lekensteyn และ binfalse อำนาจมากขึ้นกับคุณ หากคุณได้รับ

$ lsmod | grep hfs
hfs                    54782  0 
hfsplus                84912  0
$ sudo mount -o loop,ro -t hfsplus imagefile.img /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,

ตอนนี้ Ubuntu มาพร้อมกับ dmg2img รุ่น 1.6.2 เท่านั้นและบางครั้งรุ่น 1.6.4 ก็สร้างความแตกต่าง นอกจากนี้คุณสามารถแยกพาร์ติชันเฉพาะจาก dmg และบางส่วนเท่านั้นคือ hfs +

$ dmg2img -l file.dmg
partition 0: Protective Master Boot Record (MBR : 0)
partition 1: GPT Header (Primary GPT Header : 1)
partition 2: GPT Partition Data (Primary GPT Table : 2)
partition 3:  (Apple_Free : 3)
partition 4: disk image (Apple_HFS : 4)
partition 5:  (Apple_Free : 5)
partition 6: GPT Partition Data (Backup GPT Table : 6)
partition 7: GPT Header (Backup GPT Header : 7)
$ dmg2img -p 4 file.dmg imagefile.img
  • Ubuntu รุ่นปัจจุบันมาพร้อมกับ 1.6.5 เป็นรุ่น 14.04

4

เมื่อใช้งานdmg2img file.dmg imagefile.imgบน linux หากคุณได้รับข้อความแสดงข้อผิดพลาด: เงินเฟ้อล้มเหลวให้ติดตั้ง7zipเป็น

sudo aptitude install p7zip-full

และใช้คำสั่งต่อไปนี้บนเทอร์มินัล

7z x your_file.dmg
  • ค้นหา InstallMacOSX.pkg / InstallESD.dmg
  • ออกคำสั่งdmg2img InstallESD.dmg imagefile.imgบนเทอร์มินัล

ตอนนี้คุณสามารถ mount imagefile.img ด้วย

modprobe hfsplus

แล้ว

mount -t hfsplus -o loop mountain.img /mnt

3

แรกของทั้งหมดที่ติดตั้งDMG2IMG ตอนนี้คุณสามารถแปลงเป็นIMG:

dmg2img your.dmg new.img 

IMGสามารถติดตั้งได้ด้วย:

sudo modprobe hfsplus
sudo mount -t hfsplus -o loop new.img /mnt

และดูที่ /mnt


2

ในกรณีของบาง.dmgs คุณไม่สามารถที่จะ7z xให้พวกเขาหรือผลมาจากการmountdmg2img

ในกรณีดังกล่าว.imgผลลัพธ์จากdmg2img your.dmg new.imgสามารถแยกพาร์ติชันด้วย7z x:

$ 7z x factor-macosx-x86-64-0.98.dmg
[...]
Extracting archive: factor-macosx-x86-64-0.98.dmg
ERROR: factor-macosx-x86-64-0.98.dmg
factor-macosx-x86-64-0.98.dmg
Open ERROR: Can not open the file as [Dmg] archive

$ dmg2img factor-macosx-x86-64-0.98.dmg factor.img
[...]
factor-macosx-x86-64-0.98.dmg --> factor.img
[...]
Archive successfully decompressed as factor.img

$ sudo mount -o loop -t hfsplus factor.img /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop5, missing codepage or helper program, or other error.

$ 7z x factor.img 

[...]
Extracting archive: factor.img
[...]
Everything is Ok                                

Folders: 2717
Files: 10266
Size:       176431113
Compressed: 264214528

$ ls -lah factor factor/factor/
factor:
total 24K
drwx------  6 cat cat 4.0K Jul 30  2018  .
drwxr-xr-x 21 cat cat 4.0K Feb 19 16:28  ..
drwx------  8 cat cat 4.0K Jul 30  2018  factor
drwx------  2 cat cat 4.0K Jul 30  2018 '[HFS+ Private Data]'
drwx------  2 cat cat 4.0K Jul 30  2018 '.HFS+ Private Directory Data'$'\r'
drwx------  2 cat cat 4.0K Jul 30  2018  .Trashes

factor/factor/:
total 97M
drwx------   8 cat cat 4.0K Jul 30  2018 .
drwx------   6 cat cat 4.0K Jul 30  2018 ..
drwx------ 163 cat cat 4.0K Jul 30  2018 basis
drwx------  45 cat cat 4.0K Jul 30  2018 core
-rw-r--r--   1 cat cat  702 Jul 30  2018 .dir-locals.el
drwx------ 288 cat cat  12K Jul 30  2018 extra
-rw-r--r--   1 cat cat   32 Jul 30  2018 factor
drwx------   3 cat cat 4.0K Jul 30  2018 Factor.app
-rw-r--r--   1 cat cat  97M Jul 30  2018 factor.image
-rw-r--r--   1 cat cat   40 Jul 30  2018 .gitattributes
-rw-r--r--   1 cat cat   43 Jul 30  2018 git-id
-rw-r--r--   1 cat cat 366K Jul 30  2018 libfactor.dylib
-rw-r--r--   1 cat cat  16K Jul 30  2018 libfactor-ffi-test.dylib
-rw-r--r--   1 cat cat 1.3K Jul 30  2018 LICENSE.txt
drwx------   9 cat cat 4.0K Jul 30  2018 misc
-rw-r--r--   1 cat cat 4.6K Jul 30  2018 README.md
-rw-r--r--   1 cat cat 3.6K Jul 30  2018 .travis.yml
drwx------   2 cat cat 4.0K Jul 30  2018 work

ที่ประสบความสำเร็จ!


คำตอบมากมายแนะนำให้ใช้โดยตรง7zกับไฟล์ dmg ทำไมต้องแปลงมัน?
Olorin

@Oloin นี้ใช้สำหรับเมื่อ7z x your.dmgล้มเหลวด้วยCan't open as archive: 1และเมื่อการdmg2imgส่งออกของจะไม่ได้รับการยอมรับจากmountทั้ง ฉันจะอธิบาย
แมว

1

ทำตามคำตอบของ @aman และ @tuxdna เนื่องจาก dmg2img ดูเหมือนจะไม่ทำงานกับอิมเมจ dmg ที่ถูกบีบอัด

ดังนั้นฉันจึงสร้างสคริปต์ทุบตี (ทดสอบบน Ubuntu 14.10) เพื่อทำให้กระบวนการเป็นอัตโนมัติ:

  • แยกด้วย 7z ในโฟลเดอร์ชั่วคราว
  • กำลังค้นหาพาร์ติชันที่จะเมาต์
  • คัดลอกโฟลเดอร์ / พาร์ติชัน hfs / hfsplus ที่อื่น
  • ลบโฟลเดอร์ temp
  • ติดตั้งพาร์ติชัน

ค้นหาได้ที่นี่: https://github.com/aurelien-rainone/scripts/blob/master/mountdmg.sh

ตัวอย่างการใช้งาน:

panty@Computerino:[~/scripts]: mountdmg.sh -t hfsplus -d /mnt ~/Downloads/cutecom-ng.dmg 

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: /home/panty/Downloads/cutecom-ng.dmg

Extracting  0.MBR
Extracting  1.Primary GPT Header
Extracting  2.Primary GPT Table
Extracting  3.free
Extracting  4.hfs
Extracting  5.free
Extracting  6.Backup GPT Table
Extracting  7.Backup GPT Header

Everything is Ok

Files: 8
Size:       33549312
Compressed: 10059312
mountdmg.sh: successfully mounted 4.hfs on /dev/loop0
mountdmg.sh: run sudo umount /dev/loop0 when finished
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.