84

I have tried to copy an ISO file to a USB drive. I am unable to do it with Disk Utility. How can I copy the ISO file to a USB drive?

enter image description here

But I get the below. I have enough space in the 16GB USB drive for the 2GB ISO file. What am I doing wrong?

enter image description here

Debugging

Bmike commented "You can isolate the scanning of the image from the restoring to see if the problem lies with the image or the copy. Images -> Scan Image for Restore... from the menu of Disk Utility." but the procedure fires the error below. What does it mean?

enter image description here

2
  • You can isolate the scanning of the image from the restoring to see if the problem lies with the image or the copy. Images -> Scan Image for Restore... from the menu of Disk Utility.
    – bmike
    Nov 29 '12 at 18:11
  • 5
    The reason it won't work this way is because OS X does not natively read the file format of that particular iso, which is likely ntfs. The reason dd works is because it is a low-level block copy utility, thus the file system is irrelevant.
    – chillin
    May 11 '14 at 18:00

11 Answers 11

30

From http://www.youtube.com/watch?v=fu2g_E2ZK8A:

Screen shot from video

You can also can try this. It works for me. This is a rather "raw" copy and will typically not work for a bootable USB, but will work for other cases.

Here is a transcription of the commands from the screen shot for your copy/paste pleasure.

diskutil list                                            # shows disks
hdiutil convert -format UDRW -o destino.img origen.iso   # convert to dmg
sudo dd if=destino.img.dmg of=/dev/rdisk1 bs=1m          # copy to USB on rdisk1
6
  • 1
    ...gracias +1 and bs=1M to speed up the transfer for larger files NB comments.
    – hhh
    Dec 2 '12 at 0:06
  • 9
    Whilst your answer may theoretically answer the question, it would be preferable to include the essential parts of the article in an answer below, and provide the link for reference
    – Pfitz
    Dec 2 '12 at 8:07
  • @Pfitz point 2:28 should have all essential info, created a screenshot of the point to my answer but perhaps useful to add here also.
    – hhh
    Dec 10 '12 at 2:13
  • 1
    need away to eject first i think
    – tofutim
    Apr 5 '18 at 21:22
  • 1
    Is it neccessary to convert iso to dmg? On Linux dd can write ISO files directly to media. What's the difference?
    – oxfn
    Jun 26 '19 at 11:20
208

IMHO the easiest way is in terminal:

  • First run diskutil list
  • then insert your usb stick
  • and run diskutil list again to see the disk node (e.g. /dev/disk2).
  • Now run diskutil unmountDisk /dev/diskN
  • and do sudo dd if=/path-to.iso of=/dev/rdiskN bs=1m (or bs=1M with homebrew)
  • When finished diskutil eject /dev/diskN
14
  • 36
    Using of=/dev/rdiskN (with an "r" for "raw") instead of of=/dev/diskN is much faster. I edited the answer. May 11 '14 at 16:59
  • 7
    I ran this with a windows xp iso image and tried to boot with it -- no luck. May 11 '15 at 2:28
  • 72
    While dd is running, press Ctrl-T to see its progress. If your bs=1m then 182+0 records out means 182 MB have been transferred.
    – fletom
    Feb 15 '16 at 6:00
  • 11
    This method does mostly work, it creates a (typically, depending on what you ISO was) a UDF formatted USB drive. These are readable in OS X, and probably Linux (but not windows). But (and note well), do not do this for a USB you want to "boot" from (ex: windows install disk) because those have to be reformatted to FAT32:superuser.com/q/1063220/39364
    – rogerdpack
    Apr 8 '16 at 22:52
  • 2
    This method didn't work for me either to boot Windows 10's install. I had to use @rogerdpack's solution.
    – David
    May 8 '16 at 23:47
10

If you want your USB to be "bootable" when all is said and done (ex: windows install disk), you're going to either want to use the Boot Camp Assistant (only check the "Create a Windows 7 or later version install disk" checkbox, then follow the prompts, it will create a FAT32 (i.e. bootable) USB version of your ISO file).

Some ISO's are created "special" to not need this, but not all are (ex: windows install disks). Details: https://superuser.com/q/1063220/39364

I.e. dd is not always enough. Especially for windows install .iso's.

9

You can use an open source tool named UNetbootin.
Also you can see an step-by-step tutorial with images by Ubuntu in here.
enter image description here

3
  • Note that UNetbootin does not support UEFI mode disks, so if you just want to install on one partition of an already-formatted GPT disk (like if you have Windows 8 or you want to dual-boot with a Mac's internal HD) then this won't work.
    – Duke
    Oct 29 '16 at 5:54
  • 3
    In my experience UNetbootin creates broken installers. Tested with CentOS, Debian and Ubuntu on a USB flash drive. All installers boot fine, but then experience problems launching the install process. Jul 28 '17 at 20:00
  • Works like a champ if your distro appears in the dropdown
    – Benjineer
    Jul 12 '19 at 12:35
7

This thread here outlines a graphical way of turning a USB drive into a boot disk. The user jbdjunk mentions the proceduce below, copy-pasted from the earlier site.

  1. Open Disk Utility
  2. Plug in USB
  3. Format USB to Mac Extended (Journaled)
  4. Create Partition on USB [GUID for Intel chips, APM for PPC]
  5. Unmount created Partition
  6. Drag and Drop disk image (dmg or iso) into Disk Utility
  7. Open disk image (double click or button in DU)
  8. Select opened disk image on left menu
  9. Click over to Restore
  10. Drag and drop selected image into source field
  11. Drag and drop (unmounted) USB partition into destination
  12. OK (may have to type in admin passwords and such)
  13. Wait
  14. Enjoy!
2
  • The above method worked under OSX El Capitan with a .dmg image. Jan 6 '16 at 13:11
  • 3
    Why Mac Extended (Journaled) vs MS-DOS FAT? Oct 26 '16 at 17:02
4

You can find the Debian-style-/dev/sdb location after $ sudo port install watch and then getting the address from the kernel ring buffer with $ sudo watch --interval=1 'dmesg|tail' so

enter image description here

now you know the address to be something like /Volumes/disk1s1 and for the mount-point like /Volumes/Untitled 1 but Apple requires some syntactic sugar in $ sudo umount /Volumes/UNTITLED\ 1/ umount(/Volumes/UNTITLED 1): Resource busy -- try 'diskutil unmount' but it won't stop us! So everything as one-liners below, enjoy!

$ sudo watch --interval=1 'dmesg|tail'
$ sudo diskutil umount /Volumes/UNTITLED\ 1/
Volume UNTITLED on disk1s1 unmounted
$ sudo dd if=en_windows_8_x86_dvd_915417.iso of=/dev/disk1s1 bs=1m 

This so far is very close to working with distros such as Ubuntu here. Now we make only a small difference to this procedure to get it working with Apple computers, namely converting the ISO into special format usually labelled with DMG or just IMG.

Apple way

The only difference to Apple is that you need to make the ISO file into special DMG file and upload that. An answer provided a video that solved the issue but this screenshot should contain all essential.

enter image description here

12
  • ...so here I did not even try to solve the original GUI problem (there may be so many reasons for malfunctioning!), I chose the Unix -way of doing it. The error probably had something to do with some GUI thing that I cannot yet understand -- could someone help with the original err? Why did it not work like the above?
    – hhh
    Nov 29 '12 at 22:59
  • ...it is getting too long time to burn the ISO: A) it may be that I have poor USB stick (slow writing time) but it may be that there is clearly something broken in the system -- if this method and the GUI method do not work, it is probably not a good sign or?
    – hhh
    Nov 29 '12 at 23:18
  • 3
    The command can be improved, try using the raw block device and setting a decent block size: sudo dd if=en_windows_8_x86_dvd_915417.iso of=/dev/rdisk1s1 bs=1m
    – stuffe
    Nov 29 '12 at 23:26
  • 2
    You can also convert the image file from an ISO into an apple image DMG format, then do it from the GUI. It still needs a trip to the terminal to do the convert tho, as I don't think you can do this in diskutil : StuffeMac:~ stuffe$ hdiutil convert -format UDRW -o ./runtimelivecd.img ./runtimelivecd.iso
    – stuffe
    Nov 29 '12 at 23:30
  • 1
    The default block size is 512bytes, this results in many thousands more read/write operations than is required. Using larger values means it can get it's teeth stuck into it more, for want of a better analogy, you can go way higher if the device merits it (a large hard disk for example) but 1Mb is generally OK for a USB stick which isn't all that fast. Read this for some background forums.freebsd.org/showthread.php?t=11585
    – stuffe
    Nov 29 '12 at 23:47
3

I can confirm that an 'official' Win10 (and also Win 7.1) iso obtained from University contract distributor winds up with a UDF formatted USB stick when copied with dd. Rogerdpack's answer explains why.

Note that some versions of Boot Camp Assistant do not offer a "Win 7 or later" option; Version 3 (.2) and later do. Also, if you have copied your iso fruitlessly to the USB drive (now in UDF format) Boot Camp Assistant may (will) complain about your 8 GB flash being too small. Reformat this drive before using it in Boot Camp Assistant.

2

If you want to make a bootable USB then I would suggest Unetbootin

0

Quoting from the ubuntu article linked earlier:

I think the key is to use the drive (/dev/sdb), not the partition (/dev/sdb1), in the of= option:

sudo dd if=dban.iso of=/dev/sdb bs=1m

4
  • 1
    ls: /dev/sdb: No such file or directory, hmm.
    – nohillside
    Mar 1 '13 at 21:38
  • A little more detail please, perhaps?
    – rogerdpack
    Apr 8 '16 at 22:48
  • 1
    I suspect that questioneer's answer shows a familiarity with other UNIX operating systems, ( FreeBSD, Linux, Solaris, etc. ) where a device file like /dev/sdb usually references the second SCSI drive in the system. The OS X equivalent would be /dev/disk1 or /dev/rdisk1. May 3 '17 at 10:27
  • this should be a comment (and as an answer, needs editing) but he's not wrong. Sep 7 '20 at 5:06
0

For people that don't want to mess with dd and need something that just works there is a free cross-platform open-source (electron-based) app specifically for this:

Source code:

Usage

To flash drag-n-drop the ISO or IMG file to the app window and click Flash.

Privacy warning

The app phones home for anonymous error reports and usage statistics as well as for auto-updates but the corresponding options can be disabled in Settings (the cogwheel icon).

0

There is no perfect tool that hands all ISO images. The approach will be totally different for data iso and bootable iso.

For data ISO, you should check using diskutil + cp commands or commercial software like Roxio Toast or free software Disco/SimplyBurns.

For bootable ISO, the situation is a bit more complicated because different OS images adopts different boot scheme. From my own experience:

UNetbootin is quite good for burning Linux ISO. It is also able to download Linux ISO images.

UUByte ISO Editor is the best fit for Windows ISO and it works quite easily because of intuitive GUI. It only takes 3-5 minutes to create a Windows bootable usb on Mac.

Etcher is good for Linux and Raspbian based image files for embedded development and it also has addition support for SD card.

So the answer is really dependent on what kind of ISO image file you are trying to copy/burn.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .