Inicializei duas vezes o Manjaro e o Windows, via Grub e UEFI em um Lenovo Yoga C930, que usa Bitlocker e Secure Boot. Posso inicializar com êxito no Manjaro se desabilitar a inicialização segura no BIOS e também posso inicializar no Windows se reativar a inicialização segura no BIOS. Por razões desconhecidas e aparentemente aleatórias, vou perder meu bootloader Linux. Não sei se ele está sendo excluído ou de repente não pode ser reconhecido, ou o quê, mas não consigo inicializar a partir dele e ele não aparece como uma opção no BIOS.
Consigo reinstalar o Grub seguindo as instruções do Wiki, mas eventualmente ele simplesmente desaparecerá. O que está acontecendo e como posso evitar que isso aconteça?
Responder1
Presumo que o Windows esteja mantendo seu sistema "livre de câncer".
[EDITAR] Você tem duas soluções, dependendo do método de inicialização usado, legado e UEFI.
Legado:
Você pode usar bcd
como gerenciador de inicialização para iniciar o Windows ou Linux.
Supondo que você tenha o grub instalado /dev/sda
e /dev/sda1
seja a partição EFI do Windows
No Linux:
mount /dev/sda1 /mnt
dd if=/dev/sda of=/mnt/linux.bin bs=512 count=1
No Windows:
bcdedit /create /d "Linux" /application bootsector
BCDEdit retornará um identificador alfanumérico para esta entrada, que chamarei de {ID} nas etapas restantes. Você precisará substituir {ID} pelo identificador real retornado. Um exemplo de {ID} é {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. A seguir, vamos especificar qual partição hospeda uma cópia do arquivo linux.bin:
bcdedit /set {ID} device partition=c:
O caminho para nosso arquivo linux.bin:
bcdedit /set {ID} path \linux.bin
Uma entrada no menu exibido durante a inicialização:
bcdedit /displayorder {ID} /addlast
e por fim, vamos especificar por quanto tempo as opções do menu serão exibidas:
bcdedit /timeout 30
É isso! Agora reinicie e será apresentado um menu onde você pode escolher inicializar no Windows ou Linux. Ao escolher o Linux, você será levado ao menu do bootloader, onde poderá escolher inicializar o Linux.
https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/
[EDITAR] UEFI
Seu sistema Windows possui uma partição EFI a partir da qual é inicializado. No Linux, você monta isso em /boot
. Em seguida, certifique-se de que você grub.cfg
está procurando a partição raiz usando uuid (por padrão): como, por exemplo: linux /vmlinuz-4.4.0-1-default root=UUID=6159e15d-f224-499d-88e0-437b5538f0f1 quiet splash=silent
, se não estiver, você usa blkid
para listar o UUID de sua partição raiz e adaptar a configuração do grub em /etc/grub.d
.
Você escreve sua configuração do grub para/boot/boot/efi/EFI/manjaro/grub.cfg
grub2-mkconfig -o /boot/boot/efi/EFI/manjaro/grub.cfg
Reinicie, você "deveria" estar pronto para prosseguir.
Responder2
Tive um problema semelhante a este há quase dois anos, com uma inicialização dupla do Trisquel Linux com Windows 8. Postei uma pergunta/respostaaquino Superusuário (me disseram na época que as questões de inicialização dupla estavam fora do assunto no U&L, por algum motivo).
Como você verá nessas postagens, o problema não era o Windows estar excluindo ou sobrescrevendo o GRUB, mas sim alterando periodicamente as configurações de UEFI para instruí-lo a usar o gerenciador de inicialização do Windows, em vez do GRUB. A solução foi usar o bcdedit no Windows, para definir o caminho padrão do bootloader para GRUB, o que resolveu meu problema.
Não sei se a mesma solução funcionará para você, mas talvez valha a pena tentar?
(além disso, não acredito que você precise ter a inicialização segura habilitada para inicializar o Windows. Eu inicializo no Windows 8 com ele desabilitado perfeitamente.)
Responder3
Na verdade, eu descobri isso sozinho. Acontece que tive que efibootmgr
criar manualmente uma nova entrada de inicialização e dar a ela alta prioridade. Até agora tudo bem.