Inicialização dupla UEFI pré-instalada do Windows 8 e Linux em um laptop

10

Estou tentando configurar o Windows 8 e o Arch Linux em um novo Sony Vaio E14 com o Windows 8 pré-instalado.

Tão longe:

  • instalei o W8 no meu novo SSD (alternado para o HDD original) usando a mídia de recuperação
  • encolheu a partição W8, partição de recuperação excluída, troca desabilitada
  • inicialização W8 confirmada muito bem

Para o Arch:

  • inicialização segura desativada na BIOS
  • inicialização W8 confirmada muito bem
  • Inicialize o Arch fora do CD e instale tudo na 4ª e 5ª partições
  • configurar o rEFInd para o carregador de inicialização do kernel EFIstub

Depois disso, piorou. Não consegui inicializar nada além do Windows 8 (embora eu estivesse feliz por eles pelo menos continuarem funcionando bem).

Tentou:

  • criando EFI \ refind \ e colocando o .efi lá (conforme o manual do Arch
  • substituindo EFI \ boot \ bootx64.efi
  • substituindo EFI \ Microsoft \ Boot \ bootmgr.efi
  • sobrescrevendo EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd mostrado!

Por enquanto, tudo bem. Eu mantive todo o diretório W8 Boot \ no EFI \ windows8 e configurei um menu de inicialização; e inicializou muito bem.

Mas, ao reiniciar, tudo estava errado - 'Sistema operacional não encontrado' em vez de qualquer carregador de inicialização (refind ou w8).

Inicializei novamente no Arch usando o CD ao vivo para descobrir que a partição EFI tinha uma tabela FAT incorreta. O fsck.vfat o corrigiu e eu descobri que o EFI \ Microsoft \ Boot estava de volta ao seu estado original (todos os arquivos de refind foram excluídos e substituídos pelos gerenciadores de inicialização W8). Eu os sobrescrevi novamente e voltei a aparecer corretamente e o Arch sendo perfeitamente inicializável.

Depois disso, tentei renomear apenas EFI \ Microsoft \ Boot \ bootmgfw.efi para bootmgfw.001.efi (copiando .efi do refind para bootmgfw.efi e mantendo todos os outros arquivos como estavam), mas com exatamente o mesmo resultado. Tentei marcar a partição GPT EFI como somente leitura, mesmo resultado.

Agora estou meio sem sorte. O Arch é inicializado corretamente, o W8 também, mas destrói a partição EFI no processo.

Obrigado por todas as idéias, o Google me levou até aqui e não consigo encontrar nada melhor.

PS - Windows 8 TALVEZ destrói a partição após o desligamento - quando eu ordeno um desligamento no W8, leva um tempo invulgarmente longo (cerca de meio minuto em vez de ~ 5 segundos). Então, em teoria, eu poderia resolver isso redefinindo o laptop com força, em vez de um desligamento normal, mas isso não é legal.

itchy355
fonte
Receio não poder ajudar aqui, não tenho uma máquina UEFI para testar coisas. Mesmo que essa não seja a maneira mais desejada, tente adicionar uma entrada do Linux ao gerenciador de inicialização do Windows e inicializá-la lá, mas ainda não tentei isso em uma máquina UEFI. Veja aqui o procedimento: superuser.com/a/499652/18050 Além disso, eu sempre uso o Archboot para instalar o Arch, experimente se você estiver usando as imagens oficiais porque a instalação leva em consideração os sistemas UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy
Isso soa como um conflito entre o Arch Linux e algo que o Windows 8 faz. Você já tentou outra distribuição para decidir que não é o Arch Linux que tem o problema?
Ramhound #
Obrigado pela sugestão do easyBCD, definitivamente vou tentar. Eu não me importo com o gerenciador de inicialização que está sendo usado; portanto, se o Windows puder fazer isso, ficarei mais do que feliz. Vou postar resultados amanhã, quando houver tempo livre do trabalho para atrapalhar algo :) instalei tudo manualmente (seguindo o homem).
precisa saber é o seguinte

Respostas:

5

Pode valer a pena fazer um desligamento a frio (pressione o botão liga / desliga) no Windows para ver se você pode inicializar posteriormente, apenas como um teste. Obviamente, você não gostaria de fazer isso regularmente, mas pode ser útil confirmar que o Windows está substituindo seus dados ESP revisados. Se realmente estiver danificando o sistema de arquivos no desligamento do Windows, isso soa como um bug do Windows que deve ser relatado à Microsoft. Se está apenas substituindo o bootmgfw.efiarquivo, isso está tecnicamente dentro do alcance da Microsoft, portanto não é realmente um bug.

De um modo mais geral, você já tentou usar o efibootmgrprograma linux para registrar o rEFInd na EFI com seu próprio nome (digamos, EFI/refindno ESP)? Isso está descrito na documentação do rEFInd, na seção sobre instalação manual do Linux. Como alternativa, você pode instalar usando o install.shscript. Qualquer um dos métodos exigirá uma inicialização no modo EFI para ter sucesso, mas você poderá fazer isso usando um CD rEFInd ou a inicialização a partir de um disco de emergência no modo EFI.

Se efibootmgrnão funcionar, tente usar bcfgem um programa shell EFI, conforme descrito nesta página wiki do Arch.

