update-grub não atualiza o /boot/efi/EFI/ubuntu/grub.cfg

2

(EDIT 3: Erro do usuário. Copiado em /boot/efi/EFI/ubuntu/grub.cfg durante a depuração de um problema de inicialização)

Após instalar o Ubuntu 18.04 Server recém-lançado no modo UEFI Secure Boot, o instalador colocou o grub.cfg neste local:

  • /boot/efi/EFI/ubuntu/grub.cfg

Isto corresponde às tabelas criadas ao selecionar a partição de sistema de arquivos: manual, que monta a partição de inicialização em / boot / efi (/ dev / sda1).

No entanto, sudo update-grub e sudo update-grub2 não sobrescreve a configuração do grub, em vez disso atualiza /boot/grub/grub.cfg , ou seja, um arquivo que não está na partição de inicialização.

Pergunta 1: O update-grub, update-grub2 etc. foi substituído por algum novo procedimento? Pergunta 2: Se não, este é um bug a ser arquivado?

EDITAR: Confuso ++.

  • Computador 1, hardware real, porcionamento manual na instalação e pequenas atualizações, por exemplo sudo apt instala o tboot , o problema pode ser reproduzido.

  • Computador 2, imagem do vmware: instalação de baunilha, problema não pode ser reproduzido.

Ambos os computadores são UEFI Secure Boot e têm partioning idêntico / semelhante. o grub.cfg diferente experimenta o mesmo comportamento de atualização, mas na imagem vmware, o grub respeita o arquivo /boot/grub/grub.cfg , no grub de instalação de hardware respeita o / boot / efi /EFI/ubuntu/grub.cfg.

EDIT 2:

  • O computador 1 foi reinstalado agora com o particionamento manual do sistema de arquivos e, em seguida, novamente com o particionamento original (disco de 250 GB, usado de 120 GB, sem nenhum descanso). Nenhuma reinstalação pode reproduzir o problema original, então basicamente agora o problema desapareceu. Todas as três instalações no computador eram do mesmo dispositivo ISO / USB.
por blaufish 27.04.2018 / 13:15

3 respostas

0

causa raiz: erro do usuário.

Eu acidentalmente copiei o /boot/grub/grub.cfg para o /boot/efi/EFI/ubuntu/grub.cfg enquanto a tentativa de depurar algumas configurações do grub não entrava em vigor. Daquele ponto em diante, o comportamento não era padrão no meu sistema.

obrigado ao oldfred por me ajudar a perceber que o /boot/efi/EFI/ubuntu/grub.cfg original tinha acabado de ser um arquivo de três linhas referindo o /boot/grub.cfg.

    
por blaufish 27.04.2018 / 17:05
1

blaufish observa que

the original /boot/efi/EFI/ubuntu/grub.cfg had just been a three lines file referring /boot/grub.cfg.

Este grub.cfg de três linhas é não usado , pelo menos no meu grub 2.02-2ubuntu8.6 com btrfs. A segunda linha lê

set prefix=($root)'/@/boot/grub'

Agora não há @ on $ root, e não havia quando o grub-install foi executado. (@ foi uma instalação zesty que se tornou corrupta e deletada há algum tempo.) Em vez disso, o caminho do grub para o grub.cfg é escrito no executável grubx64.efi. Pode-se ver o que é isso executando

strings grubx64.efi | tail

Eu menciono isso porque alguém pode imaginar, como eu fiz uma vez, que mudar este grub.cfg para apontar para outro lugar seria útil. Eu uso a opção --boot-directory para instalar o grub para definir isso. Eu tenho a raiz btrfs montada (subvolide = 5, subvol = /) em / mnt / top, e quero arrancar para / @ grub:

--boot-directory=/mnt/top/@grub/boot

(Eu não tenho certeza se isso sempre funcionou. Quando eu tentei instalar o grub pela primeira vez independentemente de qualquer instalação no btrfs, eu tive problemas, e acabei usando um snapshot que eu poderia inicializar para fazer o grub-install write o que eu queria, mas agora é bom.)

    
por JohnLittle 13.10.2018 / 03:01
0

Eu corri para isso também. Para atualizar seu EFI grub.cfg, você quer fazer:

grub-install --efi-directory=/boot/efi

Se o seu EFI estiver montado em /boot/efi .

    
por dpb 20.06.2018 / 04:36