Adicionar Windows 10 à lista de SO do GRUB

29

Recentemente, recebi um computador da escola. Ele veio com o Windows 8.1 instalado. Em seguida, instalei outra cópia do Windows 8.1 (para que ele usasse a licença integrada do Windows Pro) e atualizei-a para o Windows 10. Instalei o Ubuntu juntamente com o Windows 8 e 10.

Note que eu criei uma partição ext2 de 255 MB separada para / boot.

Agora, quando eu inicializo o computador, vejo pela primeira vez um prompt do GRUB (eu já desativei o prompt do grub porque gosto dessa maneira) com as opções do Windows 8 e do Ubuntu. No entanto, não há opção para o Windows 10. Se eu selecionar o Ubuntu, o computador inicializa no Ubuntu. No entanto, se eu selecionar a opção Windows 8, sou enviado ao gerenciador de inicialização do Windows, onde ele me oferece opções para inicializar o Windows 8 ou o Windows 10. (No entanto, a essa altura, o computador já carregou o kernel e todos os Aparentemente, a Microsoft entendeu mal o conceito de um carregador de inicialização e decidiu que isso significava "inicializar praticamente todo o sistema antes de realmente mostrar o carregador". Microsoft típico.)

Como posso desativar o carregador de inicialização do Windows e adicionar uma opção do Windows 10 ao GRUB? EDIT: Alguém respondeu me dizendo para desativar o gerenciador de inicialização do Windows. No entanto, ainda não sei como adicionar o Windows à lista de sistemas operacionais GRUB. Alguém pode ajudar com isso?

EDIÇÃO 2: Após remover o Windows 10 do gerenciador de inicialização do Windows com o EasyBCD, parecia que, após algumas reinicializações, ele se exibia continuamente e o Windows 10 reaparecia. No entanto, mais tarde excluí o Windows 10 da lista de sistemas operacionais no msconfig e parece que ele foi excluído.

No entanto, ainda não consegui fazer o Windows 10 aparecer no GRUB. É como se o GRUB simplesmente não o detectasse.

Além disso, colocarei isso em questão para que as pessoas vejam - tentei usar boot-repair, no entanto, NÃO ajudou em nada.

Hitechcomputergeek
fonte
1
@ daltonfury42 Pare de acreditar se você não ouve ou não entende quais são os requisitos do OP! A recomendação de uma ferramenta que lida principalmente com problemas comuns em configurações típicas de inicialização herdadas, para instalações UEFI atípicas com requisitos especiais, é enganosa e contraproducente.
LiveWireBT
2
@LiveWireBT Sinto muito. Eu vi sua resposta. Eu apaguei meu comentário (e parei de acreditar: P). Obrigado!
daltonfury42
1
Acho que vou excluir toda a partição do Windows 10 e movê-la para uma VM, de qualquer maneira.
Hitechcomputergeek
Honestamente, não sei por que as pessoas ainda estão votando nisso, pois a IMO não é uma ótima pergunta. No entanto, este ano resolvi isso de outra maneira - convertendo de MBR para GPT e inicialização UEFI. Basicamente, converti o esquema de particionamento para GPT, redimensionei a partição do Windows, adicionei uma partição do sistema EFI e coloquei rEFInd nela, e criei um BCD do Windows usando um disco de instalação do Windows. Agora, o sistema inicializa usando a inicialização UEFI, facilitando a reprodução com sistemas operacionais. Ao contrário do que a internet diz, não foi muito difícil converter a instalação do Windows do BIOS para UEFI, mas também não foi fácil.
Hitechcomputergeek
1
Para qualquer pessoa no futuro que queira fazer algo assim e queira ficar com a BIOS - acredito que a resposta esteja no BCD do Windows. Acredito que a instalação do Windows 10 não tenha um carregador de inicialização ou BCD adequado ou algo assim e não seja capaz de inicializar de forma independente. Se feito corretamente, tenho um palpite de que o GRUB deve começar a encontrar automaticamente a partição do Windows 10.
Hitechcomputergeek

Respostas:

25

Usar:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

comandos no terminal do Ubuntu, provavelmente resolverá o seu problema.

Por esse comando, o sistema detectará automaticamente suas instalações do Windows e as adicionará à lista do GRUB.

Neel Shah
fonte
2
Infelizmente, isso não funcionou. Parece não detectar a partição do Windows 10.
Hitechcomputergeek
1
Na verdade, eu tive o mesmo problema com o meu sistema (tem windows 10 e ubuntu 14.04), e foi resolvido por esses comandos.
Neel Shah
Qual comando resolveu, o update-grubou grub-install? E você tem uma partição / boot separada? O problema é que eu tenho uma partição de inicialização separada, na verdade acho que é sda6.
Hitechcomputergeek
Fazer esses dois comandos (obviamente) não resolveu.
Hitechcomputergeek
7
sudo update-grubfez isso.
Thameera
21

Às vezes, o os-prober está errado.

Veja o UUID da sua partição do Windows 10, por exemplo:

sudo blkid /dev/sda2

Em seguida /etc/grub.d/40_custom, edite e, no final do arquivo, adicione:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Não se esqueça de alterar o UUID.

