
Entonces cometí un error al usar Grub Customizer y luego cometí otro mientras intentaba restaurar la configuración anterior siguiendo las instrucciones en /etc/grub.d/backup/RESTORE_INSTRUCTIONS
, lo que llevó a dañar mis archivos de configuración de grub.
Ahora cuando intento correr sudo update-grup
me sale
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.
El resultado grub.cfg.new
está vacío (contiene solo el comentario inicial sobre su generación).
He intentado reinstalar el grub segúnesta respuestapor
sudo apt-get purge grub-pc grub-common
pero ya no funciona. Primero, apt
me quejé de dependencias no satisfechas y cuando las agregué grub2-common grub-pc-bin
a la lista para eliminarlas, me dijo que necesitaba instalarlas en su lugar.
... grub-common:i386 grub-efi-amd64 grub2-common:i386 ...
Después de algunas dudas, lo acepté y dejé que esos paquetes se instalaran con la intención de reemplazarlos después, pero me encontré con esto nuevamente durante la instalación.
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
...
dpkg: error processing package grub-pc (--configure):
installed grub-pc package post-installation script subprocess returned error exit status 1
Aparentemente, update-group
ahora es parte del script posterior a la instalación y, si falla, el paquete no se instala. Ahora estoy en un estado en el que las dependencias se rompen en ambos sentidos y ninguna de las versiones de grub está instalada correctamente y no se puede arreglar.
Los archivos de configuración de grub ( /etc/default/grub
y /etc/grub.d/*
) nunca se eliminaron ni se sobrescribieron durante la purga. Y si los elimino manualmente, nunca se vuelven a instalar.
¿Hay algo que pueda hacer para guardar mi instalación del sistema operativo ahora?
Respuesta1
apt purge
Casi siempre es la solución equivocada para este tipo de situación. Es probable que esa ruta elimine cosas que son críticas y, si elimina suficientes cosas, se arrinconará y requerirá una reinstalación para solucionarlo. La única vez que ayuda eliminar paquetes es si reemplazaron otros paquetes que está intentando reinstalar.
En su lugar, recomendaría usarlo dpkg -V
para buscar archivos y permisos corruptos, y usarlo apt install --reinstall
para reinstalar paquetes que hayan sido dañados. Esto reemplazará los archivos principales dañados, pero puede dejar los archivos de configuración dañados. Pero es un comienzo.
Cuando encuentre archivos de configuración dañados, puede intentar arreglarlos o cambiarles el nombre y utilizar dpkg --reconfigure
el paquete correspondiente para intentar reconstruir los archivos de configuración. dpkg --configure
podría ayudar si las configuraciones están completamente estropeadas o eliminadas.
Otra posibilidad es que existanextraarchivos en los directorios de configuración que han dañado su configuración. Nuevamente, apt purge no los eliminará y no solucionará nada. Encontrar esos archivos adicionales debe realizarse mediante un proceso de eliminación, pero no es imposible.
Respuesta2
El problema eran los permisos, no los archivos faltantes/dañados o la mala sintaxis, sino los permisos incorrectos. Los archivos de copia de seguridad creados por Grub Customizer /etc/grub.d/backup/etc_grub_d
no tienen el indicador de ejecución. Es por eso que se generó grub.cfg vacío. Y no pude verlo porque el mensaje de error update-grub
es engañoso.
Por lo tanto, no basta con seguirlo RESTORE_INSTRUCTIONS
y /etc/grub.d/backup/
copiarlo /etc/grub.d/backup/etc_grub_d
nuevamente /etc/grub.d
. También tienes que
sudo chmod +x 0* 1* 2* 3* 4*
Pero también creo que esto debería informarse como un problema a los encargados del paquete. No está bien que la instalación exitosa de un paquete requiera ejecutar un script que dependa de una configuración de usuario frágil. Y no está bien que intentar desinstalar y reinstalar temporalmente ese paquete resulte en la instalación de un subsistema i386.
Fin de la perorata, gracias a todos los que ayudaron.