O GRUB é composto de duas partes, um pequeno gerenciador de inicialização que vai para o carregador de boot (provavelmente MBR, mas não sabe ao certo com seu sistema), e outra seção com o menu que entra no sistema / boot / diretório grub. O gerenciador de inicialização deve saber onde a outra seção está localizada.
Então, você tem dois menus grub: um na sua instalação Debian (que é o que está sendo usado), e um na instalação do Ubuntu, que não está sendo usado.
Você precisa dizer ao gerenciador de inicialização qual deles usar, e provavelmente quando você instalou o Ubuntu, você disse para ele carregar o gerenciador de inicialização na partição do Ubuntu ao invés do MBR. Mas há uma maneira de consertar isso. update-grub
não fará isso; tudo que faz é atualizar o menu em / boot / grub para configurar quaisquer alterações feitas nos arquivos de configuração. O que você precisa executar é grub-install
. A maneira mais fácil de fazer isso é inicializar de qualquer sistema diferente do Ubuntu que usa a mesma versão do GRUB, como o CD / USB de instalação do Ubuntu, então monte a partição do Ubuntu.
Por exemplo, digamos que você monte o disco no diretório /mnt
(suponha /dev/sda
para este exemplo ... sudo mount /mnt /dev/sda???
, onde ??? é a partição que contém o Ubuntu). Depois de fazer isso, o comando seria:
sudo grub-install --root-directory=/mnt /dev/sda
Você não precisa executar update-grub
, pois o menu deve estar OK quando for realmente lido.
Editar após comentário
Pode ser que a opção --root-directory
tenha se tornado obsoleta; Tenho certeza que usei esta versão, mas ela não está mais listada nas páginas man. [Este artigo] (( link ) mostra seu uso com muito mais detalhes.
Eu acredito que a sintaxe atual pode ser sudo grub-install --boot-directory=/mnt/boot /dev/sda
, mas eu não tentei isso sozinho; um exemplo é mostrado se você usar info grub-install
. A opção "--boot-directory" especifica o caminho completo para o diretório de boot, que na verdade é mais claro; a versão antiga supunha que você usaria um diretório chamado "boot" no diretório raiz especificado, que é o padrão, mas não necessariamente o que é desejado.
Você tem um diretório / media / ubuntu / long_hashed_looking_string / boot / grub / i386-pc? É aí que o modinfo.sh está no meu sistema. A opção "--boot-directory", na verdade, está especificando onde o arquivo grub.cfg reside, que é o que o bootloader grub procura para exibir o menu.
Na verdade, quis montá-lo usando o comando mount
, como sudo mount dev dir
, por exemplo, sudo mount /dev/sda?? /mnt
. É rápido e fácil de encontrar, apesar de esconder qualquer outro arquivo em / mnt, então eu costumo ter algo como /mnt/temp
para coisas como essa.