O GRUB não detecta o Windows


66

Finalmente instalei o Ubuntu na minha segunda unidade. Quando inicio o computador, o GRUB oferece apenas a inicialização do Ubuntu, não o Windows 7. O que precisa ser feito para que eu possa escolher entre o Ubuntu e o Windows no GRUB?

Quando pressiono F12 para o menu de inicialização na inicialização e o escolho, Windows Boot Managerele inicializa no Windows 7.


Eu executei o comando sudo fdisk -le aqui está o log ( http://pastebin.com/Cgv1igHc ):

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc3ffc3ff

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1953525167   976762583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Indique seu URL de informações de inicialização . Isso fornecerá informações relevantes para ajudá-lo.
LovinBuntu

Respostas:


100
  1. Inicialize o Ubuntu e monte sua partição do Windows (basta abrir o disco no Nautilus)

  2. Execute o seguinte na linha de comando ( Ctrl+ Alt+ t):

    sudo os-prober
    
  3. Se sua instalação do Windows foi encontrada, você pode executar:

    sudo update-grub
    

Observe que a etapa 2 é apenas para sua conveniência. Você pode simplesmente montar a partição do Windows 7 e depois executar update-grub.

Pergunta relacionada


Eu tenho 2 partições com 2 janelas instaladas, ele só detecta minha instalação em outra partição, mas não as novas janelas instaladas (em um SSD)! até montou ... uma ideia?
Philippe Gachoud

Obrigado. Interessante que o os-prober pareça precisar da etapa 1. Muito importante, ou o Windows não funcionará.
Visualização elíptica

mount -t ntfs-3g -o ro /dev/sda4 /media/windowspara montar a partição do Windows
Yuvaraj Loganathan

perfeito! executar ambos os comandos fez o truque
Aryeh Beitz

trabalhou! obrigado!
DigaoParceiro

10

Se o os-probermétodo acima não funcionar, tente adicionar uma entrada de menu personalizada do grub. Documentado aqui .

Os dois primeiros passos são para encontrar o seu <UUID>.

  1. Execute lsblke encontre o nome da linha com/boot/efi

Exemplo de saída (aqui a resposta é sda2) :

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0   477G  0 disk 
├─sda1        8:1    0   450M  0 part 
├─sda2        8:2    0   100M  0 part /boot/efi
├─sda3        8:3    0    16M  0 part 
├─sda4        8:4    0    47G  0 part /windows
├─sda5        8:5    0 425,6G  0 part /
└─sda6        8:6    0   3,7G  0 part [SWAP]
mmcblk0     179:0    0  14,9G  0 disk 
└─mmcblk0p1 179:1    0  14,9G  0 part
  1. Execute sudo blkid /dev/sdaXonde sdaXestá a resposta da etapa anterior ( sda2no meu caso) .

Exemplo de saída (aqui a resposta é 58E4-427D) :

/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
  1. Adicione o seguinte no final do arquivo /etc/grub.d/40_custom:
menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set <UUID>
     chainloader +1  
}
  1. Execute sudo update-grube reinicie.

Obrigado a @Christopher Markieta por todos os detalhes em outra resposta. Também os adicionei a este (mesmo que os detalhes específicos da entrada personalizada sejam diferentes.)
Carolus

9

Eu tinha o Windows 10 em execução e tentei a inicialização dupla. Depois que o Ubuntu foi instalado, o Win 10 não estava aparecendo no meu carregador GRUB. Eu tentei o seguinte -

Primeiro, desabilitei o Secure Boot no Win10. Em seguida, execute os comandos abaixo no Ubuntu:

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

Funcionou muito bem. Foi capaz de encontrar o Windows e o Ubuntu no GRUB depois disso.


Esse PPA ainda existe? Eu não era capaz de adicioná-lo e ele alegou que não existia a partir do Ubuntu 18.04 inicialização do disco
jocull

Acabei de receber um 404 Not Founderro no Debian
winklerrr

5

Resolvi um problema semelhante seguindo as etapas do Boot-Repair

Instalar reparo de inicialização

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

Pressione "Reparação recomendada" e coloque no terminal alguns comandos, conforme sugerido.

Eu acho que meu Grub não reconhece janelas devido a um desligamento ruim e resolveu o problema.


3

Se você já teve um RAID instalado, isso pode estar causando problemas. No meu caso, construí minha área de trabalho em 2010 e instalei dois 1,5 TB com um RAID distribuído. O usuário gracemercy54 menciona aqui que isso é deixado em cima dos metadados da configuração anterior do RAID.

Quando tentei originalmente as etapas de Hermes, recebi um erro ao especificar "número incorreto de dispositivos em um conjunto RAID". Portanto, se isso acontecer, você abre um terminal e executa:

   sudo dmraid -rE
   sudo os-prober
   sudo update-grub

Isso corrigiu isso para mim.


Eu acho que o meu também foi causado pelo ataque. Mas sudo dmraid -rEnão funciona para mim. Finalmente consegui mudar para o AHCIBIOS temporariamente, inicializar no Ubuntu e executar sudo update-grub, depois RAID ONvoltar.
realhu

11
AVISO : isso destruirá sua matriz RAID se você ainda a estiver usando.
Christopher Markieta 16/02

3

Método ligeiramente diferente ao copiar de um exemplo de trabalho em outro computador, postando para meus próprios registros.

Anexe o seguinte a /etc/grub.d/40_custom:

menuentry "Windows 10" {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set <boot_efi_uuid>
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Onde <boot_efi_uuid>está o UUID da sua /boot/efipartição. Para encontrar isto:

$ lsblk
NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT                                                  
sda                 8:0    0 119.2G  0 disk
└─md126             9:126  0 357.7G  0 raid0
  ├─md126p1       259:0    0   499M  0 md
  ├─md126p2       259:1    0   100M  0 md    /boot/efi                                                   
$ sudo blkid | grep md126p2 # Replace with your device
/dev/md126p2: UUID=<boot_efi_uuid>

Então, é claro, depois de salvar o arquivo, execute:

sudo update-grub

Reinicialize, agora você poderá iniciar o Windows com êxito.


2

Eu tive o mesmo problema com o Windows 10. Instalei o Linux Mint 18.1 Cinnamon de 64 bits no meu laptop para inicialização dupla com o WIN10. Após a instalação, o GRUB se ofereceu apenas para inicializar o Linux, mas não o Windows.

Eu encontrei a solução de vídeo para o Windows 10 ausente no menu grub e o tópico do fórum Grub não reconhece o Win10 após a Atualização / Reparo , mas infelizmente nem funcionou para mim, então usei uma combinação desses dois para resolver meu problema.

Abra seu terminal e siga estes comandos e abra o arquivo chamado 40_custom:

sudo gedit /etc/grub.d/40_custom

Adicione estas linhas ao final do arquivo e salve e saia:

menuentry "Windows 10" {
   set root='{hd0,1}'
   chainloader + 1
}

Depois de salvar o arquivo, atualize seu GRUB com este comando:

sudo update-grub

Em seguida, reinicie sua máquina para ver se funciona.

Espero que isso funcione para os outros também!


Acredito que esta resposta, embora correta, seja uma cópia da resposta enviada em 29 de maio de 2015
Charles Green

1

Eu tive o mesmo problema e passei 2 dias tentando descobrir. Mas hoje eu tive essa ideia repentina de manhã e deu certo.

Você deve revisar suas configurações de BIOS / Uefi. No meu caso, tive que deixar o Uefi inicializar primeiro. Caso contrário, não consegui detectar janelas do ubuntu. O que eu tive que definir foi o ubuntu> Windows Boot Manager> DISK1> DISK2> DISK3. Instale o DISK1> ubuntu> Gerenciador de Inicialização do Windows> DISK3.

Eu tinha 2 instalações ubuntu, uma no disco rígido e outra no ssd. Aparentemente, a instalação do ssd não estava aparecendo como UEFI para alguns usuários, mas eu queria inicializar o disco mais rapidamente primeiro.

Eu não esperava que a ordem de inicialização possa influenciar o grub na detecção de sistemas. Portanto, vale a pena revisar isso.


1

Eu tive problemas como aqui acima e a solução foi apenas adicionar entrada manual como abaixo:

menuentry "WINDOWS10 (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(/dev/sda,msdos1)'
    search --no-floppy --fs-uuid --set=root 688EB92384B85968
    drivemap -s (hd0) ${root}
    chainloader +1
}

onde UUID acima (688E ...) foi tirado do disco de inicialização do Windows via blkid /dev/sdb1.

ATENÇÃO: a linha adicional

set root='(/dev/sda,msdos1)'

refere-se ao sdaque é visível no Ubuntu, /dev/sdbjá que, na verdade, é o primeiro disco no barramento SATA, enquanto /dev/sdana verdade é o segundo disco montado como raiz /.

Talvez seja por isso que os scripts grub não pudessem funcionar corretamente. Não tive tempo para alterar a ordem física dos discos, mas é bem possível que também ajude a resolver o problema.


0

Eu tive o mesmo problema depois de instalar as atualizações do ubuntu. Os seguintes comandos funcionaram perfeitamente para mim:

sudo apt-get install os-prober

Primeiro instale o os-prober para detectar janelas e, em seguida, atualize o grub:

sudo grub-mkconfig -o /boot/grub/grub.cfg
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.