Existe uma variável de ambiente que corrige isso. A questão da minha leitura parece ser que o Grub gosta da idéia de 'suportar' o zfs, mas não a idéia de corrigir problemas relacionados ao zfs no Grub. Especificamente, seu erro é lidar com erros em termos de encontrar coisas.
Por exemplo, as ferramentas do grub que acompanham o Ubuntu 16.x não conseguirão encontrar / boot em um volume ZFS sem alguma intervenção do usuário e, em seguida, escreverão alguns (mas não todos) arquivos necessários de qualquer utilitário usando a pasta / boot que acabou de dizer que não conseguiu encontrar.
De qualquer forma ...
To check if you have commit (should see full paths):
ZPOOL_VDEV_NAME_PATH=1 zpool status
If so you can do:
ZPOOL_VDEV_NAME_PATH=1 grub-whatevs ....
Você pode passar a variável como entrada para os utilitários necessários do grub, ou você pode especificá-la como uma variável do shell no .bashrc ou .profile do root ou algo assim com ...
export ZPOOL_VDEV_NAME_PATH=YES
A variável faz com que o zpool relate caminhos completos, em vez de caminhos relativos / dev para os discos que podem ou não funcionar corretamente com o zfs. Os utilitários do Grub verificam o zpool status dos pools do zfs para localizar os discos que os contêm. Portanto, alterar a saída do zpool status corrige o grub.
Concordo que os usuários não deveriam ter que lidar com isso, em referência ao comentário da femulator. A solução real? O mesmo que qualquer outro projeto de código aberto que defina em bugs que nunca são consertados. Bifurque-o, conserte-o e pare de usar o projeto de origem / biblioteca / o que for. A maneira FOSS de "demitir" alguém, em outras palavras;). Aparentemente, o Debian estava ciente deste bug em particular há sete anos.
Essa foi a única coisa que me impediu de migrar com sucesso um pool de boot do FreeBSD RaidZ para o Ubuntu. Se alguém tentar algo semelhante, o processo é relativamente simples, desde que você entenda bem o ZFS para ignorar as partes da documentação do Grub e do zfsonlinux que estão erradas (como configurar o conjunto de dados raiz para não montá-lo automaticamente, eh ... "Como exatamente isso vai arrancar então?). É um pouco irônico que o Ubuntu aponte em seus documentos que o gerenciador de inicialização é o 'recurso' mais inseguro do Linux, o que é verdade, suponho, mas neste caso também é uma falha gritante do Ubuntu. Levaria uma ou duas horas para migrar um pool BSD ZFS para outro sistema operacional se eu pudesse fazer isso usando os utilitários Sun / Solaris que realmente funcionam. O problema é que eu tive que usar utilitários Linux (como o Grub) que não funcionam (ou mal) em algum momento, então existe a falha dos outros dois dias que passei corrigindo isso. O Ubuntu seria muito melhor se não precisasse do grub para arrancar ...