O Grub não mostra uma opção do Windows 8 após a inicialização dupla

25

Então, eu tenho dual-boot com sucesso minha máquina Windows 8 com o Ubuntu 12.04. No entanto, ainda não tenho um método conveniente de escolher qual sistema operacional carregar no momento da inicialização.

Depois de instalar o Ubuntu, meu computador ainda carrega o Windows 8 diretamente. Em seguida, adicionei grubx64.efi à lista branca do meu gerenciador de inicialização. Mas depois disso, minha máquina carrega o Ubuntu diretamente, mesmo sem uma sombra do GRUB aparecendo!

Eu usei boot-repair e recebi este URL paste.ubuntu: paste.ubuntu.com/1326074 . Depois de executar o boot-repair (e re-white listando o arquivo grubx64.efi ), o GRUB agora aparece, mas sem nenhuma opção do Windows 8!

Por fim, eu corri sudo fdisk -l e isso me deu isso:

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


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 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: 0x6396389f

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

Eu estou supondo que meu problema tem algo a ver com o aviso de fdisk acima, mas eu não sei o que fazer com ele. Como eu procuro agora?

Editar

Meu etc/default/grub é o seguinte:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR='lsb_release -i -s 2> /dev/null || echo Debian'
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Além disso, apenas para o registro, isto é o que eu segui na instalação minha bota dupla. O tutorial (que usa, 11.10, devo observar), não menciona nada sobre esse problema. Existe alguma coisa lá que eu não deveria ter feito?

    
por skytreader 02.11.2012 / 12:12

7 respostas

17

Primeiro, sua saída fdisk -l não é um problema; que simplesmente identifica seu disco como usando o sistema de particionamento Tabela de partição GUID (GPT) . Para visualizar suas partições, você deve usar uma ferramenta habilitada para GPT, como gdisk ou parted , em vez de fdisk , que não entende a GPT.

Em segundo lugar, você pode conseguir que o GRUB acelere o Windows adicionando uma entrada adequada a /etc/grub.d/40_custom e, em seguida, fazendo um sudo update-grub . Uma entrada pode ser algo assim:

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Os detalhes podem depender da sua instalação.

Em terceiro lugar, se você considerar que o rEFInd é feio, poderá sempre tentar outro tema do rEFInd ou criar o seu próprio, conforme descrito a documentação do rEFInd. Como alternativa, se você preferir um carregador de inicialização no modo de texto, poderá definir a opção textonly em refind.conf . Você pode conseguir um fim semelhante mudando para gummiboot.

Em quarto lugar, se o rEFInd estiver relatando erros periodicamente, anote-os ou tire uma foto da tela com uma câmera digital e denuncie-os para mim. (Eu sou o mantenedor do rEFInd.) Bugs não podem ser consertados se ninguém os reportar; ou se não forem bugs em rEFInd, as mensagens podem fornecer pistas sobre como resolver o problema.

Finalmente, é possível inicializar o Linux via rEFInd (ou gummiboot) sem usar o GRUB; você só precisa de um carregador de inicialização EFI diferente. Minha preferência pessoal é o stub loader do kernel do Linux. Isso está disponível apenas em núcleos 3.3.0 e posteriores , Apesar. Como o Ubuntu 12.04 vem com um kernel 3.2.0, você precisará encontrar um 3.3.0 pré-compilado para o Ubuntu 12.04 (já ouvi falar de tais coisas, mas não tenho nenhum link acessível) ou possui a partir do código-fonte. (Você também pode instalar o Ubuntu 12.10, que vem com um kernel adequado, mas presumivelmente você quer uma versão LTS, então isso pode não ser o ideal.) Veja a documentação do rEFInd página na inicialização do Linux para detalhes adicionais sobre como configurar isto. Você também pode usar o ELILO ou o GRUB Legacy. Se você simplesmente se opuser ao atraso, poderá reduzir o valor de tempo limite do GRUB 2 e configurá-lo para não exibir o menu por padrão.

    
por Rod Smith 02.11.2012 / 19:24
8

