I have moved a few vol0s over the years and cf takeover is good, because if you get something wrong you still have the original vol0 active in a taken over state to recover from, as long as you do not use cf giveback -f. With care the above procedure will work.
Hi Johny, I usually use snapmirror to copy the root vol from one aggregate to another, once the snapmirror is finished, I quiesce it, break it, remove the baseline snapshots, mark the vol as root which then marks the new aggregate as root.
The either reboot the controller or issue a cf takeover and cf giveback
Good discussion here... most use snapmirror, vol copy or ndmpcopy. Lately I use vol copy -S since less to clean up after. and copies all root with all snaps.. for snapmirror the baseline snaps are an extra clean up step (although good to keep incremental updates prior to cutover if that is goal). For ndmpcopy, many leave (but I prefer to delete) the restore_symboltable file on the target... not needed after the copy and cutover so good to delete and clean up root by removing that file which can be fairly large. But I always like having a snapmirror copy of root on a different aggregate as backup (discussion of that on some other posts here).
Another thought... if 32 bit root and you want to go to 64-bit root ndmpcopy is usually the best method or only method... unless on 8.1 where you can snapmirror 32 to 64 but can't vol copy 32 to 64bit.