The mmccopy
utility is an easier-to-use alternative to dd
for
writing images to SDCards and MMC memory. It has the following
features:
-
Write image data from
stdin
or a file directly to an offset on the device (this is similar todd
except that offsets are specified in bytes instead of blocks) -
Batch up writes into 1 MiB blocks by default to improve transfer rate. (
dd
defaults to 512 byte blocks without thebs
argument) -
Automatically unmount partitions that are using the device. This prevents data corruption either due to latent writes from the mounted file systems or due to image writes being cached.
-
Provide human and machine readable progress similar to using
pv
withdd
, except with the improvement that the percentages track completed writes rather than initiated writes. -
Automatic detection of MMC and SDCards. This option queries the user before writing anything by default to avoid accidental overwrites.
-
Optionally run a TRIM command on the MMC or SDCard before writing to it. This lets you quickly reset the entire memory contents even if you're only going to write a fraction of it. This is only available on devices and SDCard readers that support the TRIM command.
Here's an example run:
$ sudo mmccopy -p sdcard.img
Use memory card found at /dev/sdc? [y/N] y
100%
$
Clone or download the source code and run the following:
./autogen.sh
./configure
make
make install
Usage: mmccopy [options] [path]
-d <Device file for the memory card>
-n Report numeric progress
-o <Offset from the beginning of the memory card>
-p Report progress (default)
-q Quiet
-r Read from the memory card
-s <Amount to read/write>
-t Run the TRIM command on the memory card before copying
-v Print out the version and exit
-w Write to the memory card (default)
-y Accept automatically found memory card
The [path] specifies the location of the image to copy to or from
the memory card. If it is unspecified or '-', the image will either
be read from stdin (-w) or written to stdout (-r).
Examples:
Write the file sdcard.img to an automatically detected SD Card:
mmccopy sdcard.img
Read the master boot record (512 bytes @ offset 0) from /dev/sdc:
mmccopy -r -s 512 -o 0 -d /dev/sdc mbr.img
Offset and size may be specified with the following suffixes:
b 512
kB 1000
K 1024
KiB 1024
MB 1000000
M 1048576
MiB 1048576
GB 1000000000
G 1073741824
GiB 1073741824