AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 38112
Accepted
jrg
jrg
Asked: 2011-04-30 10:01:30 +0800 CST2011-04-30 10:01:30 +0800 CST 2011-04-30 10:01:30 +0800 CST

如何打开 .dmg 文件?

  • 772

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

files
  • 9 9 个回答
  • 207654 Views

9 个回答

  • Voted
  1. rumpel
    2013-02-16T01:19:00+08:002013-02-16T01:19:00+08:00

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

    7z x file.dmg
    
    • 70
  2. Best Answer
    Lekensteyn
    2011-04-30T10:11:09+08:002011-04-30T10:11:09+08:00

    安装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
    
    • 63
  3. tuxdna
    2014-02-06T03:11:17+08:002014-02-06T03:11:17+08:00

    这对我有用:

    • 提取使用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
    
    • 33
  4. user107033
    2012-12-22T17:37:31+08:002012-12-22T17:37:31+08:00

    如果您按照 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
    • 8
  5. aman
    2014-05-08T00:22:35+08:002014-05-08T00:22:35+08:00

    dmg2img file.dmg imagefile.img在 linux 上使用时,如果您收到 ERROR: Inflation failed 消息,只需安装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
    
    • 4
  6. cat
    2019-02-19T18:47:46+08:002019-02-19T18:47:46+08:00

    在某些.dmgs 的情况下,您既不能是7z x它们,也不能mount是 的结果dmg2img。

    在这种情况下,.img结果 fromdmg2img 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
    

    成功!

    • 4
  7. binfalse
    2011-04-30T10:09:29+08:002011-04-30T10:09:29+08:00

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

    dmg2img your.dmg new.img 
    

    IMG可以安装:

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

    看看/mnt

    • 3
  8. arainone
    2015-08-03T07:04:40+08:002015-08-03T07:04:40+08:00

    遵循@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
    
    • 1
  9. FlexMcMurphy
    2021-06-03T09:50:00+08:002021-06-03T09:50:00+08:00

    该主题的一些帖子中的说明仅适用于旧版本的 7z。

    如果您想从 .dmg 文件中提取 4.hfs 文件(即:仅深一层)并使用较新版本的 7-zip,那么您需要使用不同的参数:

    在 7-Zip [64] 9.20 中,您可以使用以下命令:

    7z x file.dmg 4.hfs
    

    在 7-Zip [64] 16.02 中,您需要使用以下命令:

    7z x -t* file.dmg 4.hfs
    
    • 0

相关问题

  • 如何轻松加密文件?

  • 如何使用 Ubuntu One 与朋友共享文件夹?

  • 如何从命令行获取文件的 mime 类型?

  • examples.desktop 是做什么的?

  • 查看或转换 MDI 文件 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve