I'm trying to perform some testing on old platforms. In this case, its Fedora 1 (circa 2002 or 2003). The VM software (VMware and VirtualBox) can't handle distros that old, so the guests don't have a network card.

I found I could transfer stuff to them through the CD Rom drive. However, when I attempt to build an ISO with a file I am trying to transfer:

hdiutil makehybrid -o ~/image.iso ~/make-4.1.tar.gz -iso -joliet
Creating hybrid image...

hdiutil: makehybrid failed - Operation not permitted

I also tried with create, but that result in an error, too:

hdiutil create -ov ~/make-4.1.tar.gz  -iso -joliet
hdiutil: create: unknown option "-iso"
Usage:  hdiutil create <sizespec> [options] <imagepath>
    hdiutil create -help

I've also tried with and without the option makehybrid.

How do I create an ISO of a file (and not a directory)?

I want to avoid unzipping and then building the ISO because filenames and permissions are changed (This is older software that's not as stable as it is today).

  • Did you try wrapping your command with sudo? It may be that hdiutil is trying to write temp-files to a place were it does not have access. Nov 12, 2015 at 11:14
  • The source for hdiutil -makehybrid needs to be a directory or disk image (see manpage); maybe try extracting the archive with -p option passed to tar to preserve permissions/owners.
    – mtklr
    Nov 12, 2015 at 14:47

2 Answers 2


You can't create an ISO image from a non-image file. hdiutil and especially hdiutil makehybrid expect an image or a directory (not necessarily containing files!).

But you don't have to unzip/unarchive anything. Just create a folder with the name MAKE, move the gz file into it and then enter hdiutil makehybrid -o ~/make.iso ~/MAKE -iso -joliet. The resulting mounted image just contains the file make-4.1.tar.gz.

The permissions of the iso mounted to the file system of the Fedora VM should then be:

# ls -al /dev/cdrom*
lrwxrwxrwx 1 root root 3 [date] /dev/cdrom -> devicename #e.g. sr0 or something similar, it depends on your distro and the /etc/fstab file inside the VM

and the file make-4.1.tar.gz "inside" is world readable.

After copying the gz file to your user folder in the VM, unarchive/unzip it.


To reduce Klanomath's answer to a recipe:

mkdir -p /tmp/MAKE
rm -f ./make.iso
cp make-4.1.tar.gz /tmp/MAKE/make-4.1.tar.gz
hdiutil makehybrid -o ./make.iso /tmp/MAKE/ -iso -joliet

Then, mount make.iso in the virtual machine.

Be aware of the race conditions when using /tmp. They are not a worry to me because this is for local testing, and not production.


You must log in to answer this question.