Basicamente, não há nenhuma maneira oficial de recuperar além de restaurar a partir do backup. Mas há um recurso do ZFS chamado retroceder, que pode ser possível remover transações da piscina a um ponto em que a piscina está funcional novamente. O texto a seguir é do ZFS Internals blog part # 11
DO NOT TRY IT IN PRODUCTION. USE AT YOUR OWN RISK!
zpool import -FX mypool where options mean:
* -F Attempt rewind if necessary.
* -X Turn on extreme rewind.
* -T Specify a starting txg to use for import. This option is intentionally undocumented option for testing purposes.
Primeiro, tentei recuperar usando este procedimento de retrocesso. Não funcionou para mim, talvez não esteja implementado no zfs-fuse para Linux. De acordo com o ZFSOnDiskFormat.pdf, há um array com 128 valores possíveis para o txg. Na minha versão zfs-fuse versão 0.7.0 -T não existe. Então eu modifiquei o zfs-fuse para listar o txg disponível no array do uberblock e para permitir iniciar do txg com um ID específico. Usando o zfs-fuse modificado, consegui acessar sistemas de arquivos no ZFS.
Eu recuperei meu pool usando esse método. Assim, é possível recuperar, mas é um método não suportado e tem que ser feito com muito cuidado, pois é muito fácil mexer com as coisas ainda pior. Minha opinião é que a Sun / Oracle deve fornecer o fsck para o ZFS para essas situações.