It would be easier to use a local snapshot to restore vol0:
find the snap that fulfills your demands via
snap list vol0
let's say nightly.2 is what you need
snap restore vol0 -s nightly.2
If there is a snapmirror relation you will see the last common snapmirror snapshot as well. Its name is something like <filername(serialnumber)>_<volname>.<#_of_snapmirror_update>
If this is a valid state of data you can use this snapshot as well.
This will be pretty fast and the filer will be rebooting.
If you are forced to do a restore from snapmirror, I would not bother break the snapmirror, then resync in opposite direction, then break mirror again, then resync once more in opposite direction to get back to normal state.
I would let snapmirror keep running and
1.mount the root share /vol/vol0 and the snapmirror destination on a UNIX machine (or use CIFS C$ Share, create a share on the snapmirror destination and connect both on a Windows host)
2.rename the original source /vol/vol0/etc to etc_old
3.copy the whole /etc from the snapmirror destination to /vol/vol0 (resp C$ Share)
4.reboot the filer
If you are content with the result, you can delete etc_old
Restoring backup image directly to /vol/vol0 by ndmp
I would simply cascade the vol0 snapmirror back to original filer as vol0_new, once in sync break mirror and rename vol0 to vol0_old and vol0_new to vol0 then use vol options vol0 root command to boot from retsored vol0 and reboot. But then I like snapmirror and dont like UNIX much.