Comment puis-je ouvrir un fichier .dmg?


Réponses:


53

Installez dmg2imgInstallez dmg2img .

Ensuite, lisez la page d’information sur le paquet et la page de manuel pour voir si cela vous est utile.

L'application semble convertir le fichier .dmg en un fichier pouvant être monté à l'aide de la mountcommande suivante:

dmg2img file.dmg imagefile.img

De votre article Wikipedia , la prochaine commande semble être disponible pour le faire:

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

De cette manière, le fichier imagefile.imgest un résultat de dmg2isoet le contenu sera disponible sur /mnt. Si le type hfsplus n'est pas détecté, vous devrez peut-être charger le module du noyau pour cela:

sudo modprobe hfsplus

Une fois terminé, vous pouvez le démonter en lançant:

sudo umount /mnt

Cela ne fonctionnera pas si le fichier dmg contient plus de 10,6 fichiers compressés.
HDave

5
Je reçois cette erreur -mount: wrong fs type, bad option, bad superblock on /dev/loop0
tuxdna

1
@tuxdna Avez-vous vraiment une image HFS? Vérifiez la sortie de file file.dmg. Vous pouvez également essayer 7z l file.dmgde lister le contenu.
Lekensteyn

J'utilise dmg2img v1.6.2. J'ai couru dmg2img sur mysql-5.5.28-osx10.6-x86_64.dmglequel créé mysql-5.5.28-osx10.6-x86_64.img, mais il ne monte pas.
tuxdna

@Lekensteyn Merci! Maintenant ça marche. Vérifiez ma réponse ci-dessous.
Tuxdna

45

Pour l'extraire, il est beaucoup plus facile d'utiliser 7zip. Faites simplement:

7z x file.dmg

7
Merci, a 7zfait le travail, alors que dmg2imgs'est plaint d'une image corrompue de dmg.
Rinni

3
Notez que 7z ne fonctionne que pour les images dmg non cryptées
vog

Cela vient de créer un fichier appelé 0.unknown partitionpour moi.
Aaron Franke

31

Cela fonctionne pour moi:

  • Extraire en utilisant 7z x
  • Localisez le hfsfichier de partition
  • Montez-le dans un répertoire

Extraire en utilisant 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

Localisez la hfspartition (ici c'est un 4.hfsfichier):

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

Montez-le dans le dossier:

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

Vous pouvez spécifier le fichier unique que vous voulez extraire:7z x ../mysql-5.5.28-osx10.6-x86_64.dmg 4.hfs
Lekensteyn

8

Si vous réussissez avec les instructions de Lekensteyn et binfalse plus de pouvoir pour vous. Si vous obtenez

$ 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,

À l’heure actuelle, Ubuntu ne contient que les versions 1.6.2 et 1.6.4 de dmg2img qui font parfois une différence. Aussi, vous pouvez extraire des partitions spécifiques d'un fichier dmg et seulement certaines d'entre elles sont au format 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
  • Les versions actuelles d'Ubuntu sont fournies avec 1.6.5 à compter de la version 14.04

4

Si vous utilisez dmg2img file.dmg imagefile.imgsur Linux si vous obtenez un message ERROR: Inflation failed, installez simplement 7zip en tant que

sudo aptitude install p7zip-full

et lancez la commande suivante sur le terminal

7z x your_file.dmg
  • trouver le fichier InstallMacOSX.pkg / InstallESD.dmg
  • émettre la commande dmg2img InstallESD.dmg imagefile.imgsur le terminal.

Maintenant, vous pouvez monter imagefile.img avec

modprobe hfsplus

puis

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

3

Tout d'abord, installez DMG2IMG . Maintenant, vous pouvez le convertir en IMG:

dmg2img your.dmg new.img 

Le IMGpeut être monté avec:

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

Et jetez un oeil à /mnt


2

Dans le cas de certains .dmgs, vous ne pouvez ni 7z xeux, ni mountle résultat de dmg2img.

Dans ce cas, le .imgrésultat de dmg2img your.dmg new.imgpeut avoir ses paritions extraites avec 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

Succès!


Plusieurs réponses suggèrent d'utiliser directement 7zle fichier dmg. Pourquoi le convertir alors?
Olorin le

@Olorin c'est pour quand 7z x your.dmgéchoue avec Can't open as archive: 1, et quand dmg2imgla sortie ne sera pas acceptée par l'un mountou l'autre. Je vais clarifier
chat

1

suite à la réponse de @aman et @tuxdna, car dmg2img ne semble pas fonctionner sur les images dmg compressées.

J'ai donc créé un script bash (testé sur Ubuntu 14.10) pour automatiser le processus de:

  • extraire avec 7z dans un dossier temporaire
  • cherche quelle partition monter
  • copier le dossier hfs / hfsplus / la partition quelque part
  • supprimer le dossier temporaire
  • monter la partition

trouvez-le ici: https://github.com/aurelien-rainone/scripts/blob/master/mountdmg.sh

exemple d'utilisation:

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.