Dated
Category Tech
Tags mac
  1. Insert your CD/DVD. Check that MacOS has mounted it in as a Volume (It will appear on the Desktop).

  2. Identify which device the CD/DVD is.

    This is the trickiest part of the whole procedure. First, use drutil to get some comprehensive information about your CD/DVD

    $ drutil status
    Vendor   Product           Rev
    HL-DT-ST DVDRW  GS21N      SA15
    
    Type: CD-ROM               Name: /dev/disk4
    Sessions: 1                  Tracks: 1
    Overwritable: 00:00:00         blocks:        0 /   0.00MB /   0.00MiB
    Space Free:   00:00:00         blocks:        0 /   0.00MB /   0.00MiB
    Space Used:   30:12:40         blocks:   135940 / 278.41MB / 265.51MiB
    Writability:
    

    Note the device name here (/dev/disk4) and the "Space Used" (265.51MiB). If you do everything right, your iso file should end up with the size that you see here.

    /dev/disk4 may not be the right device yet, however. It may be that you have to use a subdevice. Check which device MacOS used for mounting the CD. In my example, I got this:

    $ df -h
    /dev/disk4s1s2      50Mi   50Mi    0Bi   100%    /Volumes/hp LaserJet 1010 Series
    

    This CD is pretty special. It contains printer drivers for both Windows and Mac, and is split in two parts. Mac OS only mounted the Mac-readable part, which is on device /dev/disk4s1s2. As you can see, this part is only 50 MiB, which is less than the 266 MiB that we're expecting. If you check which devices actually exist in /dev/, you'll find

    /dev/disk4
    /dev/disk4s1
    /dev/disk4s1s2
    

    The one you have to use here is /dev/disk4s1. This one contains the proper file system of the whole CD.

    In general, if you see something like /dev/disk4 in the output of df -h, that's what you should use. If you see something like /dev/disk4s1 or /dev/disk4s1s2, you'll most likely have to go with /dev/disk4s1.

  3. Create the ISO file

    $ cat /dev/disk4s1 > file.iso
    

    You may get this error message:

    cat: /dev/disk4s1: Resource busy
    

    If you do, use the following command:

    $ diskutil unmountDisk /dev/disk4s1
    Disk /dev/disk4s1 unmounted`
    

    After that, cat should work.

  4. Test the ISO image by mounting the new file (or open with Finder):

    $ hdiutil attach file.iso