How to copy an ISO image onto USB with dd
dd if=/path/to/your/isofile of=/your/usb/disk bs=8M status=progress
try this.
updated as @Kimvais and @Kelly Bang suggested
If you want to be able to view the progress or get an ETA, you can add Pipe View (pv) into the mix, e.g.:
dd if=<path to input file> | pv -s <size e.g. 1377M> | dd of=<path to target device>
This will give output like:
850MiB 0:05:18 [6.44MiB/s] [===================> ] 61% ETA 0:03:16
Note: This is a generic, universal approach that should work on almost any *nix system. If you're having trouble with other recommendations, then give this one a try. So you want to run dd (disk destroyer)? Before attaching your block device, cat /proc/partitions; then attach your device and again cat /proc/partitions. The difference will indicate your target device. If there's no difference then you lack the correct driver to recognize it or have a hardware fault.
Here's what mine looks like on my laptop, before and after, respectively:
jcholsap@T430s:~$ cat /proc/partitions
major minor #blocks name
8 0 117220824 sda
8 1 117219328 sda1
11 0 1048575 sr0
253 0 109109248 dm-0
253 1 8077312 dm-1
jcholsap@T430s:~$ cat /proc/partitions
major minor #blocks name
8 0 117220824 sda
8 1 117219328 sda1
11 0 1048575 sr0
253 0 109109248 dm-0
253 1 8077312 dm-1
8 16 30670848 sdb
Use the third column, size in kilobytes, to verify your block device. If you're nervous, and you should be, you can further verify your device with dmesg. Here it is on my laptop:
jcholsap@T430s:~$ dmesg | tail -30
[ 10.197383] thinkpad_acpi: EC reports that Thermal Table has changed
[ 34.599234] random: crng init done
[ 35.133277] rfkill: input handler disabled
[ 9737.190954] usb 4-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 9737.211756] usb 4-2: New USB device found, idVendor=0781, idProduct=5580
[ 9737.211762] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9737.211765] usb 4-2: Product: Extreme
[ 9737.211768] usb 4-2: Manufacturer: SanDisk
[ 9737.211770] usb 4-2: SerialNumber: AA010507161254310422
[ 9737.244492] usb-storage 4-2:1.0: USB Mass Storage device detected
[ 9737.245540] scsi host6: usb-storage 4-2:1.0
[ 9737.245746] usbcore: registered new interface driver usb-storage
[ 9737.247465] usbcore: registered new interface driver uas
[ 9738.259485] scsi 6:0:0:0: Direct-Access SanDisk Extreme 0001 PQ: 0 ANSI: 6
[ 9738.260340] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 9738.260698] sd 6:0:0:0: [sdb] 61341696 512-byte logical blocks: (31.4 GB/29.3 GiB)
[ 9738.260919] sd 6:0:0:0: [sdb] Write Protect is off
[ 9738.260925] sd 6:0:0:0: [sdb] Mode Sense: 53 00 00 08
[ 9738.261142] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 9738.267727] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 9738.496445] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.496450] UDF-fs: Scanning with blocksize 512 failed
[ 9738.505586] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.505589] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.519311] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.519324] UDF-fs: Scanning with blocksize 512 failed
[ 9738.528153] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.528157] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.533493] UDF-fs: INFO Mounting volume 'UDF Volume', timestamp 2011/04/12 09:38 (1000)
[10100.854101] perf: interrupt took too long (2519 > 2500), lowering kernel.perf_event_max_sample_rate to 79250
There's all the details of my thumb drive. Ah, now I'm convinced I have the right device!
But my attached device may have auto-mounted. For dd, that's a problem. So to be certain, let's unmount it with umount (note the difference in spelling). I'll run the command twice because the error message let's me know it succeeded:
jcholsap@T430s:~$ sudo umount /dev/sdb
jcholsap@T430s:~$
jcholsap@T430s:~$ sudo umount /dev/sdb
umount: /dev/sdb: not mounted.
Now, because everything in Linux is treated as a file, dd calls the target block device, in my case /dev/sdb, an output file. So, the option-argument pair to use, here for my thumb drive, with the dd command is of=/dev/sdb. You want to get this right or else dd could mean disk destroyer for you. Here it is on my laptop:
jcholsap@T430s:~$ sudo dd of=/dev/sdb if=/home/jcholsap/centos7.iso bs=4M
There's no output from the running dd command. You'll just get a blinking cursor until it finishes, which can be a long time. If you interrupt the process then you'll have a partial image copy - probably not what you wanted.
SEE ALSO Full documentation at: http://www.gnu.org/software/coreutils/dd or available locally via: info '(coreutils) dd invocation'