Problema com dois sistemas iguais em partições diferentes

Olá colegas! :wave:t5:

Há 3 meses decidi deixar o Windows completamente para fins pessoais, e já usava Linux regularmente inclusive via WSL e até que tenho uma experiência boa, porém ao mudar de vez para o Linux (Kubuntu) decidi aprofundar meus conhecimentos no sistema e em redes, tenho acompanhado dois treinamentos feitos em sistemas iguais, mas com características diferentes, um Debian gráfico com DE padrão e o outro um Debian minimal em modo texto, o problema é que ao instalar o Debian em texto o GRUB está ignorando a partição do Debian gráfico.

Para fins de melhor explicação segue uma “time-line” das instalações:

1. SO Principal:
Kubuntu 24.04 instalado no disco inteiro sem particionamento

2. Treinamento GNU/Linux:
Diminui o volume do disco pela metade no particionamento da instalação e segui:
Debian 12 Stable ambiente gráfico padrão instalado no espaço livre
(A partição swap foi criada pelo instalador do Debian)
(Aparentemente o GRUB foi instalado aqui)

3. Treinamento Redes com sistema Linux:
Diminui a partição do Debian gráfico no segundo volume pela metade no gerenciador de discos do Kubuntu e ao reiniciar o GRUB do Debian gráfico tinha dado erro, mas prossegui porque já imaginava que ele seria restaurado. Usei o mesmo pendrive, mas dessa vez em modo texto, segui os mesmos passos de instalação, exceto que o disco já estava parcionado e não selecionei o Desktop no final e ficou assim:
Debian 12 Stable sem ambiente gráfico
(Aqui o GRUB foi sobrescrito)

As partições ficaram assim:

O problema é que a partição do Debian gráfico existe, mas está sendo ignorada no GRUB.
Na lista de ordem de boot na UEFI aparecem só um Debian e Ubuntu.
Antes da instalação do Debian em modo texto, o Debian gráfico e o GRUB funcionavam normalmente.

Decupem o texto longo!
Se alguém puder explicar o que aconteceu e como restaurar serei muito grato.
Abraços! :grin:

1 curtida

Provavelmente o OS-Prober está desabilitado no Grub do Debian em modo texto. Segundo a documentação do Debian, você tem que ir no arquivo /etc/default/grub e colocar um “#” na seguinte linha:

GRUB_DISABLE_OS_PROBER=false

Que vai ficar assim:

#GRUB_DISABLE_OS_PROBER=false

Outra alternativa que pode funcionar

E olhando essa imagem, me veio outra alternativa:

Dá para ver que o seu computador está formatado como GPT e que você está usando UEFI. Nesse caso, você consegue acessar o sistema apertando F12 na hora que aparece o logo da fabricante do Computador, o que faz aparecer um menu com os Bootloaders que estão gravados.

Como estou com o Debian 12/LMDE 6 e o Windows, então aparece o Debian e o Windows nesse menu de boot.

Atenção que nem sempre pode ser F12 para acessar esse menu. Aí teria que ver no manual do computador ou da Placa-Mãe para saber qual seria o atalho. E também não sei se isso funcionaria para dois sistemas que são iguais, mas creio que possa funcionar.

1 curtida

Obrigado pela resposta!

No meu caso é F12 a tecla de acesso, porém nem no menu de boot o Debian gráfico não aparece, vou ler a documentação e tentar seguir a sugestão.

Voltando com atualizações, então como descrevi anteriormente, estou apenas com sistema Linux instalados, aí ficou a dúvida se essas modificações sugeridas na doc são para qualquer sistema ou só o Windows.

1 curtida

O debian instala o grub na partição efi, na pasta “debian”.

Quando vc instala um outro debian, a instalação do “segundo debian” vai sobrescrever o bootloader do primeiro, pois na partição efi ambos vão se instalar com o mesmo nome.

Como resolver, não sei direito. Vou pesquisar um pouco.

2 curtidas

Para definir um nome customizado para a instalação em efi, edite no arquivo /etc/default/grub a variável GRUB_DISTRIBUTOR para um valor diferente, por exemplo:

GRUB_DISTRIBUTOR="DebGraph"

Reinstale o grub com grub-install e haverá uma nova entrada efi refente a essa instalação. Verifique a instalação com efibootmgr -v

Para fazer o mesmo para o sistema instalado anteriormente, vc vai precisar fazer o boot nele manual pelo prompt do grub, ou ainda entrar nele pelo procedimento de chroot, e aí fazer a mesma operação alterando para outro nome. Desse modo terá duas entradas diferentes para dois debian instalados no mesmo computador em partições diferentes e na mesma partição efi. Ou, caso não queira aprender a fazer isso, reinstale a outra versão do debian.

O jeito mais fácil é, sabendo disso, instalar o primeiro debian, alterar o GRUB_DISTRIBUTOR, reinstalar o grub, e só daí fazer a segunda instalação do debian. Assim vc poderá escolher entre as distribuições no menu de boot da BIOS.

Uma vez que vc tenha as duas entradas na efi, poderá configurar o grub com chainloader de cada uma das distribuições para a outra, assim no menu de boot vc poderá escolher iniciar a instalação “padrão” ou a do outro debian. Caso queira depois abra um novo tópico que eu explico.

