Debian 10 Buster | atualização-grub | comando não encontrado

0

update-grub falhou com uma mensagem de erro

# update-grub
bash: update-grub: command not found

@ GAD3R Saída de

# [ -d /sys/firmware/efi ] && echo EFI || echo legacy
legacy

Note1 Eu instalei o Debian 10 Buster Alpha 3 (Xfce) usando o instalador iso CD amd64 usando uma instalação padrão (exceto que eu removi o print server e adicionei o ssh server ) .

Note2 Eu usei a conta root ( su root ).

    
por linux64kb 18.11.2018 / 18:24

3 respostas

0

Soluções (melhores primeiro)

  1. su - root em vez de su root - melhor solução (graças a Rui)
  2. estenda o caminho do usuário normal em / etc / enviroment ou ~ / .bashrc ou arquivo de configuração similar
  3. comandos de chamada explicitamente; usar essa solução exigiria que alguém modificasse todos os scripts que chamam outro comando do sbin (isso não é prático, mas há um exemplo disso na seção de resolução de problemas)

Resultados

Isso aconteceu porque o PATH funciona de uma maneira muito estranha (na verdade funciona como planejado).

  1. regular user login - > o ambiente PATH não contém / usr / sbin = > opinião: funciona como projetado, bastante lógico
  2. su root - > direitos de administrador, mas falta o ambiente / usr / sbin: / sbin = > opinion: funciona como planejado, mas ilógico, porque uma conta com nível de acesso root deve ser capaz de executar comandos a partir do sbin sem adicionar o caminho para os binários manualmente
  3. su - root - > direitos de administrador, / usr / sbin no caminho = > opinião: funciona como projetado, bastante lógico

Mais algumas informações

Existem dois PATH definidos em /etc/login.defs, mas a menos que eu inicie su - ou su - root , eu irei obter o ENV_PATH. Eu sei que isso foi projetado desta forma, para manter o ambiente do usuário real, mas neste caso único, realmente confunde minha mente, por que não adicionar automaticamente /usr/sbin e /sbin para o caminho w de um "usuário regular "após um su root

bem-sucedido
# cat /etc/login.defs |grep PATH=
ENV_SUPATH  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Solução de problemas

Descobri que existe um comando update-grub em /usr/sbin .

# find / -name update-grub
/usr/sbin/update-grub

Executou, apenas para obter a próxima mensagem de erro.

# /usr/sbin/update-grub
/usr/sbin/update-grub: 4: exec: grub-mkconfig: not found

Pesquisou grub-mkconfig e encontrou /usr/sbin/grub-mkconfig . Então veio para mim, vamos ver como o script update-grub se parece?

#cat /usr/sbin/update-grub |grep grub-mkconfig
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

Modificado / usr / sbin / update-grub para chamar grub-mkconfig por seu caminho explícito ...

exec /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg "$@"

... então chamado update-grub com seu caminho explícito e tada, funcionou!

# /usr/sbin/update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-4.18.0-2-amd64
Found initrd image: /boot/initrd.img-4.18.0-2-amd64
Found linux image: /boot/vmlinuz-4.16.0-2-amd64
Found initrd image: /boot/initrd.img-4.16.0-2-amd64
done

Conclusão

Isso deve ser algo sobre o PATH

    
por 18.11.2018 / 21:59
0

Você pode forçar a reinstalação de grub :

sudo apt-get install --reinstall grub
    
por 18.11.2018 / 18:33
0

Primeiro atualize sua lista de pacotes locais:

sudo apt update && sudo apt upgrade

Encontre o modo de inicialização correto:

[ -d /sys/firmware/efi ] && echo EFI || echo legacy 

então, a reinstalação forçada do pacote grub para leagcy grub-legacy package está lá e para efi grub-efi (suponho que o modo de inicialização seja EFI):

sudo apt install --reinstall grub-efi
sudo apt install grub-common

Se o problema ainda não resolver, tente o seguinte:

sudo grub-mkconfig -o /boot/grub/grub.cfg
O comando

update-grub é apenas um script que executa a ferramenta grub-mkconfig para gerar um arquivo grub.cfg. Veja a documentação do GRUB do Archlinux

Ref:

por 18.11.2018 / 19:08

Tags