我怎么能打开.dmg文件?

我有一个.dmg文件,我无法弄清楚如何打开它。 我该怎么打开它?

安装dmg2img 安装dmg2img

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

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

 dmg2img file.dmg imagefile.img 

从您的维基百科文章中 ,下一个命令似乎可以这样做:

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

这样,文件imagefile.imgimagefile.img的结果,内容将在/mnt可用。 如果未检测到hfsplus类型,则可能需要为其加载内核模块:

 sudo modprobe hfsplus 

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

 sudo umount /mnt 

要提取它,使用7zip要容易得多。 简单地说:

 7z x file.dmg 

这对我有用:

  • 使用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 

如果你成功接受了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版本在版本14.04中附带1.6.5

在linux上使用dmg2img file.dmg imagefile.img如果你得到ERROR:Inflation failed message,只需安装7zip

 sudo aptitude install p7zip-full 

并在终端上发出以下命令

7z x your_file.dmg
– 找到InstallMacOSX.pkg / InstallESD.dmg
– 在终端上发出命令dmg2img InstallESD.dmg imagefile.img 。 现在你可以装载imagefile.img了

 modprobe hfsplus 

然后

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

首先安装DMG2IMG 。 现在您可以将其转换为IMG

 dmg2img your.dmg new.img 

IMG可以安装:

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

看看/mnt

按照@aman和@tuxdna的回答,因为dmg2img似乎不适用于压缩的dmg图像。

所以我制作了一个bash脚本(在ubuntu 14.10上测试)来自动化以下过程:

  • 在临时文件夹中用7z提取
  • 寻找要挂载的分区
  • 在其他地方复制hfs / hfsplus文件夹/分区
  • 删除临时文件夹
  • 挂载分区

在这里找到它: 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