Este mensaje aparece al salir del menú Grub y antes de la pantalla de inicio de Ubuntu.
¿Cómo soluciono el problema para borrar el mensaje?
¿Y qué significa?
error: Diskfilter writes are not supported
El sistema arranca y parece funcionar bien.
Respuestas:
Es un error!
Este es un error que ocurre en la versión más reciente de Ubuntu Server LTS (Ubuntu Server 14.04 LTS), cuando crea la partición de arranque (o la partición raíz, cuando la partición de arranque no existe) dentro de una partición LVM o RAID .
Puede obtener más información sobre este error en Ubuntu Launchpad: Error # 1274320 "Error: no se admiten las escrituras del filtro de disco" .
Actualización: Este error ya está solucionado en Ubuntu Server 14.04 y algunas versiones más nuevas de Ubuntu. Probablemente, solo necesitas correr
apt-get upgrade
.¿Por qué ocurre este error?
Cuando el sistema se inicia, GRUB lee los
load_env
datos ( )/boot/grub/grubenv
. Este archivo se llama GRUB Environment Block .Del manual de GRUB:
Este comportamiento puede fundarse en
/etc/grub.d/00_header
(update-grub
utiliza este archivo para generar el/boot/grub/grub.cfg
archivo):El problema es que la
save_env
declaración solo funciona en instalaciones simples (no puede ejecutarsesave_env
dentro de un disco RAID o LVM). Del manual de GRUB:La función GRUB recordfail utiliza la
save_env
instrucción para actualizar el estado recordfail (consulte la Ayuda de Ubuntu - Grub 2 , sección "Último arranque fallido o arranque en modo de recuperación"). Sin embargo, en Ubuntu 14.04 (y en versiones recientes de Debian), lasave_env
declaración (dentro de la función recordfail) se usa incluso si GRUB está instalado en un LVM o un RAID.Veamos las líneas de 104 a 124 en
/etc/grub.d/00_header
:GRUB omite correctamente la función recordfail cuando usa sistemas de archivos no compatibles (btrfs, zfs, etc.), pero no omite LVM y RAID en ningún momento .
¿Cómo se protege GRUB de escribir dentro de RAID y LVM?
Para leer / escribir correctamente en un sistema de archivos, GRUB carga un módulo apropiado.
GRUB usa el módulo diskfilter (
insmod diskfilter
) en particiones RAID y el módulo lvm en particiones LVM.Veamos la implementación de lectura / escritura del módulo diskfilter :
Estoy pegando el código aquí (líneas de 808 a 823). La advertencia mostrada en esta pregunta aparece en la línea 821:
La
grub_diskfilter_read
función está implementada (y GRUB puede leer sistemas de archivos RAID). Sin embargo, lagrub_diskfilter_write
función genera unGRUB_ERR_NOT_IMPLEMENTED_YET
error.¿Por qué el uso
quick_boot=0
resuelve el problema? ¿Y por qué es la solución incorrecta?Si busca una vez más en el
/etc/grub.d/00_header
código, verá que el error de registro presentado solo se usa cuandoquick_boot=1
. Por lo tanto, cambiarquick_boot
de 1 a 0 deshabilita la función recordfail y deshabilita las escrituras en la partición RAID / LVM.Sin embargo, también deshabilitará muchas otras funciones (ejecute
grep \$quick_boot /etc/grub.d/*
y verá). Más aún, si un día cambia su/boot/grub
directorio a fuera de RAID / LVM, la función de falla de registro seguirá deshabilitada.En resumen, esta solución deshabilita innecesariamente las características y no es genérica.
¿Cuál es la solución correcta?
La solución correcta debería considerar deshabilitar las
save_env
declaraciones cuando GRUB está dentro de particiones LVM o RAID.Se propuso un parche en el sistema Debian Bug Tracker para implementar esta solución. Se puede encontrar en: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754921
La idea detrás de este parche es:
grub-probe --target=abstraction "${grubdir}"
comando para obtener qué tipo de módulos de abstracción utiliza GRUB para leer / escribir archivos en el/boot/grub
directorio;diskfilter
olvm
, omita lasave_env
instrucción recordfail y escriba un comentario apropiado en el/boot/grub/grub.cfg
archivo;# GRUB lacks write support for /dev/md0, so recordfail support is disabled.
¿Cómo aplicar la solución correcta?
Si no desea esperar a que los chicos de Ubuntu / Debian apliquen este parche en el código oficial, puede usar mi parche
00_header
:fuente
00_header
archivo ha funcionado. No deshabilitaréquick_boot
para que desaparezca.00_header
archivo editado (como se recomienda aquí) no funcionaría. Sé que solo porque funciona para mí (y para Rarylson Freitas) no significa que necesariamente funcione para todos. Pero, ¿se aseguró de otorgar los permisos correctos a lo viejo y lo nuevo00_header
y a ejecutarupdate-grub
? (Si acaba de editar00_header
en su lugar, nochmod
se requiere, peroupdate-grub
sigue siendo necesario).Creo que este error ocurre debido a una incursión o partición LVM .
Para una solución temporal para este problema:
Editar:
/etc/grub.d/10_linux
Reemplazar
'quick_boot="1"' with 'quick_boot="0"'
Luego :
fuente