Veja como ficou aqui no meu teste:
image

image

2 curtidas

Instalação em UEFI, o sistema da UEFI é diferente da BIOS, a BIOS vc escolhe qual disco vc quer que a mesma da boot, já na UEFI esse sistema não funciona, para trocar o boot na UEFI vc deve remover os dispositivos de boot da lista de dispositivos.

Eu não sei como explicar melhor, e parece que só tem vídeo de seleção em BIOS na internet, chato isso.

1 curtida

A a forma citada por mim acima é se tiver instalado em dispositivo de armazenamento diferente, se for apenas 1 SSD ai é o método dos rapazes acima.

1 curtida

Obrigado pelas novas informações @Deleterium, vou fazer o teste e se eu conseguir venho marcar como solução.

Olá, @DanielOliveira

A explicação é essa:

Ou seja, a segunda instalação do Debian sobrescreveu o Grub da primeira, na partição EFI.

A solução é criar pastas com nomes diferentes:

Veja que eu tinha uma entrada /boot/EFI/arch_grub criada em Abril 2020 – e criei outra entrada, chamada /boot/EFI/arch_grub2 em 2023.

No meu caso, utilizei comandos que peguei na Arch Wiki – e em 2023 apenas mudei o nome da pasta:

em 2020:
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck

em 2023:
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub2 --recheck

Infelizmente a “Debian Wiki” faz um rolo enorme. – Eu não consigo encontrar um comando confiável no meio daquela barafunda.

O jeito mais simples de fazer isso, é este que o @Deleterium explicou:

  • Não é preciso fazer isso no 2º Debian – pois a entrada existente em /boot/efi está funcionando para ele. – Fazer isso no 2º Debian, apenas irá criar mais uma entrada para ele!

  • É preciso fazer isso no 1º Debian. – Mas… como entrar nele?

A resposta curta é “fazer um chroot” (valha-me Deus!). – Não é uma coisa que eu goste de fazer. – Fiz 3 ou 4 vezes ao instalar o Arch Linux pelo método “RTFM”, mas não me arrisco a “ensinar” os comandos equivalentes para fazer isso no Debian.

Teoricamente, “basta”:

  • entrar no Kubuntu ou no 2º Debian
  • montar a partição “/” do 1º Debian
  • montar a pasta /boot do 1º Debian
  • montar a subpasta /boot/efi do 1º Debian
  • “dar um chroot” nessa bagaça
  • e a partir daí, você “está dentro” do 1º Debian – e não no Kubuntu ou no 2º Debian
  • para sair do chroot, execute exit

Na instalação do Arch, fiz assim:

# mount /dev/sda3 /mnt
(...)
# mkdir /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
(...)
# arch-chroot /mnt

Evidentemente, sda3 era a partição “/” do meu Arch; – sda1 era a minha partição EFI – e o comando arch-chroot é do Arch, não do Debian.

(E verifique se no seu 1º Debian a pasta se chamaefiouEFI”).

Enfim, não sei o que mais precisaria fazer. – Repito: – Nunca fiz chroot no Debian.

Alguém pode ajudar nisso?

Melhor ainda: – Alguém tem outra solução mais simples e fácil?

EDIT

Ainda pensei em copiar a pasta do 2º Debian com outro nome, e depois editar o arquivo que tem dentro dela:

Mas o arquivo grubx64.efi é uma sopa de letrinhas. – Tenho até medo de mexer nisso:

Na pasta /boot/EFI/Debian eu tenho mais coisas – inclusive um arquivo grub.cfg – cuja primeira linha eu arriscaria editar na pasta-cópia:

search.fs_uuid fc576ba0-2fd4-483b-b090-55d295f1dccf root hd0,gpt4

Trocaria:

  • o UUID da partição do 2º Debian pelo UUID da partição do 1º Debian
  • “hd0,gpt4” – 4ª partição do meu 1º SSD – pela partição / SSD onde está seu 1º Debian

Será que isso funcionaria?

Mas, lembre-se: – Não mexa na pasta original, que está funcionando para carregar seu 2º Debian! – Copie a pasta com outro nome, e mexa apenas na pasta-cópia.

EDIT (2)

Debian tem o mau hábito de reinstalar o Grub – quando atualiza a versão do Grub. – Sempre que isso acontece, vai mudar a prioridade de Boot, passando a carregar o Grub do 1º Debian, ou do 2º Debian etc.

Mas aí, basta recolocar “no topo” o Grub que você prefere usar como padrão – por exemplo, caso você prefira usar o Grub do Kubuntu.

Eu uso o comando efibootmgr para alterar a ordem de prioridade – pois prefiro o Grub do openSUSE. – Se tiver interesse, é só dizer, que a gente explica.

Se quiser encher a cabeça com um monte de complicações, aqui estão as anotações que fiz sobre a instalação de várias distros em dualboot / multiboot em hardware UEFI-GPT – e aqui, anotações mais antigas sobre Grub multiboot (BIOS-MBR e UEFI-GPT).

1 curtida