Configurando a inicialização VHD para sistema operacional Windows 8.1 de 32 bits em UEFI de 64 bits

Configurando a inicialização VHD para sistema operacional Windows 8.1 de 32 bits em UEFI de 64 bits

Eu tenho um Surface Pro 3 que executa nativamente o Windows 8.1 de 64 bits. Por extensão, o UEFI no dispositivo possui um carregador de boot de 64 bits.

Estou tentando configurar o dispositivo para permitir uma inicialização VHD em um sistema operacional Windows 8.1 de 32 bits. Quando finalmente inicializo a imagem VHD, acabo recebendo uma mensagem de erro informando que a imagem está corrompida.

Os passos que tomei foram os seguintes. Primeiro criei o arquivo vhdx:

diskpart
create vdisk file=D:\windows8.vhdx maximum=40960 type=expandable
select vdisk file=D:\windows8.vhdx
attach vdisk
create partition primary
assign letter=F
format quick label=VHDX
exit

Em seguida, montei a imagem do Windows 8.1 de 32 bits em minha E:\unidade e apliquei a imagem ao arquivo .vhdx:

dism /Apply-Imaeg /ImageFile:E:\Sources\install.wim /index:1 /ApplyDir:F:\

Depois de fazer isso, usei bcdboot para gerar as entradas do carregador de boot:

F:\Windows\system32\bcdboot.exe F:\Windows /s F: /f ALL /d /addlast

Depois, procurei a entrada do carregador de boot e adicionei o tipo de inicialização do hipervisor e uma descrição apropriada:

bcdedit /v
bcdedit /set {GUID-FROM-ABOVE} hypervisorlaunchtype auto
bcdedit /set {GUID-FROM-ABOVE} description Windows 8.1 32-bit (VHDX)

Em seguida, reiniciei o dispositivo para poder selecionar a imagem de inicialização do VHD:

shutdown /r /o /t 0

Quando finalmente inicializei a imagem, recebi o seguinte erro:

Your PC needs to be repaired
File: \windows\system32\winload.efi
Error code: 0xc0000359  
The application or operating system couldn't be loaded because a required file is missing or contains errors.

O que estou fazendo de errado aqui?

Responder1

Informações adicionais atualizadas sobreInicialização UEFI Windows entre plataformas.

Suporte do Windows para UEFI

A Microsoft começou com suporte para EFI 1.10 em servidores e depois adicionou suporte para UEFI em clientes e servidores.

Com o UEFI 2.3.1, existem versões x86 e x64 do UEFI. O Windows 10 oferece suporte a ambos. No entanto, UEFI não oferece suporte para inicialização entre plataformas. Isso significa que um computador com UEFI x64 pode executar apenas um sistema operacional de 64 bits, e um computador com UEFI x86 pode executar apenas um sistema operacional de 32 bits.


Adição de algumas informações sobre inicialização do Windows 10, Windows To Go para UEFI vs Legacy | 32 x 64 bits.

https://technet.microsoft.com/en-us/library/mt185782(v=vs.85).aspx

Verificando a compatibilidade arquitetônica entre o PC host e a unidade Windows To Go

Além do suporte para inicialização USB no BIOS, a imagem do Windows 10 na unidade do Windows To Go deve ser compatível com a arquitetura do processador e o firmware do PC host, conforme mostrado na tabela abaixo.


Também tenho um Surface Pro 3 e descobri e experimentei algumas peculiaridades.

O Surface Pro 3 tem os seguintes recursos/problemas:

  • É umDispositivo "somente" UEFI
  • Sem suporte para BIOS legado/CSM (modo de compatibilidade)(A maioria das máquinas terá uma configuração no firmware que permite ativar isso, mas não nesta máquina)
  • Por isso,inicializando sistemas operacionais mais antigosnessas máquinas novas não é compatível.
  • Parece não ter suporte e provavelmente não pode ser feito; a menos que alguém encontre um hack ou solução alternativa (não suportada oficialmente pela Microsoft).
    • Além disso, o Surface Pro 3 é fornecido de fábrica com inicialização segura, TPM e seu disco rígido e partições estão, por padrão, no estado bloqueado por bits.
    • Essas três coisas causam uma série de problemas totalmente diferentes na inicialização de sistemas operacionais.
    • Para inicialização nativa de VHDs tive que desativá-los

