Un cliente mío está usando un Lenovo Thinkpad T450s desde hace un año. La máquina está ejecutando Debian jessie, con un núcleo fuera de jessie-backports, en este momento 4.5+73~bpo8+1
. La última versión de UEFI se actualiza / instala. El sistema operativo está instalado en "modo UEFI", con una EFI
partición adicional, etc. Hasta hace ~ cuatro semanas, esta configuración era sólida y estable: Lenovo Thinkpad y Debian, ¿qué podría salir mal?
Desde hace cuatro semanas, en cada arranque, la máquina muestra el error que he puesto en el tema. Aquí hay una imagen de esto:
Al presionar Esccontinuará el proceso de arranque, que funcionó "bien" ... durante dos semanas más. El mensaje luego cambió de
Presione Esc para continuar o F1 para ingresar a la configuración.
a
Limpiar SÍ o NO
(lamentablemente, no tengo imagen de esto).
Mi cliente presionó "SÍ", que borró el almacenamiento, hasta donde veo todo esto actualmente, lo que hizo que la máquina no se pueda arrancar. Después, restauré la entrada de arranque "debian", y la máquina volvió a estar feliz, arrancando bien, etc. Esto duró algunos días más; desde ~ una semana, el mensaje vuelve a aparecer en cada arranque.
Traté de contactarme con el soporte de Lenovo cuatro veces en cuatro días diferentes, y me di por vencido después de pasar ~ 30 minutos en la cola del teléfono cada vez.
He usado todas mis habilidades $ (your-favorite-search-engine-here-here) estos últimos días, y no encontré casi nada: de dónde viene esto, cómo depurar y, lo más importante, cómo solucionarlo. Tal como están las cosas actualmente, supongo, la máquina no podrá reiniciarse pronto.
Cualquier puntero muy apreciado!
df -hT /boot/efi
/boot/EFI
de "algo diferente", ¿verdad?) de ninguna manera algo así como un "experto UEFI", por lo que es muy posible que esté completamente equivocado en esto.]/sys/firmware/efi/efivars/
. Estas son probablemente las variables de las que se queja el sistema UEFI./sys/firmware/efi/vars/
: Hay "muchas cosas" adentro. ¿Alguna idea de lo que debo verificar?ls -lh /sys/firmware/efi/efivars | sort -k5 -h
Respuestas:
El kernel de Linux desde la versión 3.8 abstrae el almacenamiento variable UEFI como
efivarfs
.Montaje
efivarfs
Si
mount | grep '^efivarfs'
no devuelve nada, puede montarefivarfs
usando este comando:Ahora, puede navegar
/sys/firmware/efi/efivars
para ver si alguna variable se destaca.Ordenar las variables UEFI por tamaño
efivarfs
no tiene un concepto de uso del disco, pero informa cada variable por tamaño. Este comando ordena las variables por tamaño, ascendiendo:Próximos pasos
Esto es lo más lejos que puedo llevarte usando la información que has proporcionado. A continuación, debe descubrir qué ocupa tanto espacio en la variable NVRAM UEFI.
La wiki de Arch Linux sugiere eliminar
/sys/firmware/efi/efivars/dump-*
archivos / variables si existen, aunque no menciona qué crea esas variables.Como se discutió en el chat , un enfoque sería tomar una instantánea de las variables UEFI, eliminarlas según lo propuesto por el firmware de Lenovo, reinstalar el arranque EFI de Debian, tomar una instantánea nuevamente, esperar a que las variables UEFI se llenen nuevamente y tomar una Más instantánea. Luego, podrá comparar las instantáneas para ver qué cambió e, con suerte, identificar qué está causando que la variable o las variables problemáticas ocupen tanto espacio.
Si todo lo demás falla, puede volver al arranque heredado.
fuente
/sys/firmware/efi/efivars
había muchosdump-*
archivos. Por ahora, he eliminado estos, lo que hizo feliz al firmware UEFI nuevamente. Publicaré un seguimiento mañana. (Gracias por este puntero Deltik, muy apreciada, no se encontró esto por mi cuenta.)dump-*
archivos contienen información de bloqueo del kernel. No sé mucho sobre ellos, pero esperaría que solo los núcleos configurados para la depuración los creen, por lo que recomiendo verificar las opciones de compilación del núcleo (si los núcleos están compilados localmente) y las opciones de arranque para ver si algo podría estar mal configurado para crear estos archivos innecesariamente.Debian
núcleos de vainilla de jessie-backports, no autocompilados. ¿Alguna idea de lo que debería específicamente?dump
archivos * funcionó para mí.