Inicialize no Ubuntu usando o CD,
Escolha "Experimente o Ubuntu",
Conecte-se à internet,
Abra uma janela de terminal usando Ctrl - Alt - t e, em seguida, execute: boot-repair

Se o reparo da inicialização não for encontrado, instale-o:

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

Clique em Reparo recomendado. Escreva em um papel o novo URL que aparecerá. Reinicie o pc, você deve obter um menu do GRUB com acesso ao Ubuntu e ao Windows. Se tiver algum problema, indique o novo URL.

    
por Scott Stensland 20.03.2013 / 04:27
7

Ambas as respostas com /EFI/Microsoft/Boot/bootmgfw.efi serviriam. No entanto, eu hackei como o inferno para obter as configurações corretas para set root='(hd0,gpt1)' . Se você sabe que é muito simples

Quando o GRUB começa: pressione c dê o comando ls no prompt.
Você obtém uma lista de partições em discos rígidos como (hd0, gpt1) etc.
Digite ls (hd0, gpt1) e tente os outros.
Olhe para o rótulo e se ele indicar EFI, você sabe que tem um sucesso.

Atenção: pode haver mais partições rotuladas com o EFI, dependendo de como você instalou o Ubuntu. Experimente todos eles.

    
por Jørgen 15.02.2013 / 18:46
6

Tente executar sudo update-grub . Espero que isso reconheça o Windows 8 automaticamente e adicione-o ao GRUB e reconfigure o menu.

Se isso falhar, compartilhe seu arquivo /etc/default/grub aqui, daremos uma olhada.

    
por Tom Klino 02.11.2012 / 12:24
3

Tente criar um arquivo chamado /etc/grub.d/30_windows que contenha isto: %código% Em seguida, execute %pr_e% e reinicialize.

tutorial completo

    
por tradeJmark 14.12.2012 / 21:54
1
  1. Faça o download do super Grub e siga as instruções. Eu nunca saio de casa sem ela. Muito útil quando o menu do grub não aparece.

  2. Você terá que carregar em um cd e inicializá-lo. Basta seguir as instruções que o acompanham.

  3. Ele também pode ser usado para corrigir janelas também. Desde que você só pode inicializar no windows 8, você quer escolher a correção do linux.

Brinque com isso, mas leia as instruções. Você vai se sentir como um especialista depois de um tempo. RS

    
por Fox 13.05.2013 / 04:10
0

Minha solução final

(* Porque o Tom não funcionou e o link do NikTh é muito complicado. Mas, hey, obrigado por incomodar!)

Instale rEFInd .

Estou aceitando minha própria resposta até que alguém aponte uma possível falha e conserte ou resolva meus problemas (o que, infelizmente, apenas faz a pergunta "Como coloco o Windows 8 no GRUB facilmente ? ").

( Editar 8/6/17: eu finalmente usei o rEFInd para resolver este problema (veja a resposta aceita acima).)

Longe de ser uma solução perfeita, usar o rEFInd parece ser um trabalho muito complicado. Por um lado, parece feio (desculpe rEFInd) e me diz que o acesso foi negado em certos .efi's ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) na inicialização --- nada crítico, porém, e vai embora com um botão pressione*. E, finalmente, escolher o Ubuntu efi ainda carrega o GRUB, o que é um passo totalmente desnecessário, pelo menos já que não vou me incomodar em manter versões múltiplas do kernel.

Em resumo ...

Prós: meu sistema agora funciona mais ou menos como minhas dual-boots pré-UEFI. Contras: parece feio, mais um tempo de inicialização mais longo.

* Devo observar que este rEFInd foi instalado via install.sh na minha partição do Ubuntu. Experiências anteriores com o rEFInd (configuração através do Windows) não tiveram esse problema.

    
por skytreader 02.11.2012 / 19:01