How do I create a bit identical image of a usb stick?

dd it!

Usage would be something like sudo dd if=/dev/sdb of=~/USB_image where /dev/sdb is your usb drive as listed by sudo fdisk -l and ~/USB_image is the image file where the copy will be made (a path where the image file will be created).

To restore the image to another USB drive just invert the process: sudo dd if=~/USB_image of=/dev/sdb will restore ~/USB_image to the device sdb. Just make sure that the new USB drive is as big or bigger than the original one.

You can also mount the image file you just created into a path without need to restore it first to another USB drive with mount ~/USB_image /mnt/USB_image -o loop.


Use ddrescue. It will continue after errors, where dd will simply fail.

Additionally, ddrescue is in the repos. On 13.04, I typed sudo apt-get install gddrescue to install.

Use sudo fdisk -l or dmesg to figure out the device location eg: /dev/sdb, then run a command such as

ddrescue /dev/sdb /home/user/desktop/bkp.img

there are many options to ddrescue, and you may want to read the man pages. Also I'm not sure why your hardware is failing, and dumping dd. One bad block could make dd quit, but so could intermittent power failures. dmesg may tell you more about hardware failures you may be experiencing.

MAKE SURE the device is not mounted! when you try to do data recovery, imaging, etc. This may cause problems.

There is a lot of things that can go wrong in data recovery. Post back if you have problems. testdisk is a nice utility for doing data recovery once you have an image.

Just for clarity, is this a usb hard drive or usb (solid state memory) device?

I/O errors are typically indicative of hardware malfunctions rather than file-system corruptions.

Also try obtaining the SMART data analysis of the device, if it is available. This may tell you things like if the device his been over heating, powered on for a long time, has bad sectors, exposed to more than X no. of Gs etc.


You can create an image of an USB stick (or another device) by using dd.

E.g.

dd if=<usb device> of=usb.img

You can add more parameters to dd to optimize the command (e.g. bs).