Se esses procedimentos não funcionam, tente usar efibootmgrou bcfgpara remover a entrada para bootmgfw.efia partir da NVRAM e depois instalar Refind como EFI/BOOT/bootx64.efi. Em teoria, o computador pode iniciar o rEFInd, que deve funcionar normalmente e permitir a inicialização de qualquer sistema operacional. Há duas armadilhas potenciais, no entanto: O firmware pode favorecer EFI/Microsoft/boot/bootmgfw.efimais EFI/BOOT/bootx64.efi; e o Windows pode verificar suas opções de inicialização e adicionar seu próprio carregador de inicialização à NVRAM quando inicializar. Ainda assim, vale a pena tentar esse método.

A especificação EFI exige que os computadores cumpram suas configurações de NVRAM (que são gerenciadas efibootmgrno Linux, bcfgem um shell EFI ou em programas similares); portanto, se esses utilitários não funcionarem, seu firmware estará quebrado e você poderá considerar retornar o computador para outro modelo. (Lembre-se de informar a Sony por que você devolveu o computador, se o fizer!) Esse tipo de problema é realmente bastante comum; Eu tenho uma placa Gigabyte com uma "EFI híbrida" que esquece suas configurações de NVRAM, por exemplo. Pelo menos com esta placa, é possível contornar o problema nomeando meu gerenciador de inicialização / carregador de sua escolha EFI/BOOT/bootx64.efi.

Se você não conseguir fazê-lo funcionar e não desejar ou não conseguir substituir o computador, tenho outras duas sugestões para soluções alternativas:

  • Você pode manter um CD ou unidade flash USB inicializável à mão com o refE nele, e usá-lo quando quiser inicializar o Linux. Isso pode exigir o uso de uma tecla de função para instruir o computador a inicializar a partir da mídia removível, e não do disco rígido, sempre que você inicializar.
  • Você pode limpar as partições do disco, reparticionar usando o MBR e reinstalar os dois sistemas operacionais no modo BIOS e não no modo EFI. Isso removerá qualquer falha de EFI da imagem e permitirá que você use um GRUB no modo BIOS como seu carregador de inicialização. Isso provavelmente exigirá uma cópia comercial do instalador do Windows 8; pelo menos no Windows 7, as cópias OEM eram inflexíveis sobre o modo de instalação (BIOS vs. EFI). Como alternativa, pode ser possível converter de uma inicialização no modo EFI para uma inicialização no modo BIOS sem reinstalar. A opção oposta é possível (eu ia postar um link em um site onde é descrito, mas este site não me permite postar mais de dois links; desculpe), e me lembro de percorrer descrições de como fazer uma EFI- conversão para BIOS em algum lugar, mas não tenho um URL à mão. Uma pesquisa no Google pode revelar algo.

Eu tropecei nesta página depois de postar minha primeira resposta, e há outra causa possível para pelo menos parte do seu problema: Aparentemente, o Windows 8 usa um método de desligamento mais semelhante a uma operação de suspensão em disco. O resultado é que as partições montadas podem ser corrompidas se você desligar o Windows e inicializar o Linux. Embora o ESP não é normalmente montado no Windows 7, AFAIK, pode ser que o Windows 8 faz as coisas de forma diferente, ou talvez o ESP é montado no Windows 7 e apenas parece ser escondido. De qualquer forma, você pode desativar esse recurso do Windows 8 digitando o seguinte comando em uma janela de Prompt de Comando do Administrador:

powercfg /h off
Rod Smith
fonte
Na verdade, o Windows 8 não quebra nada quando o frio é interrompido. Eu não me sinto como postar um erro, porque afinal de contas eu sou o único bagunçar sua bootloader :)
itchy355
Eu tentei mexer com o efibootmgr; mostrou que há um número incomumente alto de gerenciadores de inicialização (mais do que os 3 que eu esperaria), o que me levou a procurar melhor no meu disco; e descobri que na verdade tenho duas partições EFI: -x Somente a segunda (/ dev / sda2) foi mostrada como uma EFI system partitionno GDisk, o que me fez pensar que é a correta. A outra é apenas uma partição FAT (sda1) com o mesmo tamanho e estrutura de arquivo EFI padrão.
itchy355
Se eu alterar a ordem de inicialização para carregar o rEFInd primeiro, algo chamado `` sony original '' e outros, ele se substituirá novamente ao padrão (windows, sony original, others (refind)) PS; Isso tudo foi dito considerando que ,, janelas '' é o meu sobrescritobootmgfw.efi
itchy355
1
Enquanto isso, eu tentei o powercfg /h offw8, e este corrigiu o W8 quebrando a partição EFI .. esse é o Santo Graal que eu estou procurando, parece :) OBRIGADO OBRIGADO!
itchy355
Fico feliz em saber que o powercfg /h offseu principal problema foi resolvido. Você pode estar interessado em saber que encontrei informações que algumas implementações UEFI parecem codificadas para mover um carregador de inicialização chamado "Windows Boot Manager" para o topo de suas listas. Assim, renomear seus gerenciadores de inicialização usando efibootmgrpode permitir a instalação do rEFInd (ou o que você quiser) sob um nome de arquivo mais sensato.
Rod Smith