Pesquisando o recurso não documentado
Você está certo, o comando ntldr
(é o comando, não o módulo) não está documentado. Então é uma ótima desculpa
para algumas aventuras em
arqueologia de código .
Sempre que encontro um recurso não documentado, a primeira coisa a fazer é verificar as fontes.
-
A fonte no repo do bazar em Savannah mostra que foi fundido na linha principal em agosto de 2010.
-
Voltando ao branch de origem, você pode ver correu à existência no início daquele ano , em abril de 2010. O comentário no checkin, de "Vladimir 'phcoder' Serbinenko", foi
ntldr support. (based on information from nyu but no code from him)
Ele é baseado muito de perto no comando chainloader
, tanto que
o nome do arquivo no comentário do cabeçalho ainda não foi atualizado.
Agora que temos um check-in exato e um nome, podemos verificar a correspondência arquivos. Você pode ver onde os desenvolvedores tiveram a discussão sobre adicionando este recurso um ano antes no lista de discussão do grub-devel :
Alguns trechos relevantes desse tópico:
Robert Millan This patch implements a loader for NTLDR boot semantics (which are the same in BootMGR, hence both are supported)
Robert Millan If we want this feature at all, I think it should be an option in the chainloader rather than a standalone command. It's almost the same as the chainloader really, the only difference is that ntldr is load after PBR by GRUB instead of by PBR itself.
Vladimir Serbinenko I don't think it's of any problem since ntldr uses this PBR only as superblock to identify the partition. As such I would rather consider this loading as a special case of passing $root, just the form of it is a bit weird
Yves Blusseau About the command, i think that it will be simpler for the user if we have only one command: chainloader (like in grub4dos) that will try to detect the type of the bootloader. This is only my personal opinion.
Vladimir Serbinenko I don't agree with this. chainloader and ntldr don't share the same syntax: chainloader expects a bootsector whereas ntldr expects an ntldr ot bootmgr file. GRUB2 is done to break with bad design decisions of GRUB1 one of them being "kernel" command. GRUB4DOS follows GRUB1 on this subject.
Robert Millan Alright. Let's make it a separate command. I think it should still share code with chainloader.c though (with some ifdefs).
Respondendo sua pergunta
Depois de analisar tudo isso, o que sabemos sobre como ele pode ser usado?
-
Baseia-se no chainloader.
-
É necessário um único argumento: o arquivo a ser aberto.
-
Evita o registro de inicialização da partição: portanto, ele pode ignorar a corrupção. Veja esta postagem detalhando como eles testaram isso.
-
É apenas 160 linhas de código , você pode ver que não há muito mais lá.
Espero que isso tenha sido útil!