So you’re running Linux on your computer, maybe Ubuntu, and you have some files with the .dmg extension. In this guide, we’re going to talk about how to open, mount, extract, and otherwise get your files from these pesky DMG images. You could always just extract the files on a Mac, then transfer them back to your Linux machine. But if you really want to do this on Linux, without having to rely on Mac, here’s how to do it.
What are DMG image files?
All you really need to do is double-click the DMG file to open it and mount it to your Mac. The DMG mounts in two places: on your desktop and in the Finder sidebar under your hard drive. Clicking either one of these opens the DMG file. When you open a DMG file, you’ll usually see two things: the app and a link to your applications folder. Install the DMG's app. Locate the icon for the app you're trying to install (e.g., Firefox), then click and drag the icon onto the 'Applications' icon in the window. This will prompt the DMG file's app to begin installing; once it completes, you'll be able to find in in the Launchpad menu.
Simply put, it’s a kind of image file. But not an image like a jpeg is an image. DMG is Apple’s proprietary disk image format, native to Mac OS X. There are actually a whole bunch of different types, format and options within this format. There are options for encryption, compression, and different kinds of partition schemes, among others. Unfortunately, this can make things pretty confusing when we’re trying to gain access to the data contained in one of these images.
DMG images are typically a kind of Universal Disk Image Format (UDIF), although there are others, namely NDIF and SPARSE. Although the .dmg file extension is usually used, they can also sometimes have an .img extension, or in some cases no extension at all. Their MIME type is application/x-apple-diskimage.
The HFS/HFS+ (Mac OS Extended/Journaled) file system is typically used in DMGs. However, this isn’t always the case. You may also sometimes find FAT and ExFAT files systems, as well as variations on HFS.
Does my system support DMG?
DMG files were created for macOS, so opening or running it on a Mac should be very simple. When you copy the DMG file or you connect the drive where the DMG file is saved, it is automatically mounted by macOS as a drive and is treated as an actual hard drive. DMG File Not Recognized Error on Mac. Apparently, if there are too many dmg files open, the no mountable file system Mac error is caused. Disable if you have enabled any restrictions that need permissions or prevents accessibility to external drives (thumb drives, optical drives, etc.). Try mounting the disk image file in the command line in Terminal. I want to install a dmg file on a remote server. All I have is an ssh access. Since a DMG is a disk image, I tried to mount it, but mount does not seem to recognize its format. File says my dmg file is a VAX COFF executable.
Perhaps the biggest hurdle to overcome when trying to work with DMG files is working with the HFS file system (Mac OS Extended). Linux supports HFS through the “hfs” and “hfsplus” kernel modules.
There’s an easy way to test if your system has these kernel modules. Plug in a USB drive formatted with the Mac OS Extended file system. If your particular distribution doesn’t have the appropriate modules, you will likely get an error message. On Ubuntu, you’ll get a popup window declaring “Ubuntu: Unable to mount
Alternatively, we can see if the kernel module files are present with find:
We want to see two files: “hfs.ko” and “hfsplus.ko”. If find doesn’t return these files, your system probably doesn’t support HFS.
You could also try “modinfo”:
modinfo hfs and
modinfo hfsplus should return something like:
If you get '
modinfo: ERROR: Module hfsplus not found' your system doesn’t have these modules.
Not all Linux kernels and distributions support HFS. This is especially the case for certain distributions that are a few years old. If you have kernel support for HFS, great! If not, don’t worry. There are still ways to extract data from your DMG files. While it’s nice to have the option to mount the images we’re working with, this is really the only functionality we’re losing without having the hfs and hfsplus modules. The two programs we’re going to use later on (P7ZIP and dmg2img) do not require kernel support to function.
What kinds of DMG images can be opened in Linux?
This guide is about how to open, mount, and extract files from read/write, read only, and compressed DMG image files. The following partition schemes have all been tested with the techniques discussed here.
- Apple Partition Map
- CD/DVD (partitioned)
- CD/DVD (partitioned) with ISO data
- Hard disk
- Master Boot Record Partition Map
- No partition map
This guide does not cover how to handle sparse disk images (.sparseimage), sparse bundle disk images (.sparsebundle), or CD/DVD masters. DMG images with partition scheme types of “CD/DVD” and “GUID Partition Map” do not appear to work with the techniques described here.
Option 1: Mount the DMG
If the Linux distribution you’re on has HFS support in the kernel (Ubuntu 14.04.1 LTS supports it), it’s pretty easy to just mount the DMG image:
We’re using “sudo” because we need root privileges to mount things. The HFS+ file system type is specified with “-t hfsplus”. The “/mnt” at the end of the command specifies where we’re mounting the image.
Unmount the image with
sudo umount /mnt
If you get a wrong fs type message like the one below, it means the DMG file is either of an unsupported type, or it’s compressed. Unsupported images include sparse images, sparse disk bundles, CD/DVD masters, and images with partition schemes of the CD/DVD or GUID Partition Map types.
Use “file” to learn a little more about the image file:
If you get
image.dmg: x86boot sector that means it’s probably using a GUID Partition Map and isn’t supported. This isn’t good, however, it’s also not too terribly common.
What’s more common is to see something like this:
If mounting isn’t working, and this is what you’re seeing with “file image.dmg”, then you’re luck!. Our problems are being caused by compression. Linux doesn’t like to mount compressed DMG images. To get around this little obstacle, we’ll use dmg2img (see below).
Option 2: Use dmg2img for compressed images
So you have a DMG image that you can’t mount because it’s compressed. You’ve done “file compressed_image.dmg” and you got “compressed_image.dmg: bzip2 compressed data”. The fix? That’s easy: use dmg2img to convert it to an uncompressed image. Once you run the image through dmg2img you should be able to mount it no problem.
Don’t have dmg2img? It’s usually pretty easy to get using your distribution’s package management. On Ubuntu, you’d do:
Using dmg2img isn’t very difficult. Type “dmg2img” into the command line followed by the name of the DMG file you want to decompress. The Mac OS X version of Firefox is a good example of a compressed DMG file.
Now mount the resulting .img file:
Option 3: Extract DMG contents with P7ZIP
P7ZIP is awesome. It’s the Linux/BSD version of 7-Zip. Check out their SourceForge page here With it you can literally extract files from any kind of image or archive. Just kidding… It doesn’t really work with every format conceivable. However, it can handle (in alphabetical order): ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR and Z. Impressed? I certainly am!
Installing p7zip is pretty easy using your distribution’s package management system. On Ubuntu with apt-get:
In addition to being able to extract data from compressed and uncompressed images alike, P7ZIP doesn’t require the HFS kernel modules at all. In the example below, we’re going to extract all of the files from “Firefox 33.1.1.dmg”. When we’re done, we’ll have a tidy little folder called “Firefox”.
Invoke P7ZIP to extract archives and images with “7z x”.
Notice that 7z extracted three files: “0.ddm”, “1.Apple_partition_map”, and “2.hfs”. To actually get to the files, we’ll need to run 7z again on “2.hfs”.
We picked “2.hfs” because it was the biggest of the three, meaning it was probably the one with the data. Simple but effective logic. After a few moments, you should have a folder called “Firefox” with all of the files from the original DMG.☆ ★ ★ ★ ★ Rated (4.0 of 5.0) by 10 reviewers.
November 8, 2019 at 6:30 AM
Categories: macOS View Comments
I ran into an interesting macOS error while working with a customer a couple of weeks ago. I didn't find a lot of good search results addressing the issue, so I decided to write up a post about it myself.
The error was as the screenshot above shows; trying to open a dmg (disk image), macOS showed the error 'no mountable file systems'. If you see the 'no mountable file systems error' while opening a dmg, here's what you should try:
Dmg File Won't Open On Mac High Sierra
In most cases, the downloaded dmg file is actually corrupt or had an error downloading. If possible, try downloading the dmg again, turning off any download assistant plug-ins you may have. You can try downloading the file in a different browser as well. Or if you don't need to be logged in to the site to download the file and you want to be fancy, you can try
curl -O urlin Terminal to download the file. (There's an example of that in my screenshot below.)
Reboot your Mac if you haven't already tried that. Apparently there is an issue sometimes after opening too many dmg files, that is fixed with a reboot.
Try mounting the DMG on the command line in Terminal. We will at least get some sort of useful error message to go on if it still fails:
Open Terminal: In Spotlight, the search magnifying glass at the upper right corner of your screen, search for Terminal, and press enter to open the Terminal app.
hdiutil attach -verboseinto the terminal. Add a space at the end, but don't press enter yet.
Drag the dmg file from your Finder window onto the Terminal window and let go. This will fill in the location of the dmg file into your Terminal window.
- Press enter.
macOS Sierra (10.12) and earlier is not able to mount the new Apple File System (APFS). So if you're on macOS Sierra (10.12) or earlier and you ran hdiutil and see references to
112, the issue is likely legitimate incompatibility, and this disk image won't open on this Mac without an update to the operating system.
Here's an example of the end of
hdiutil attach -verboseoutput that shows an APFS error due to an older version of macOS:
Think about if you have any kind of security policies on this machine to prevent writing to external drives (thumb drives, optical drives, etc). I haven't seen this one in action, but I read about this being a possibility while researching the issue.
Another suggestion added by a reader (thank you, Markus!) is that filesystem errors on your main Mac drive could be the cause of the disk image mounting errors. Here are instructions from Apple for scanning and repairing errors using Disk Utility. Note that in order to scan and repair errors on your main Macintosh HD drive, you'll need to reboot your Mac into recovery mode. You'll want to choose Disk Utility in the utilities listed in the recovery mode menu.
A new discovery from a reader (thank you, Colby!) is that APFS DMGs won't mount if you're booted in macOS booted in Safe Mode. (Who knew!?!) If you're not sure if you're in safe mode, select the Apple menu > About This Mac > System Report button, then select the 'Software' heading from the left column. To exit safe mode, restart your Mac, without holding Shift during startup. Or, if you previously set your Mac to always boot into safe mode using
nvram, turn off safe mode and have your Mac boot normally on the terminal:
sudo nvram boot-args='and press enter.
Restart your Mac.