E finalmente atualize seu arquivo de configuração do grub:

sudo update-grub

Fonte

noraj
fonte
2
Vale ressaltar que, para o Windows 10, geralmente a primeira partição NÃO é a do sistema Windows (por exemplo, sdb2 está correta e sdb1 NÃO) Isso ocorre devido à maneira como o Windows 10 é armazenado no disco durante a instalação e a partição reservada do sistema ou o reparo do sistema é sempre o primeiro). O Grub geralmente falha em encontrar a segunda partição se a primeira no disco já fornecer algo inicializável. a maneira mais fácil de encontrar o UUID correto é encontrar a maior partição via sudo fdisk -le combiná-la com o resultado do blkid.
janmyszkier
9

Esta solução fornece uma entrada adequada no menu grub2 e carrega em cadeia diretamente no Windows 10 sem referência ao BIOS. Ele vem de https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi, então não reivindico crédito. Foi um alívio encontrar uma solução funcional

Edite brevemente /etc/grub.d/40_custom e adicione:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Para localizar o UUID da linha --set = root (CC66-4B02 no exemplo), use sudo fdisk -l para identificar a partição EFI e, em seguida, sudo blkid / dev / sda1 (ou qualquer outro) para encontrar o UUID da partição EFI . Observe que não é a partição do Windows, mas a partição EFI que você precisa. Depois de salvar a edição, execute sudo update-grub para gerar o arquivo /boot/grub/menu.cfg e reinicie o teste.

peterthevicar
fonte
Eu acho que o sudo / dev / sda1 comando deve ser sudo blkid / dev / sda1
makapuf
@makapuf - você está absolutamente certo, obrigado. Corrigido.
peterthevicar
Segui o tutorial exato e recebo "Erro: Partição não encontrada" quando tento inicializar a entrada. Ao montar a partição, parece que "EFI / Microsoft / Boot / bootmgfw.efi" não existe nessa partição.
Xerus 16/01
8

use este aplicativo EasyBCD para Windows http://neosmart.net/EasyBCD/ baixe a versão gratuita e instale-a.

Quando você abrir, verá uma entrada para o Windows 8 e uma para o Windows 10.

excluir a entrada do Windows 8 e você estará pronto para ir.

Atualize após executar as etapas acima, volte ao Ubuntu,

abra o terminal pressionando ctrl+ alt+T

depois copie esses comandos para ele, um após o outro,

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

e com isso você instalará uma ferramenta chamada boot-repair.

reparo de inicialização aberta a partir do traço e você verá esta janela

insira a descrição da imagem aqui

escolha o reparo recomendado e siga as etapas.

Observe que você deve estar conectado à Internet ao usar o reparo de inicialização.

RonnieDroid
fonte
1
@Hitechcomputergeek se você precisar de mais ajuda, deixe-me saber que vou inicializar no Windows e fazer algumas capturas de tela.
precisa saber é o seguinte
Isso adiciona o Windows 10 ao GRUB? (Deixe-me adivinhar: não) Quero poder acessar todos os três sistemas operacionais do GRUB e isso resolve apenas parte do problema.
Hitechcomputergeek
Atualizei a pergunta para perguntar como adicionar o Windows 10 à lista de sistemas operacionais GRUB. Votei sua resposta porque corrigiu parte do problema, mas como ainda preciso adicionar o Windows 10 ao GRUB, ainda não estou aceitando a resposta.
Hitechcomputergeek
2
Além disso, notei que você diz para abrir o Boot Repair a partir do traço, mas a linha sudo apt-get install -y boot-repair && boot-repairjá o teria aberto.
Hitechcomputergeek
1
Você também pode usar esta ferramenta no "modo de teste do ubuntu (live cd mode)" iso, onde você pode instalar, executar e usá-lo após conectar-se à Internet ou à esposa.
Alamjit Singh
4

Pelo que entendi sua pergunta, você tem duas instalações diferentes do Windows em um ou mais discos rígidos e não deseja que o carregador do Windows atrapalhe ou gerencie as duas instalações do Windows. Lembro-me de que era possível nas configurações herdadas inicializar diretamente o kernel do Windows a partir do Grub (posso estar errado aqui), mas não consegui fazer isso nas configurações da UEFI. Ter duas configurações independentes do gerenciador de inicialização do Windows que podem ser chamadas do Grub de forma independente deve estar muito próxima do que você está procurando.

Ele veio com o Windows 8.1 instalado.

Vou assumir que este é um computador compatível com UEFI.

  1. Verifique se o computador é realmente compatível com UEFI (removerei minha resposta, se não for) e se familiarize com as diferenças entre BIOS e UEFI ( modos de inicialização diferentes , efibootmgr, tabelas de partição diferentes, partição de sistema EFI (ESP), carregadores EFI) ...)
  2. Em seguida, verifique que todos os sistemas operacionais estão instalados no modo UEFI e verificação de que você tem uma tabela de partição GPT. Você pode usar o Windows ' dismpara fazer backup e restaurar partições para um novo layout da tabela de partições e usar o prompt de comando da mídia de instalação mais recente do Windows para reinstalar o carregador de inicialização, mais detalhes sobre isso no próximo ponto.
    • Como você foi recomendado a experimentar várias outras ferramentas que não solucionam seu problema, você deve reverter essas alterações para uma condição original, caso contrário, isso ficará cada vez mais confuso. Me desculpe por isso. :(
  3. Você pode usar minha resposta em Como inicializar o Windows 8 a partir de uma partição MBR herdada no modo UEFI via GRUB?
    • Esta resposta instala uma configuração independente do carregador de inicialização do Windows bcdbootem um local diferente onde o Grub o chamará. Por conveniência, escolhi a partição raiz do Windows. Você precisará fazer isso em todas as instalações do Windows, para que cada instalação do Windows seja sua e só seja inicializada (limpe os menus de inicialização individuais do Windows de outras entradas).
    • Lembre-se de que você precisa criar uma entrada individual para cada instalação do Windows em que deseja inicializar /etc/grub.d/40_custome seguir as instruções e explicações sobre UUIDs, partições e tabelas de partição.
    • Provavelmente, desative todos os recursos semi-inteligentes que detectam diferentes sistemas operacionais, como o prober do sistema operacional no Grub ( GRUB_DISABLE_OS_PROBER) ou solucionem problemas de inicialização do Windows ou o reparo da inicialização (ou limpe-os manualmente).

NB: Sua solicitação foi capaz de gerenciar todos os sistemas operacionais com o Grub; no entanto, com UEFI, o termo tradicional "dualboot" se torna quase um nome impróprio. O UEFI permite a coexistência de vários gerenciadores de inicialização no ESP e você pode escolher qual deles inicializar (se eles foram registrados no firmware UEFI e o firmware do fabricante não faz parte das especificações condescendentes, como apenas inicializando o Windows). O triste aqui é que apenas poucas pessoas podem pensar em instalar mais de uma versão (independente) do Windows , Linux ou uma versão do Ubuntu em um computador(ou um disco rígido usado em vários computadores e inicializa uma instalação diferente da mesma versão do sistema operacional em cada computador). A maior parte disso já é possível, mas os mecanismos no Windows e no Ubuntu (Fedora, ...) decidem sobrescrever o que está em seu espaço de nome sob a falsa suposição de que só pode haver um.

(Eu inicializo o Windows8 / 10, Ubuntu, Ubuntu LTS e Fedora em um computador e consertei algumas vezes com a inicialização da UEFI sob requisitos diferentes.)

LiveWireBT
fonte
1
Eu não uso o Windows. Mas alguém tentou copiar / EFI / Windows para / EFI / Windows10 e / ou / EFI / Windows8 e editar cada BCD para ser apenas para essa versão? E então, na UEFI, crie entradas para cada um. Se isso funcionar com UEFI, o grub pode encadear diretamente para cada um.
Novelas
@oldfred Isso é meio que eu queria apontar na seção inferior e pode haver até um parâmetro para bcdbootespecificar outro diretório de destino, mas não tenho certeza. Carregar em cadeia os outros binários EFI de apenas um ESP simplifica bastante 40_custome torna menos propenso a erros, você está certo nisso. Eu acho que estava focado demais em cenários com vários discos rígidos (nesse caso, você ainda deve poder dizer ao bcdboot para inicializar o Windows no HDD2 do ESP no HDD1, eu acho). m (
LiveWireBT 14/11
O computador é compatível com UEFI, mas eu sinceramente não tenho idéia do que está acontecendo com as partições no momento. A escola tinha uma imagem personalizada do Windows 8 instalada e, embora estivesse usando UEFI e Secure Boot (acredito que o BIOS esteja configurado para permitir a UEFI e a inicialização herdada agora; lembro de desabilitar a Secure Boot), o próprio disco rígido é formatado usando MBR. Aqui, faça uma captura de tela: imgur.com/1vDS4jf (Sim, estou planejando redimensionar várias partições em breve.) Além disso, o próprio Ubuntu (do grepping dmesg) não parece ter sido iniciado no modo EFI, mas Eu não sei se o próprio GRUB pode #
Hitechcomputergeek
@Hitechcomputergeek A captura de tela mostra uma tabela de partição msdos / MBR com uma partição estendida e sem partição EFI. Como eu disse anteriormente, você deve ter o GPT e pode usar dismpara as partições do Windows.
LiveWireBT
ser iniciado como UEFI, mas inicie outros sistemas operacionais como não UEFI ou algo assim. UEFI é confuso. EDIT: GRUB não está sendo iniciado como UEFI. Não faço ideia do que aconteceu com o Windows original. Na verdade, pense bem, acho que é possível que não tenha sido UEFI em primeiro lugar. Eu presumi que era porque era basicamente impossível entrar no BIOS por causa da coisa de hibernação do Windows 8, a menos que você o inicializasse primeiro e depois pressionasse "Reiniciar", então tentei entrar no BIOS. Não preciso fazer isso novamente desde a instalação do Ubuntu (e GRUB).
Hitechcomputergeek
2

Basta fazer login no seu sistema operacional Ubuntu, abrir um terminal:

sudo update-grub

reiniciar

Nidhan
fonte