Estas instruções são bem completas:
Eu tenho executado um derivado do Debian (LMDE) em uma raiz ZFS por meio ano agora. Ele foi criado pela clonagem de uma instalação regular baseada em ext4 com todos os pacotes necessários em um pool do ZFS, chrooting no pool e recriando um menu grub e um carregador de inicialização. O sistema usa uma partição extendida / boot de ext-3.
Eu gostaria de fazer o mesmo com o Ubuntu 14.04, mas encontrei vários obstáculos.
No entanto, mesmo com o grub.cfg correto, o processo de inicialização aparentemente não recupera o parâmetro bootfs do pool do ZFS; em vez disso, a variável que deveria receber o valor permanece vazia. Como resultado, o initrd tenta carregar o conjunto padrão ("rpool"), que falha naturalmente. No entanto, posso importar o pool manualmente e concluir o processo manualmente.
Se a memória me servir bem, eu também tive que desabilitar o apparmor, para evitar que o processo de inicialização bloqueie após a importação do pool.
Eu estou negligenciando alguma coisa? Apenas para comparação, eu instalei o kernel do Ubuntu 3.13 no meu sistema LMDE, e isso funciona muito bem (isto é, os binários binários do kernel e do grub permitem inicialização bem sucedida sem falhas no LMDE, mas não no Ubuntu).
edit: relatórios de erros do grub: