1. A computer implemented method for data backup, the method for data backup executed on a processor, the method comprising: forming an image of a storage device, wherein contents of blocks of the storage device are restorable from the contents of blocks of the image; generating a first plurality of hash values, each hash value generated from contents of a block of the image; selecting a block of the storage device; generating a hash value from the contents of the selected block; determining whether the hash value occurs in the plurality of hash values; and generating an entry in the image in response to the determination; wherein: selecting the block of the storage device further comprises selecting a plurality of blocks to be backed up; generating the hash value from the contents of the selected block further comprises for each of the selected plurality of blocks to be backed up to the image, generating a hash function value corresponding to contents of that block; and determining whether the hash value occurs in the plurality of hash values further comprises sorting all the generated hash function values and deleting duplicate hash values and comparing the hash function values to identify, out of blocks of the storage device, candidate blocks that might have identical contents with contents of blocks stored in the image.