Disk imaging is a highly useful tool if you're wanting to create a whole copy of a volume and restore it back at a later date, either to the same disk or another one entirely. It's an integral part of Disk Utility and, as with partitioning, creating & restoring images can be executed via the command-line.
Disk Images Explained
Sep 13, 2018 Create Installer. Open the Terminal in the Utilities' folder. Choose the appropriate command line (in red) depending upon what OS X installer you want. Paste that entire command line from below at the Terminal's prompt: Command for macOS High Sierra. Jul 16, 2014 Create.dmg File From Source Code: The Old Way. Old way was to install or build the software first and then to create the.dmg file using some other or default utilities, descriptions are available all over the Internet, like written in details here. In this new job, add a 'Copy file to' command and select your.dmg file. The source path should be something like.ImagesMacMacVNCserverVineServer2.2.dmg The destination path should be an accessible folder on the target Mac computer such as: UsersSharedVineServer2.2.dmg; Add a.
A disk image is a file containing the entire structure of a partition or even just a folder. On the Mac, disk images tend to be DMG files. You'll likely have come across these when downloading apps, such as Skype, from the web. If you remember the days of software that was provided on either a floppy or optical disc, disk images have been designed to work in much the same way but through digital, rather than physical, distribution.
Creating an image of a disk partition duplicates its entire structure into a single file, bit for bit. Let's say we had an external hard drive that contains a single volume and created a disk image from it. If we then restored this disk image to another external hard drive, it would contain the exact same volume with identical information.
Disk images also retain boot functionality, so images created from bootable OS X volumes can be created and restored. This is especially useful for those needing to configure tens, if not hundreds, of similar Macs with the same software configuration. Rather then repeat the entire configuration process on each Mac, it could be completed on just one Mac and a disk image of it created, then restored to every other Mac.
Creating a Disk Image of a Volume
The
diskutil
command is only for disk management, when it comes to creating and restoring images there are two other commands to know of. The first,
hdiutil
, is used to manipulate disk images. For the purposes of this guide, we'll be using it to create new disk images (although there is a lot more the command can do).To create a disk image of a partition, the command is:
Executing
hdiutil
in this way must be as root, hence it starting with sudo
.An example of this command in practice would be:
This command will create a new disk image called Lion.dmg on the Desktop based upon the disk identifier disk2s4. In this instance, this referred to a volume containing an installation of OS X Mavericks.
Creating a Disk Image of a Folder
The
hdiutil
command can also be used to create a disk image based upon a folder. Using the above command, we could perform the following:
The name of the disk image and volume name are two different things, the first simply refers to the filename of the disk image created. When the image is mounted or restored to a disk, the volume name is what's referred to. So if I mount this new disk image, you'll see OS X mounts it as 'New Disk Image'.
Disk images generated using the above methods are read-only and formatted as HFS+ by default, though their size will be just enough to contain all the data needed.
Standard disk images cannot increase in size, so you'll need to specify a particular size if you intend to be adding data to it later. The parameter
-size
can be used to specify the size of the disk image to create. If you need will need to modify or add more data to the disk image, use the parameter
-format UDRW
which represents read/write.Combining all of the above, the command would be:
Creating Encrypted Disk Images
While Mac OS X doesn't support password-protected folders, you can create encrypted disk images and store important files within.
To create an encrypted disk image, use the command:
Unlike previous examples, encrypted disk images are read/write by default but contain no filesystem, so one must be specified before it can be used.
Here's an example command to create a 1GB encrypted disk image:
During the process, OS X's password generator will appear for you to either specify and confirm (or generate) a password.
Resizing Disk Images
Should you create a disk image that has become full, or one that was far bigger than necessary, it can be resized using the
resize
option and -size
parameter. Provided there is either enough free space on the volume the disk image is located on, or the size is not less than the total amount of data it contains, the disk image will resize according to the size specified.
Restoring Disk Images
Copying a disk image to a volume on a disk is more commonly referred to as restoring, you would restore a disk image. Although the term implies the disk image may have originated from the disk you're using in the first place, it's used regardless of that fact.
Restoring disk images isn't done by either
hdiutil
or diskutil
, but by the next command we'll be looking at: asr
.asr
(Apple Software Restore), is used to copy (restore) a disk image to a disk. The command used to restore a disk image is:There are some options that can be included to speed up the process which can be added to the end of the command.
- noprompt (doesn't display any prompts before erasing or restoring)
- noverify (skips verification after restoring)
- erase (erase the target volume before continuing)
An example command using these option would be:
Restoring Volume to Volume
If you needed to duplicate a volume from one external hard drive to another, you don't need create a disk image first as
asr
can restore one volume to another. The command to do this is similar to restoring a disk image, but we reference a volume instead of a disk image. For example:
Create Dmg Of User Folder Free
Once completed, the target volume will be identical to the source volume, even taking the same name.
Wrapping Up
Using a combination of
diskutil
, hdiutil
and asr
, the functions of Disk Utility can all be performed via the command-line, from encrypted disk images to basic volume duplication. While Disk Utility may be easier for most users, those looking to find ways of performing complex or repetitive tasks automatically can do so by way of shell scripting.
You can purchase the complete guide to Disk Management From the Command-Line that includes Building an OS X Triage Drive as an ebook in ePub and PDF format for just $0.99.
A shell script to build fancy DMGs.
Status and contribution policy
This project is maintained thanks to the contributors who send pull requests, and now (Sep 2018) with the help of @aonez.
We will merge any pull request that adds something useful and does not break existing things, and will often grant commit access to the repository.
If you're an active user and want to be a maintainer, or just want to chat, please ping us at gitter.im/create-dmg/Lobby.
Installation
- You can install this script using Homebrew:
- You can download the latest release
- You can also clone the entire repository:
Usage
All contents of source_folder will be copied into the disk image.
Options:
- --volname <name>: set volume name (displayed in the Finder sidebar and window title)
- --volicon <icon.icns>: set volume icon
- --background <pic.png>: set folder background image (provide png, gif, jpg)
- --window-pos <x> <y>: set position the folder window
- --window-size <width> <height>: set size of the folder window
- --text-size <text_size>: set window text size (10-16)
- --icon-size <icon_size>: set window icons size (up to 128)
- --icon <file_name> <x> <y>: set position of the file's icon
- --hide-extension <file_name>: hide the extension of file
- --custom-icon <file_name|custom_icon|sample_file> <x> <y>: set position and custom icon
- --app-drop-link <x> <y>: make a drop link to Applications, at location x, y
- --ql-drop-link <x> <y>: make a drop link to /Library/QuickLook, at location x, y
- --eula <eula_file>: attach a license file to the dmg
- --rez <rez_path>: specify custom path to Rez tool used to include license file
- --no-internet-enable: disable automatic mount©
- --format: specify the final image format (default is UDZO)
- --add-file <target_name> <file|folder> <x> <y>: add additional file or folder (can be used multiple times)
- --disk-image-size <x>: set the disk image size manually to x MB
- --hdiutil-verbose: execute hdiutil in verbose mode
- --hdiutil-quiet: execute hdiutil in quiet mode
- --sandbox-safe: execute hdiutil with sandbox compatibility and do not bless
- --version: show tool version number
- -h, --help: display the help
Example
Alternatives
- see the StackOverflow question