If you want to burn a Windows or Linux (Ubuntu, Arch) installer .iso file to a USB drive on macOS, it's not that hard.

The most important thing is really just to make sure tha the drive you're going to erase is what you intend.

0. Download the ISO

If you don't have the CD/DVD .iso file you'll need that first, duh.

1. Open Terminal.app

Terminal is where all the magic happens.

I like to use Spotlight (cmd + space) to open it. It's in the Applications folder, if you prefer that route.

2. Identify your USB drive

Unmount and unplug your USB drive - just in case you got eager and have it in already. (I recommend ejecting and unplugging any other drives as well)

In Terminal.app list all of the drives in your computer:

diskutil list

You should see something similar to this:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Internal Drive          999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.1 MB   disk0s3

Take note of what you see.

Then plug in your USB drive, and run it again:

# Find the SD Card in the disk list
diskutil list

You should see a new disk that wasn't there before, such as this:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Internal Drive          999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.1 MB   disk0s3

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk4
   1:                 DOS_FAT_32 NO NAME                 15.6 GB    disk4s1

In my case I have a new disk, /dev/disk4 that's almost 16 GB and has the name "NO NAME".

Important: You should triple check that the size and name match what you expect.

3. Unmount (not eject) the disk

Don't click the eject button, as it may power off the drive. Instead you need to unmount it.

Here you'll use the name that looks like /dev/diskX:

# Unmount
# diskutil unmountDisk /dev/
diskutil unmountDisk /dev/disk4

4. Partition & Burn the ISO to USB

For this step you'll need the "r" version of your disk. In my case I'll use /dev/rdisk4 rather than /dev/disk4.

Why? No one knows, but it's a lot, lot faster that way.

Important: The drive is about to be entirely erased. Make sure you've got it right. (I recommend unplugging any other drives)

# Wipe the partition
# DANGER: replace disk4 with YOUR disk, or suffer the consequences
# sudo diskutil partitionDisk /dev/ 1 MBR "Free Space" "%noformat%" 100%
sudo diskutil partitionDisk /dev/disk4 1 MBR "Free Space" "%noformat%" 100%

# write img out to /dev/RDISKx
# sudo dd bs=1m if=$HOME/Downloads/Win10_1909_English_x64.iso of=/dev/
sudo dd bs=8m if=$HOME/Downloads/ubuntu-18.04.3-desktop-amd64.iso of=/dev/rdisk4

That'll take several minutes.

If you want to check progress at any given time, you can run this command in another instance of Terminal:

sudo kill -INFO $(pgrep ^dd$)

That progress will be printed to the original screen, in bytes. If you divide that number by (1024^2), that will tell you how many MB have finished copying (1024^3 for GB).

5. Enjoy (and don't initialize)

When that's done you should have a normal, bootable USB drive. Congrats.

If you're creating a Linux or NTFS USB then you'll get a prompt about the disk not being recognized and do you want to initialize (format) it.

... DON'T DO IT - or you'll have to start over.


By AJ ONeal

If you loved this and want more like it, sign up!


Did I make your day?
Buy me a coffeeBuy me a coffee  

(you can learn about the bigger picture I'm working towards on my patreon page )