ntldr.mod ausente do GRUB2

7

Eu uso o Debian Wheezy na placa-mãe EFI e preciso do módulo ntldr no GRUB2 para carregar o bootmgr do instalador do Windows 7, porque ele começa sozinho (aparentemente, usando o setor de inicialização da unidade flash USB em que o instalador está) instala apenas o Windows em disco formatado com MBR. Quando instalo o GRUB usando o grub-install, ele não adiciona o arquivo ntldr.mod à pasta de módulos do GRUB e não pode inseri-lo.

  1. Por quê? Quando eu só faço o download do pacote GRUB sem instalação (apt-get download ...), o módulo pode ser encontrado lá. Se eu adicionar o arquivo .mod do pacote baixado à pasta de módulos do GRUB instalada e, em seguida, "insmod ntldr" da linha de comando do GRUB, ele diz algo sobre a "mágica ELF" errada (?).
  2. Como fazer isso de forma forçada?
  3. Existe outra maneira de inicializar o instalador do Windows no "modo GPT", como Eu não quero formatar todo o disco em MBR.
por alexey 28.09.2012 / 00:35

4 respostas

0

Eu descobri que o bootloader correto do Windows está oculto em algum lugar nos grandes arquivos compactados que vêm na imagem de instalação. Ele pode ser descompactado, colocado no diretório de boot correto e carregado com o chainloader GRUB2 normalmente. Eu não entendo por que, apesar de ter direito carregador Microsoft esconde-lo em algum lugar profundo e coloca o estranho em dir de inicialização padrão. Isso funcionou para mim (embora, eu baixei o arquivo fornecido na página de instruções que encontrei, porque era um pouco difícil de descompactar). Infelizmente, não me lembro de detalhes, encontrei manual em algum lugar na web, mas a idéia geral é descrita.

    
por 27.12.2012 / 17:16
3

Você fez o download do pacote grub-pc, que é para máquinas de inicialização da bios, portanto, o módulo não será carregado na versão efi do grub. Esse módulo não existe na versão EFI do grub porque ele depende da bios.

Se você quer inicializar o instalador do Windows a partir de um pendrive, então você não deveria estar fazendo nada com o grub; Basta dizer ao seu firmware para inicializar a unidade em vez do seu hd com o grub.

    
por 27.11.2012 / 16:35
0

Alexey, esse problema é visto com frequência no grub2. Me deparei com este, enquanto navega pelos fóruns do Ubuntu, onde é marcado como resolvido. Dê uma olhada: link . Espero que isso ajude você.

    
por 28.09.2012 / 11:52
0

O modo ( Legacy BIOS ou UEFI ) é determinado pelo gerenciador de inicialização instalado nas configurações da USB e do BIOS.

O meio de instalação do Windows 7 deve suportar ambos ( Legacy BIOS e UEFI ). Para o último, depende das suas configurações. Mas como você pode inicializar a partir de seu UEFI-HDD e de suas inicializações do Win7-USB-Stick no modo Legacy BIOS , ele deve ser definido como "ambos", o que significa que seu BIOS suporta UEFI e como um substituto pode inicializar em Legacy BIOS modo.

Para resolver o problema, aconselho que você instale usando um Win7-Image com suporte a UEFI (nem sei se há um sem) e também deve configurar seu BIOS para o modo UEFI explicitamente ( nenhum modo combinado).

Mas se isso não funcionar e para responder à sua pergunta: Isso deve funcionar:

Posicione o Win7-Image no seu HDD ou USB-Drive e escolha os módulos corretos (siga os comentários):

menuentry "Windows 7" --class windows --class os {
    # Insert modules needed in order to access the iso-file
    # choose the right module for the partition-table-scheme the image lies on
    insmod part_gpt
    insmod part_msdos

    # choose the right module for the filesystem the image lies on
    insmod ntfs
    insmod fat
    insmod ext2

    # Insert module needed in order to find partition
    insmod search_fs_uuid


    # Set UUID of partition with the iso-image
    # and let grub2 find the partition
    # (save it's identifier to the variable $root)
    set uuid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    search --no-floppy --set=root --fs-uuid $uuid

    # Mount the iso image by addressing it with (partition)/path
    set iso=/images/Win7_English_x64.iso
    loopback loop ($root)$iso


    # boot (chain-load) the windows7-image using the bootmgfw.efi file located
    # on the Win7-ISO-Image
    chainloader (loop)/efi/microsoft/boot/bootmgfw.efi
}

Se você quiser despejar a imagem diretamente no usb-stick, deve deixar de fora as set iso= - e loopback loop ($root)$iso -parts necessárias para montar o iso. Seu chainloader é então chainloader ($root)/efi/microsoft/boot/bootmgfw.efi

    
por 05.09.2018 / 22:01