How to make a backup copy (ISO image) of a CD or DVD using the MacOS dd command

If you want to make a backup copy (an ISO image) of a CD or DVD on a MacOS system using the Unix dd command at the Mac Terminal command line, I’ll demonstrate the process in this tutorial.

Step 1: Insert a CD or DVD

Assuming that you’re using an external CD/DVD drive, the first step is to connect your drive to your computer, and then insert a CD or DVD. If you insert a movie or music CD and an application automatically starts playing, quit that application.

Step 2: Find the CD/DVD identifier

The first thing you need to do is find the “identifier” of your CD/DVD device. An identifier is just the name of the special file under the /dev directory that refers to your CD/DVD drive.

To find the identifier, start the Mac Terminal application, then use the diskutil list command, as shown in this example:

$ diskutil list

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage MacOS                   499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS MacOS                  +499.1 GB   disk1
                                 Logical Volume on disk0s2
                                 3F65B80C-D17A-4803-BDF9-AB184587DAC4
                                 Unlocked Encrypted

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            DVD_TITLE_HERE         *7.5 GB     disk2

In my case, the last entry is the entry for my DVD drive — which you can tell in a variety of ways, including the words external and DVD, as well as the size — and the identifier is disk2. This means that the device that the Mac/Unix system uses to communicate with the DVD drive is /dev/disk2. That’s all you need to know for this step.

Step 3: Unmount the drive

The next thing you need to do is to unmount the CD/DVD drive. Because my identifier is disk2, I use this command to unmount my drive:

$ sudo umount /dev/disk2

After entering my sudo password, the drive is unmounted. If you happen to have a Finder window open, you’ll see that the drive disappears from the “Devices” section of the Finder.

Step 4: Copy the DVD with the dd command

The final step of the process is to make a copy of your CD or DVD with the Unix dd command. This command reads from the device file /dev/disk2 and writes its output to a file in the current directory named MyDisk.iso:

$ dd if=/dev/disk2 of=MyDisk.iso

Once you hit [Enter], the backup process will start. I’ve been backing up a few DVDs today using an external USB 2.0 DVD drive, and I’ve found that the process takes 30-60 minutes, depending on the size/contents of the DVD. You can also try other options with the dd command, such as trying to control the block size, but I’ve found that the default command runs faster than any block size command arguments I’ve tried.

Step 5: Eject your media

Now there’s just one more step. Because you unmounted the DVD, you have to do something to eject the DVD from the DVD drive. This step depends on the DVD player you’re using, but if you’re lucky you may just be able to press the Eject button on your keyboard. Give that a try first.

Assuming that doesn’t work, and you’re using an external drive, another simple process is to briefly unplug the DVD drive from your system, and then plug it back in. After you plug it back in, MacOS will mount it for you, and then you can press the Eject button on your keyboard, the Eject button on the DVD drive itself, or the Eject icon in the Finder.

If that’s too much physical labor, you can also re-mount the DVD from the command line, and then eject it as described in the previous paragraph, but I haven’t looked into the mount command (or commands) yet.