- Sudo Hdiutil Create John Users Shared John.dmg One
- Sudo Hdiutil Create John Users Shared John.dmg Password
While sudo is no doubt a must-know command for any and everyone who works on the command line in Linux, there are several other related (and in-depth) details that you should know in order to use the command more responsibly and effectively. Apr 27, 2017 - Add sudo to the beginning of the command 'sudo hdiutil makehybrid -iso -joliet -o destinationFile.iso SourceFile.cdr'. This will execute the command as root - When prompted for password, enter your current user logon password (Not the root user password). This fixed the problem for me.
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.
%sudo - the group (named sudo) allowed to use sudo. 1 st ALL means to allow sudo from any terminal, or from any host (on any machine) (ALL:ALL) indicates command can be run as (User:Group) Last All means all commands can be executed; Explanation for root ALL=(ALL) ALL. Root - the user (root) allowed to do everything on any machine as any user. Hdiutil attach/detach/convert results to “resource temporarily unavailable”. Creating the image with ´/usr/bin/hdiutil create -srcfolder 'target/MyApp.app' -volname 'MyApp' -ov 'target/MyDrive-tmp.dmg' -fs HFS+ -format UDRW´ works like a charme and solves my problem. Provide details and share.
Disk Images Explained
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
diskutil command is only for disk management, when it comes to creating and restoring images there are two other commands to know of.
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:
hdiutil in this way must be as root, hence it starting with
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
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
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
diskutil, but by the next command we'll be looking at:
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:
Once completed, the target volume will be identical to the source volume, even taking the same name.
Using a combination of
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.
I am trying to construct a .dmg containing my application bundle, an examples directory, and a readme file. I use a shell script to construct the directory 'G4beamline-3.01' containing them, and then do
$ hdiutil create -srcdir G4beamline-3.01 G4beamline-3.01.dmg
Sudo Hdiutil Create John Users Shared John.dmg One
hdiutil: create failed - error -5341
What does that error mean? How can I fix it?
Here's the crazy part -- if I move the app bundle out of that directory, I can create two .dmg-s:
$ mv G4beamline-3.01/G4beamline.app .
$ hdiutil create -srcdir G4beamline-3.01 one.dmg
Sudo Hdiutil Create John Users Shared John.dmg Password
$ hdiutil create -srcdir G4beamline.app two.dmg
So the puzzle is: why is it that it can create the .dmg when the two pieces are separate, but not when they are together (as required)?
Note that all .dmg-s open normally, and if there is an app inside it runs correctly. There is plenty of space on the drive. In Terminal I did 'su - g4bl' to build the app as a user other than the primary user, but tests as the primary user give the same error. Inside the app bundle I of course copied all non-system dylib-s into Contents/lib, and used install_name_tool to modify all executables and dylib-s to reference them there. This used to work, but with an older version of the app bundle.
In an attempt to fix this, I just re-installed Mac OS X (Mavericks), and did software update. No change.