After installing custom packages and customizing my Yún I verified the instructions below allowed me to create a backup image, reset Linino to its default state, then restore my backup image, and all my packages/settings returned. I don't have more than one Yún to test with but this method should still work.
This cloning method will duplicate the same 3 partitions that are contained in the default Linino Upgrade Image: rootfs, rootfs_data, and kernel. This method doesn't modify the u-boot-env or art partitions, so the MAC addresses for your different Yún's should remain unmodified and unique.
Cloning Instructions:
NOTE 1 - the backup image name you create must end in: squashfs-sysupgrade.bin
NOTE 2 - make sure you specify a '7' for the mtd7ro device
NOTE 3 - if your created backup image is not exactly 16,318,464 bytes then do NOT attempt to restore it
- Bootup the Yún you want to take an image of with a sdcard formatted/inserted then execute:
umount /overlay
dd if=/dev/mtd7ro of=/mnt/sda1/mybackup-squashfs-sysupgrade.bin
sync
halt (if you plan to disconnect power and remove the sdcard)
-
only if your backup image is exactly 16,318,464 bytes in size then proceed to the next step
-
Insert the sdcard into another Yún then follow the Yún sysupgrade tutorial.
Additional notes if you're interested:
When using a hex editor to look at either the default Linino image or your backup image, here are offsets/sizes for your reference:
rootfs (RO SquashFS on /rom) begins at offset 0x000000 bytes 7,143,424 (0x6d0000)
rootfs_data (RW JFFS2 on /overlay) begins at offset 0x6d0000 bytes 7,864,320 (0x780000)
kernel begins at offset 0xe50000 bytes 1,310,720 (0x140000)
You'll notice when looking at offset 0x6d0000 in the default Linino image it is filled with 7.5 MB worth of 00's because the JFFS2 partition doesn't yet contain any modified overlay data. The marker to signify the beginning for the new JFFS2 filesystem is 0xdeadc0de ... so someone on the OpenWRT team was having some hexspeak fun. 
When I created a backup image using the above steps its file size was 16,318,464 bytes but the image size for the default Linino 1.0 Upgrade Image is 16,177,994 bytes. If you use a hex editor and look at the backup image you've created you'll see there are FF's as padding at the very end; the actual data for the kernel does not take up all 1,310,720 bytes that have been allocated for the kernel partition so the FF's are there to fill up the remaining kernel partition space. In the default Linino image these padding FF's have been removed and it may be that the Linino/OpenWRT image build process strips those FF's from the .bin file automatically (or perhaps more likely is that 3 partition .bin files were joined together to create the final .bin image, so the trailing padding FF's never existed in the first place at the end of the kernel partition/image).