Por que isso é um problema e por que isso está acontecendo?

Um exemplo com nota semelhante:

Resumo essencial: Em máquinas mais recentes (como o Surface Pro 3 e o laptop Toshiba), os OEMs começaram a extrair certas coisas (exemplos listados acima) que seriam usadas para ajudar na compatibilidade com versões anteriores para inicializar e executar sistemas operacionais mais antigos.

Citando com um semelhantefioeresponderpor "JHoff80" nos Fóruns da Microsoft:

Desculpe, mas acho que você é SOL. Meu entendimento é que o UEFI deve ter a mesma arquitetura do sistema operacional que você está tentando executar. O Surface Pro UEFI é de 64 bits e, portanto, você só pode executar um sistema operacional de 64 bits nele.

Infelizmente, o Surface também não possui a opção “Legacy Boot” para emular um BIOS como muitos outros PCs possuem.

Artigos e informações adicionais sobre inicialização UEFI de 32 bits:

Parece que há problemas e limitações na inicialização UEFI de 32 bits, especialmente com uma variedade de combinações de hardware + firmware + partição + sistema operacional.

Me deparei com o seguinte e pode ter alguma relevância aqui para ajudar as pessoas a depurar e resolver seus problemas.

Site do Ubuntu citado abaixo. https://help.ubuntu.com/community/UEFI

Para instalar o Ubuntu no modo UEFI:

  1. Use um disco de 64 bits do Ubuntu. (Ubuntu32bit não pode ser facilmente instalado no modo UEFI. Isso é um problema se UEFI de 32 bits for a única maneira de seu computador inicializar, por exemplo, se você tiver um laptop moderno baseado em Intel Atom. Neste caso, você precisaráuma solução complicada.)

Inicialização UEFI de 32 bits usando E2B:
http://rmprepusb.blogspot.com/2014/09/32-bit-uefi-booting-using-e2b.html

Alguns tablets baseados em Intel Atom são apenas UEFI de 32 bits (mesmo que a própria CPU Atom seja uma CPU de 64 bits).
O problema é que se o tablet do usuário for um sistema UEFI de 32 bits (que não suporta o modo CSM\MBR), ele precisará encontrar um sistema operacional inicializável por UEFI de 32 bits - e não há muitos deles por aí!
Nota: Se eles forem inicializáveis ​​por UEFI de 32 bits, eles conterão o arquivo \EFI\boot\bootia32.efi (entre outros). Se eles não contiverem esse arquivo, não inicializarão a partir de uma unidade USB E2B em um sistema UEFI de 32 bits.
As instruções (encontradas por Karan) para inicializar o Ubuntu a partir do Asus T100 estão [aqui][5]. Karan descobriu que poderia copiar o arquivo bootia32.efi de [aqui] [6] para um arquivo .imgPTN Ubuntu 14.04 de 64 bits (\EFI\boot\bootia32.efi) e seu sistema Intel Atom inicializado. Suspeito que isso só funcionará se o seu firmware for UEFI de 32 bits, mas sua CPU for de 64 bits, como o [Notion Ink CN89553G] de Karan [7].

Semelhante:https://superuser.com/a/889802/183467

Alguns sistemas não suportam inicialização Legacy\CSM\MBR. Procure essas opções nas configurações do firmware e desative também o Fast Boot. Sistemas sem opção Legacy\CSM\MBR só podem inicializar UEFI. LinuxLive e E2B são para sistemas de inicialização Legacy\CSM\MBR.

informação relacionada