OK depois de um pouco de remexer ao redor eu encontrei um how-to também se livrar deste problema, pelo menos temporariamente, é bastante simples, porém eu não tenho o meu sistema de configuração com btrfs, então eu não posso confirmar essa correção .
comente ou remova essa linha:
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
ou
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env \
recordfail; fi; fi
neste arquivo
/etc/grub.d/00_header
execute
update-grub
o motivo para não editar /boot/grub/grub.cfg
diretamente é que ele será escrito toda vez que o grub for atualizado, neste caso você terá que "re fazer" a correção se os pacotes comuns do grub forem atualizados.
Este é o bug no launchpad se você quiser se adicionar bug # 736743
Citando Colin Watson do relatório de erros
Esta é realmente uma mensagem de erro enganosa: o que está acontecendo é que A implementação btrfs do GRUB não implementa o gancho de leitura de arquivo interface para retornar blocklists ao código de chamada. Eu postei para grub-devel sobre isso eo mantenedor upstream apontou que, mesmo para além dos problemas com vários dispositivos, escrever no btrfs a partir do GRUB é fundamentalmente arriscado porque:
o mesmo bloco pode ser usado por vários instantâneos em cada árvore que usa um determinado bloco conterá sua soma de verificação e assim por diante recursivamente
No entanto, o btrfs reserva espaço no início para o gerenciador de inicialização. este espaço é mais do que o GRUB precisa para se inserir, e assim poderíamos usar 1KB para um bloco de ambiente.
Em qualquer caso, este não é um problema novo que surgiu do uso subvolume, nem impede a inicialização (você recebe um falso "Pressione qualquer tecla para continuar "prompt, mas se você simplesmente ignorá-lo, ele irá inicializar de qualquer maneira). Desclassificação para a lista de desejos.
Espero que isso ajude