23

I'm having trouble figuring out how I would write an ISO disk image to a USB flash memory device from the command line in Ubuntu. I have the Startup Disk Creator utility, but I need to be able to script this job.

I found the usb-creator package, but there doesn't seem to be any documentation and python -m usbcreator gives usbcreator is a package and cannot be directly executed.

I looked at unetbootin, but it seems like another GUI-only utility.

Is there some obvious solution which I'm overlooking?

12

I know you can do this in UNetbootin gui. I haven't tried it myself, but it looks like you can do it by command-line, as well:

http://sourceforge.net/apps/trac/unetbootin/wiki/commands

unetbootin method=diskimage isofile="my.iso" installtype=USB targetdrive=/dev/sdc1

2
  • ^ the answer I was going to give. unetbootin automagically handles the necessary steps for moving most ISO files to USB media.
    – MikeyB
    Jul 27 '11 at 1:19
  • For me on Fedora Core 23 it launches unetbootin gui but with the settings provided on the command line. Jan 18 '16 at 17:23
26

Are you sure if the ISO image will work on a USB device? Some ISOs which will boot if they are on a CD/DVD will not actually boot from a USB device.

Assuming the ISO you want has a bootloader that will work, then it should be as simple as dd if=filename.iso of=/dev/usbdevice but this will replace anything that is currently on the USB disk.

If you wanted to place the ISO onto an existing filesystem on the USB drive and boot it, then setting it up may be a lot more complicated.

4
  • Nope, this is perfect; exactly what I needed. Thanks!
    – mikepurvis
    Jul 27 '11 at 19:23
  • 1
    Ack... not quite. This method loads the filesystem, but it doesn't seem to make the drive bootable the Startup Disk Creator tool does (with the same ISO).
    – mikepurvis
    Aug 1 '11 at 17:21
  • 2
    As I mentioned it does somewhat depend on what boot-loader is present on the ISO and how it is configured. Some images will work just by doing a dd, others will not. For example a Debian Live will work fine by using the dd method. To be sure you can try it, or read the docs for whatever iso you are talking about to see if it is supported.
    – Zoredache
    Aug 1 '11 at 17:26
  • 2
    @Zoredache to check if iso is bootable you can use file. If bootable, it will print bootable at the end of the output line. Jan 18 '16 at 17:28
11

From Linux there's a very easy way to create a bootable memory stick from an ISO image -- and this should work for any OS. Assuming the memory stick is /dev/sdb and the image is /home/username/Downloads/system.iso.

Just do this (as root):

dd if=/home/username/Downloads/system.iso of=/dev/sdb

Much easer than unetbootin or any other method I've heard of.

3
  • This assumes the bootloader is included in the iso, which is not generally the case.
    – mikepurvis
    Mar 25 '13 at 16:56
  • 6
    Only important step is to write of / outputfile to device, not a partition. I.e. of=/dev/sdb and NOT of=/dev/sdb1. (Just wanted to comment on this problem, nothing is wrong with your post :o))
    – sjas
    Nov 26 '14 at 14:06
  • This worked for me when trying to install Debian 9 on an old Asus Eee PC netbook. Unetbootin produced drives that didn't boot at all in this case.
    – unfa
    Nov 24 '17 at 22:12
1

I use the following procedure:

1. Reading the block size and the volume size:

[root@testserver ~]# isoinfo -d -i /path_to_iso | grep -i -E 'block size|volume size' 
Logical block size is: 2048
Volume size is: 327867

2. Running dd with the parameters for block size and volume size:

root@testserver ~]# dd if=/path_to_iso of=/dev/your_usb_device bs=block-size-from-above count=volume-size-from-above

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.