Note that FreeBSD’s reroot is inspired by Linux’s pivot root functionality. Reroot is mostly used to boot from a network-booted MDROOT image and then pivot to an NFS share after you’ve done network configuration. I think the UFS boot environments thing also uses it.
The fact that it kills all processes is slightly annoying because it means that you can’t use a FUSE FS as root. That’s not intrinsic to the kernel interface, it’s just part of init. It might be possible to tweak init to run the FUSE FS from the bootstrap tmpfs filesystem before it mounts root.
Holy moly, I’d be sweating bullets during the whole procedure. But it’s really great to know what party tricks FreeBSD has in store.
I gotta do a migration similar in spirit soon. Got a ZFS mirrors setup. Need to destroy one side of the mirrors, create a new mirror array with one side missing, copy files over, format the original side and attach them to the new mirror array to make it a complete ZFS mirror again. I have already pre-ordered every religion’s holy book for that day.
I did a similar thing a while ago, but I had a new hard disk available, so I was able to boot from a recovery medium and copy everything at leisure.
I do remember wondering how hard it would be if I didn’t have the extra disk. Now I know. Thanks for this, I might use it someday.