Copying an SD card using dd does not copy exactly
dd
has a long history of creating exact bit for bit duplicates. diff
can be used to prove this quite handily
Note: you don't mention what version of Ubuntu you are running. The only reason that makes a difference is that the status switch usage has changed.
Ubuntu 14.04 Excerpt from man dd
status=WHICH
WHICH info to suppress outputting to stderr; 'noxfer' suppresses
transfer stats, 'none' suppresses all
Ubuntu 16.04 excerpt from man dd
status=LEVEL
The LEVEL of information to print to stderr; 'none' suppresses everything but error messages, 'noxfer' suppresses
the final transfer statistics, 'progress' shows periodic transfer statistics
All that aside, the only things I can think of that would result in your image file having a different bit pattern than your source is either:
User Error:
A) An attempt to image a mounted partition (an exceedingly bad idea)
B) Failure to sync
leaving data behind in the kernel buffer.
or
Hardware failure:
C) A failing area on the disk where you stored the image. This implies impending failure of the drive (I hope you have backups, if not, hop to it!)
D) A dodgy connection providing poor connectivity to either the source or target media device
You would be wise to check the smart status of the drive you stored the image on.
The fact that dcfldd
also resulted in a mismatch leads me to believe that you have either a failing cable or a failing storage media (whether on the input media or the output media)