
Então cometi um erro ao usar o Grub Customizer e cometi outro ao tentar restaurar a configuração anterior seguindo as instruções em /etc/grub.d/backup/RESTORE_INSTRUCTIONS
, o que levou à corrupção dos meus arquivos de configuração do grub.
Agora, quando tento correr, sudo update-grup
recebo
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.
O resultado grub.cfg.new
está vazio (contém apenas o comentário inicial sobre a geração).
Eu tentei reinstalar o grub de acordo comesta respostapor
sudo apt-get purge grub-pc grub-common
mas não funciona mais. Primeiro, apt
reclamei sobre dependências não atendidas e quando adicionei grub2-common grub-pc-bin
à lista para serem removidas, ele me disse que precisava instalá-las.
... grub-common:i386 grub-efi-amd64 grub2-common:i386 ...
Depois de alguma hesitação, aceitei e deixei esses pacotes serem instalados com a intenção de substituí-los novamente, mas me deparei com isso novamente durante a instalação
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
Então, aparentemente, update-group
agora faz parte do script pós-instalação e, se falhar, o pacote falhará na instalação. Então agora estou em um estado em que as dependências estão quebradas nos dois sentidos e nenhuma das versões do grub está instalada corretamente e não pode ser corrigida.
Os arquivos de configuração do grub ( /etc/default/grub
e /etc/grub.d/*
) nunca foram removidos e substituídos durante a limpeza. E se eu excluí-los manualmente, eles nunca mais serão instalados.
Há algo que eu possa fazer para salvar minha instalação do sistema operacional agora?
Responder1
apt purge
é quase sempre a solução errada para este tipo de situação. Essa rota provavelmente removerá itens críticos e, se você remover itens suficientes, ficará em um canto que exigirá uma reinstalação para consertar. A única situação em que a remoção de pacotes ajuda é se eles substituírem outros pacotes que você está tentando reinstalar.
Em vez disso, eu recomendaria usar dpkg -V
para encontrar arquivos e permissões corrompidos e apt install --reinstall
para reinstalar pacotes que foram corrompidos. Isso substituirá os arquivos principais corrompidos, mas poderá deixar os arquivos de configuração corrompidos. Mas é um começo.
Ao encontrar arquivos de configuração corrompidos, você pode tentar corrigi-los ou renomeá-los e usá-los dpkg --reconfigure
para o pacote relevante para tentar reconstruir os arquivos de configuração. dpkg --configure
pode ajudar se as configurações estiverem completamente confusas ou excluídas.
Outra possibilidade é que existamextraarquivos nos diretórios de configuração que corromperam sua configuração. Novamente, apt purge não os removerá e não corrigirá nada. Encontrar esses arquivos extras precisa ser feito por processo de eliminação, mas não é impossível.
Responder2
O problema eram as permissões, não arquivos ausentes/corrompidos ou sintaxe incorreta, mas permissões erradas. Os arquivos de backup criados pelo Grub Customizer em /etc/grub.d/backup/etc_grub_d
não possuem o sinalizador de execução. É por isso que o grub.cfg vazio foi gerado. E não consegui ver porque a mensagem de erro update-grub
é enganosa.
Portanto, não basta apenas seguir RESTORE_INSTRUCTIONS
e /etc/grub.d/backup/
copiar /etc/grub.d/backup/etc_grub_d
de volta para o arquivo /etc/grub.d
. Você também tem que
sudo chmod +x 0* 1* 2* 3* 4*
Mas também acho que isso deve ser relatado como um problema aos mantenedores do pacote. Não é certo que a instalação bem-sucedida de um pacote exija a execução de um script que depende de uma configuração quebrável do usuário. E não é certo que tentar desinstalar e reinstalar temporariamente esse pacote resulte na instalação de um subsistema i386.
Fim do desabafo, obrigado a todos que ajudaram.