Eu tenho tentado encontrar uma maneira mais fácil de instalar o Windows e Linux de inicialização dupla no meu laptop, não necessariamente nessa ordem. O que geralmente precisamos fazer é instalar o Windows primeiro e, em seguida, instalar o linux e permitir que o GRUB manipule o Windows.
Então, o que estou tentando conseguir é encontrar uma maneira de ignorar esse processo de instalação traquina (windows) e apenas usar uma imagem para copiar diretamente na minha unidade. Isso também me permitiria manter meu gerenciador de inicialização (GRUB). (não que eu não possa restaurá-lo posteriormente, mas é política da Microsoft monopolizar, neste caso, negar a existência de outros gerenciadores de inicialização no sistema).
Obtive uma cópia legal do Windows 8.1 e depois instalei-a em uma máquina virtual usando o VirtualBox. Em seguida, criei uma partição NTFS no disco rígido particionado GPT e copiei o conteúdo da partição do Windows da imagem .vdi para a partição recém-criada.
Claro, ainda não funciona. Não sei como substituir o bootmgr. Dá
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
porque ele não consegue encontrar o arquivo da outra partição usada para inicialização, recuperação do sistema etc.
Agora, li que o bootmgr finalmente executa o winload.exe para inicializar o Windows. Não tenho idéia do que fazer a seguir.
Acho que deveria funcionar teoricamente porque tenho todos os arquivos necessários para executar o Windows. Também acho que não devo ser o único que pensou nisso e, portanto, posso estar perdendo algo muito básico aqui. Talvez já esteja pronto?
Eu tenho pouca ideia de como a inicialização funciona. O que eu consegui entender é que, quando você inicializa duas vezes o Windows e o Linux, liga o carregador de inicialização do Windows ao Linux. Então, o que estou tentando alcançar é de alguma forma se livrar do gerenciador de inicialização do Windows.
EDITAR
Eu estive olhando os arquivos binários bootmgr
e \Boot\BCD
. bootmgr
lê o arquivo BCD e lista suas opções, entre as quais você pode selecionar para inicializar.
Portanto, informações como a execução winload.exe
residem no arquivo BCD. Agora, acho que bootmgr
ele próprio é executado pelo syslinux usando o chain.c32
módulo. O que estou tentando fazer é, de alguma forma, executar o gerenciador de inicialização do Windows, ou seja, winload.exe
diretamente do syslinux (se possível), ou modificar bootmgr
para que ele se execute winload.exe
(cujo caminho estará diretamente no bootmgr
executável) sem procurar o BCD ou qualquer outra coisa.
A hibernação (que requer um procedimento diferente) não me interessa nesta etapa.
Edite sua pergunta para nos informar o tipo de firmware e (se EFI) se você ativou o Compatibility Support Module na configuração do firmware
Meu firmware é EFI (com CSM ativado) e normalmente inicializo no Arch Linux usando o GRUB. Eu descobri que é bootmgr
executado System32\winload.exe
em sistemas legados e System32\winload.efi
na EFI.
Eu tenho 0.0
idéia do que fazer a partir daqui. Nos últimos 10 dias, tenho tentado fazer alterações no BCD e acho que estou prestes a alcançar o sucesso. Mas isso é irrelevante, porque o que realmente quero fazer é ignorar completamente o Gerenciador de Inicialização do Windows.
Se você tem alguma idéia de se existe uma maneira de executar isso a winload.efi
partir do shell EFI (apenas uma suposição) ou alguma outra modificação no GRUB, para que ele inicialize o Windows no modo EFI sem o carregador de cadeia.
Quaisquer conselhos são bem-vindos.
Termo aditivo
As seguintes postagens no fórum podem fornecer algumas dicas úteis:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1
O grub4dos agora pode carregar um carregador de inicialização em cadeia (como NTLDR ou BOOTMGR) porque pode atuar como uma substituição do código contido em um setor de inicialização "normal" (ou seja, algo como 300 bytes de código de máquina).
Esse código simplesmente define alguns parâmetros e depois chama o carregador.
Mesmo isso (não foi) fácil de entender e replicar com código diferente.
Um carregador de sistema NT como o BOOTMGR possui mais ou menos em um único .exe um sistema operacional "modo real" (não muito diferente do DOS) e recursos / ferramentas para analisar texto simples e seções do Registro, não é algo que possa ser recuperado. escrito do zero facilmente.
Os mocinhos do @ReactOS estão trabalhando para escrever o FREELDR (que visa substituir o NTLDR muito mais simples) desde ANOS (e acredite, existem entre os programadores do ReactOS alguns realmente bons e bons nisso).
Ela parece (mas não está documentado claramente) que conseguiram arrancar experimentalmente um Server 2003 com NTLDR.
2)
Com a introdução do suporte para (U) EFI, o BootMgr ajuda a abstrair a diferença entre BIOS e (U) EFI. Por exemplo, aqui estão duas sequências:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
O WinLoad espera que um determinado ambiente (incluindo API) esteja presente. O BootMgr cuida disso, portanto [quase] o mesmo programa WinLoad funcionará em qualquer ambiente.
De fato, o (U) EFI define um método para armazenar e buscar parâmetros de inicialização, portanto, o BCD do BootMgr cobre o mesmo objetivo, independentemente do BIOS / (U) EFI.
Além das diferenças de BIOS e (U) EFI, o BootMgr permite fazer uma "escolha de inicialização", enquanto o WinLoad inicializa um sistema operacional específico que ele sabe como inicializar.
Dependendo da quantidade de ambiente que o WinLoad espera estar presente, pode ser possível invocar o WinLoad diretamente. O wimboot de Michael Brown invoca o BootMgr PE [1] diretamente, para que possa invocar o WinLoad diretamente, exceto que o WinLoad provavelmente deseja mais um ambiente. Você poderia tentar!
[1] Não deve ser confundido com o BootMgr que GRUB4DOS e Syslinux 'chain.c32 podem invocar. Esse BootMgr inclui um stub que sabe como chamar o BootMgr PE incorporado.
fonte
setup
utilitário do firmware .Respostas:
Para responder à sua pergunta original, não. O Windows não pode ser carregado sem passar por seu próprio gerenciador de inicialização (no caso de instalações UEFI, bootmgfw.efi). Isso ocorre porque o Windows espera que o gerenciador de inicialização esteja lá E chame o winload.efi. Se isso não acontecer, o Windows falhará até você corrigir o problema. Existem muitas razões para isso (prático e ignorante). Principalmente, é porque a Microsoft escreveu o gerenciador de inicialização para lidar com todas as coisas (carregamento do SO, carregamento do ambiente de recuperação, ambiente de pseudo pré-SO e etc.). Atualmente, a única maneira de obter qualquer aparência de sanidade é encadear a carga usando o Grub-efi.
fonte
Você precisa adicionar o carregador de inicialização do Windows EFI à lista de opções de inicialização no firmware UEFI. Dessa forma, você poderá escolher se:
Opções adicionais, como a unidade de DVD, discos rígidos externos ou inicialização de rede, também devem estar visíveis nesse ponto. O carregador de inicialização UEFI geralmente reside na partição
\EFI
(/boot/efi/
). Como você acabou de copiar a imagem do disco rígido do Windows sem instalar o Windows corretamente, a partição EFI da sua máquina atual pode não conter o carregador de inicialização adequado. Assim, é necessárioVocê poderá escolher qual sistema operacional será inicializado simplesmente alterando a ordem de inicialização do BIOS. No meu laptop, pressionar F12exibe um menu para selecionar qual carregador de inicialização carregar.
Para essas etapas, usarei
efibootmgr
e seguirei as etapas deste tutorial :Você precisará copiar o arquivo correspondente
bootmgfw.efi
para a partição EFI em\EFI\Microsoft\Boot\bootmgfw.efi
ou/boot/efi/Microsoft/Boot/bootmgfw.efi
ao usar o Linux:onde
Microsoft
é uma pasta que contém os arquivos EFI originais para sua versão do Windows.Em seguida, você precisa adicionar o
.efi
arquivo às entradas de inicialização UEFI usando:onde é claro que você precisa alterar
/dev/sda
e-p 1
os valores corretos para o seu dispositivo de disco e número da partição.Observe isso se você tiver um laptop Lenovo:
A inicialização do seu PC deve mostrar algo assim (se você pressionar as teclas correspondentes durante o processo de inicialização):
e
bcdedit
no Windows mostra isso:fonte
\EFI\Boot\Microsoft
pasta para teste (existem alguns arquivos lá)?inherit {bootloadersettings}
realmente significa na loja BCD?Você pode fazer instalações em qualquer ordem, ou seja, Instalando o GNU / Linux e, em seguida, Windows ou vice-verso.
Faça o seguinte depois de instalar todos os seus sistemas operacionais.
Obtenha o "Disco de reparo de inicialização" aqui. http://sourceforge.net/projects/boot-repair-cd/
Crie um pen drive USB inicializável ao vivo (Instruções em pendrivelinux.com)
Ou grave o arquivo ISO em um CD.
Inicialize com isso e siga as instruções na tela. Você terá um GRUB reinstalado contendo todos os sistemas operacionais instalados.
Muito bem sucedida.
fonte