У меня есть .dmg файл, и я не могу понять, как его открыть. Как я могу его открыть?
Чтобы извлечь его, гораздо проще использовать 7zip:
7z x file.dmg
Устанавливать dmg2img.
Далее прочтите страница с информацией о пакете и страница руководства чтобы посмотреть, будет ли это полезно для вас.
Приложение, похоже, преобразует .dmg в файл, который можно смонтировать с помощью mount
команда:
dmg2img file.dmg imagefile.img
От вашего Статья в Википедии, следующая команда, по - видимому, доступна для этого:
sudo mount -o loop -t hfsplus imagefile.img /mnt
Таким образом, файл imagefile.img
является результатом dmg2iso
и содержание будет доступно по адресу /mnt
. Если тип hfsplus не обнаружен, возможно, вам потребуется загрузить для него модуль ядра:
sudo modprobe hfsplus
Когда это будет сделано, вы можете размонтировать его, выполнив:
sudo umount /mnt
Это работает для меня:
- Извлечь с помощью
7z x
- Найдите
hfs
файл раздела - Смонтируйте его в каталог
Извлечь с помощью 7z x
root # aptitude install p7zip-fullroot # 7z x ../mysql-5.5.28-osx10.6-x86_64.dmg 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,4 CPUs)Processing archive: ../mysql-5.5.28-osx10.6-x86_64.dmgExtracting 0.MBRExtracting 1.Primary GPT HeaderExtracting 2.Primary GPT TableExtracting 3.freeExtracting 4.hfsExtracting 5.freeExtracting 6.Backup GPT TableExtracting 7.Backup GPT HeaderEverything is OkFiles: 8Size: 125475840Compressed: 117543935root # ls0.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 -ltotal 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 troot # mount -oloop 4.hfs troot # cd t/root # lsmysql-5.5.28-osx10.6-x86_64.pkg MySQL.prefPane MySQLStartupItem.pkg ReadMe.txt
Если вы преуспеете в выполнении инструкций Лекенштейна и бинфалса, у вас будет больше власти. Если вы получаете
$ lsmod | grep hfshfs 54782 0 hfsplus 84912 0$ sudo mount -o loop,ro -t hfsplus imagefile.img /mntmount: wrong fs type, bad option, bad superblock on /dev/loop0,
Прямо сейчас Ubuntu поставляется только с dmg2img версии 1.6.2, а версия 1.6.4 иногда имеет значение. Кроме того, вы можете извлечь определенные разделы из dmg, и только некоторые из них являются hfs +
$ dmg2img -l file.dmgpartition 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
В случае некоторых .dmg
s, вы не можете ни 7z x
их, ни mount
результатом dmg2img
.
В этом случае, .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.dmgERROR: factor-macosx-x86-64-0.98.dmgfactor-macosx-x86-64-0.98.dmgOpen 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 /mntmount: /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: 2717Files: 10266Size: 176431113Compressed: 264214528$ ls -lah factor factor/factor/factor:total 24Kdrwx------ 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 factordrwx------ 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 .Trashesfactor/factor/:total 97Mdrwx------ 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 basisdrwx------ 45 cat cat 4.0K Jul 30 2018 core-rw-r--r-- 1 cat cat 702 Jul 30 2018 .dir-locals.eldrwx------ 288 cat cat 12K Jul 30 2018 extra-rw-r--r-- 1 cat cat 32 Jul 30 2018 factordrwx------ 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.txtdrwx------ 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.ymldrwx------ 2 cat cat 4.0K Jul 30 2018 work
Успех!
При использовании 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
на терминале.
Теперь вы можете смонтировать imagefile.img с помощью
modprobe hfsplus
и затем
mount -t hfsplus -o loop mountain.img /mnt
Прежде всего установите DMG2IMG. Теперь вы можете преобразовать его в IMG
:
dmg2img your.dmg new.img
То IMG
может монтироваться с:
sudo modprobe hfsplussudo 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-18p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)Processing archive: /home/panty/Downloads/cutecom-ng.dmgExtracting 0.MBRExtracting 1.Primary GPT HeaderExtracting 2.Primary GPT TableExtracting 3.freeExtracting 4.hfsExtracting 5.freeExtracting 6.Backup GPT TableExtracting 7.Backup GPT HeaderEverything is OkFiles: 8Size: 33549312Compressed: 10059312mountdmg.sh: successfully mounted 4.hfs on /dev/loop0mountdmg.sh: run sudo umount /dev/loop0 when finished
Инструкции в некоторых сообщениях в этой теме работают только с более старыми версиями 7z.
Если вы хотите извлечь ТОЛЬКО файл 4.hfs из файла .dmg (т.Е. только на один уровень глубиной) и используете более новую версию 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