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

10

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

Até agora:

  • instalou o W8 no meu novo SSD (comutado para o HDD original) usando Mídia de Recuperação
  • reduziu a partição do W8, excluiu a partição de recuperação, desativou a troca
  • confirmou a inicialização do W8 bem

Ligado para Arch:

  • Boot Seguro desativado no BIOS
  • confirmou a inicialização do W8 bem
  • Carregou o Arch do CD e instalou tudo na 4ª e 5ª partição
  • configure o rEFInd para o carregador de inicialização do kernel do EFIstub

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

Tentei:

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

Até agora, tudo bem. Eu mantive o diretório Boot \ W8 inteiro no EFI \ windows8 e configurei um menu de inicialização para ele; e inicializou bem.

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

Voltei ao Arch usando o live CD para descobrir que a partição EFI tinha uma tabela FAT errônea. O fsck.vfat resolveu o problema, e descobri que o EFI \ Microsoft \ Boot estava de volta ao estado original (todos os arquivos foram apagados e substituídos por bootloaders do W8). Eu os substituí novamente e voltei ao rEFInd aparecendo corretamente e o Arch sendo perfeitamente inicializável.

Depois disso, tentei apenas renomear o EFI \ Microsoft \ Boot \ bootmgfw.efi para bootmgfw.001.efi (em seguida, copiar o arquivo .efi do refind para bootmgfw.efi e manter TODOS os arquivos como estava), mas com exatamente mesmo resultado. Tentei marcar a partição GPT EFI como somente leitura, o mesmo resultado.

Agora estou meio sem sorte. O Arch inicializa bem, assim como o W8, mas ele destrói a partição EFI no processo.

Obrigado por qualquer ideia, o Google me trouxe até aqui e não consigo encontrar nada melhor.

PS - windows 8 MAYBE destrói a partição após o desligamento - quando eu peço um desligamento no W8, demora muito tempo (cerca de meio minuto em vez de ~ 5 segundos). Então, em teoria, eu poderia resolver isso com a reinicialização do laptop em vez de um desligamento normal, mas isso não é legal.

    
por itchy355 05.11.2012 / 12:39

1 resposta

5

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

Mais amplamente falando, no entanto, você tentou usar o programa efibootmgr do linux para registrar o rEFInd com a EFI sob seu próprio nome (digamos, EFI/refind no ESP)? Isso está descrito na documentação do rEFInd, na seção sobre instalação manual do Linux. Alternativamente, você pode instalar usando o install.sh script. Qualquer um dos métodos exigirá uma inicialização no modo EFI para ser bem-sucedida, mas você deve ser capaz de fazer isso usando um CD rEFInd ou inicializar a partir de um disco de emergência no modo EFI.

Se efibootmgr não funcionar, tente usar bcfg em um programa shell EFI, conforme descrito em esta página wiki do Arch.

Se esses procedimentos não funcionarem, tente usar efibootmgr ou bcfg para remover a entrada para bootmgfw.efi da NVRAM e instalar o rEFInd como EFI/BOOT/bootx64.efi . Em teoria, o computador pode então iniciar o rEFInd, que deve funcionar normalmente e permitir a inicialização de um dos sistemas operacionais. Existem dois problemas potenciais: O firmware pode favorecer EFI/Microsoft/boot/bootmgfw.efi over EFI/BOOT/bootx64.efi ; e o Windows pode verificar suas opções de inicialização e adicionar seu próprio gerenciador de inicialização de volta à NVRAM quando for inicializado. Ainda assim, esse método vale a pena tentar.

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

Se você não consegue trabalhar e não deseja ou não pode substituir o computador, tenho duas outras sugestões para soluções alternativas:

  • Você pode manter um CD inicializável ou uma unidade flash USB à mão com o rEFInd e usá-lo quando quiser inicializar o Linux. Isso pode exigir o uso de uma tecla de função para dizer ao computador para inicializar a partir da mídia removível, em vez do disco rígido, sempre que você inicializar, no entanto.
  • Você pode limpar as partições do disco, reparticionar usando o MBR e reinstalar os dois SOs no modo BIOS, e não no modo EFI. Isso removerá qualquer fragilidade da EFI da imagem e permitirá que você use um GRUB no modo BIOS como seu carregador de boot. Isso provavelmente exigirá uma cópia de varejo do instalador do Windows 8; pelo menos para o 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 reinstalá-lo. A opção oposta é possível (eu ia postar um link para um site onde ele é descrito, mas este site não me deixa postar mais de dois links; desculpe), e eu me lembro de percorrer as descrições de fazer um EFI- para a conversão para o BIOS em algum lugar, mas não tenho uma URL à mão. Uma pesquisa no Google pode transformar alguma coisa.

Eu deparei com esta página depois de postar minha primeira resposta, e tem outra causa possível para pelo menos parte do problema: Aparentemente, o Windows 8 usa um método de desligamento mais semelhante a uma operação de suspensão para disco. O resultado é que as partições montadas podem ficar corrompidas se você desligar o Windows e inicializar o Linux. Embora o ESP não seja normalmente montado no Windows 7, AFAIK, pode ser que o Windows 8 faça as coisas de maneira diferente, ou talvez o ESP esteja montado no Windows 7 e pareça estar oculto. Em qualquer caso, você pode desativar esse recurso do Windows 8 digitando o seguinte comando em uma janela Prompt de Comando do Administrador:

powercfg /h off
    
por 06.11.2012 / 19:38