如何打开 .dmg 文件?

jrg*_*jrg 85 archive files file-format

我有一个.dmg文件,但我不知道如何打开它。我怎样才能打开它?

小智 62

要提取它,使用 7zip 更容易:

7z x file.dmg
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,`7z` 完成了这项工作,而 `dmg2img` 抱怨 dmg 图像损坏。 (7认同)
  • 请注意,7z 仅适用于未加密的 dmg 图像 (4认同)
  • 这只是为我创建了一个名为“0.unknownpartition”的文件。 (2认同)

Lek*_*eyn 58

安装dmg2img

接下来,阅读包信息页手册页,看看它是否对您有用。

该应用程序似乎将 .dmg 转换为可以使用以下mount命令挂载的文件:

dmg2img file.dmg imagefile.img
Run Code Online (Sandbox Code Playgroud)

从您的Wikipedia 文章中,似乎可以使用下一个命令来执行此操作:

sudo mount -o loop -t hfsplus imagefile.img /mnt
Run Code Online (Sandbox Code Playgroud)

通过这种方式,该文件imagefile.img是一个结果,dmg2iso内容将在/mnt. 如果未检测到 hfsplus 类型,您可能需要为其加载内核模块:

sudo modprobe hfsplus
Run Code Online (Sandbox Code Playgroud)

完成后,您可以通过运行以下命令卸载它:

sudo umount /mnt
Run Code Online (Sandbox Code Playgroud)

  • 我收到此错误 - `mount:错误的 fs 类型,错误的选项,/dev/loop0 上的超级块错误` (9认同)
  • @tuxdna 你真的有 HFS 图像吗?检查`file file.dmg`的输出。您也可以尝试使用 `7z l file.dmg` 来列出内容。 (3认同)
  • 如果 dmg 文件中有 10.6+ 个压缩文件,这将不起作用。 (2认同)

tux*_*dna 32

这对我有用:

  • 提取使用 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
Run Code Online (Sandbox Code Playgroud)

找到hfs分区(这里是4.hfsfile ):

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
Run Code Online (Sandbox Code Playgroud)

挂载到文件夹:

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
Run Code Online (Sandbox Code Playgroud)


小智 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,
Run Code Online (Sandbox Code Playgroud)

现在 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
Run Code Online (Sandbox Code Playgroud)
  • 从 14.04 版开始,当前的 Ubuntu 版本带有 1.6.5