OK, después de un poco de revolver, encontré una forma de deshacerme de este problema, al menos temporalmente, es bastante simple, sin embargo, no tengo mi sistema configurado con btrfs, así que no puedo confirmar esta solución.
comentar o eliminar esta línea:
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
o
if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env \
recordfail; fi; fi
en este archivo
/etc/grub.d/00_header
entonces corre
update-grub
la razón por la que no se edita /boot/grub/grub.cfg
directamente es que se sobrescribirá cada vez que se actualice grub, en este caso solo tendría que "rehacer" la solución si se actualizan los paquetes comunes de grub.
Este es el error en la plataforma de lanzamiento si desea agregarse el error # 736743
Citando a Colin Watson del informe de error
Esto es en realidad un mensaje de error engañoso: lo que sucede es que la implementación btrfs de GRUB no implementa la interfaz de enlace de lectura de archivos para devolver las listas de bloqueo al código de llamada. Publiqué en grub-devel sobre esto y el responsable del mantenimiento señaló que, incluso aparte de los problemas de dispositivos múltiples, escribir en btrfs desde GRUB es fundamentalmente riesgoso porque:
múltiples instantáneas pueden usar el mismo bloque, cada árbol que use un bloque dado contendrá su suma de verificación, y así sucesivamente.
Sin embargo, btrfs reserva espacio al inicio para el cargador de arranque. Este espacio es más de lo que GRUB necesita para integrarse, por lo que podríamos usar 1 KB de él para un bloque de entorno.
En cualquier caso, este no es un problema nuevo que surgió del uso de subvolúmenes, ni impide el arranque (aparece un mensaje espurio "Presione cualquier tecla para continuar", pero si lo ignora, se iniciará de todos modos). Bajando de categoría a wishlist.
Espero que esto ayude