There are many reasons this can happen, but this one I believe is unique in terms of searching the internet for the error. We’d see a newly imaged (or restored from backup) ZFS-based server boot fine then hang here:
Trying to mount root from zfs:zroot
After banging my head into it for some time thinking it was a zpool import/cache file issue, I finally enabled verbose booting.
It turns out the
/dev directory was not being restored or created because it was considered a separate filesystem. We use
--one-file-system with tar to only backup specific volumes. With no
/dev directory the system would not proceed, but it also didn’t report any error until verbose booting was turned on (something commonly forgotten).
Hopefully this helps others!