Cloning may be of interest (clones can be updated or used for exact copy placement). This is about the JTK1, but some of the information will be of interest:
[url]http://elinux.org/Jetson/Cloning[/url]
These are specific commands on the JTX1 for cloning the root partition:
[url]https://devtalk.nvidia.com/default/topic/898999/jetson-tx1/tx1-r23-1-new-flash-structure-how-to-clone-/post/4784149/#4784149[/url]
Here is more information on JTX1 cloning:
[url]http://elinux.org/Jetson/TX1_Cloning[/url]
One comment about cloning and restoring rootfs…there are more partitions than rootfs. Keep in mind that if you have hidden partitions remaining from a different version of L4T, then you don’t know if they are compatible without testing. Flashing a clone of rootfs using the “flash.sh -r” tool implies hidden partitions will be flashed; flashing clones directly with tegraflash.py is probably slightly faster, but is also unlikely to guarantee compatibility between hidden partitions and rootfs unless you already know the hidden partitions were from an earlier compatible flash.
In the article about the JTK1 it mentions cloning of “all” partitions as a single image…I’m not sure what the command would be to do this with a JTX1, but this too would ensure all partitions are compatible (this would even include customized boot loader changes).
Sometimes if a normal flash has failed there may be a question as to whether it was the flash process or a failure in eMMC. The ability to clone a partition from the stage of a flash where a given partition flash failed (usually rootfs, a.k.a. the “APP” partition) could be used to verify the ability to read eMMC at that location (multiple clones failing at different offsets implies a process failure; multiple clones failing at the same address implies eMMC failure).