Para responder a parte da sua pergunta que está na linha de assunto, o código executável para isso é mantido na imagem initrd. A imagem initrd pode ser carregada diretamente no kernel no momento da inicialização, que é como o problema chicken / egg é resolvido para obter o código para a leitura de partições ext sem precisar ler a partição.
Em relação à escolha do sistema de arquivos para / boot.
- O Ext3 é compatível com versões anteriores do ext2 e introduz principalmente o registro no diário.
- O Ext4 é uma revisão importante do sistema de arquivos ext, traz muitos recursos novos e não é reversível sem a restauração de dados e a reconstrução do sistema de arquivos.
Eu realmente não vejo a necessidade de me preocupar em usar o ext3 / 4 em / boot. Eu costumo nem me incomodar com um / boot separado em minhas máquinas virtuais e funciona muito bem como parte de minhas partições ext4. Eu não me preocuparia em usar ext2 sem journaling em / boot, pois você provavelmente não terá operações de gravação em andamento no sistema de arquivos / boot durante um corte de energia, a menos que você esteja atualizando seu kernel.
Os módulos são mantidos no local habitual: / lib / modules // kernel / fs /. Eles são compilados na imagem initrd para uso pelo kernel no momento da inicialização.
Atualização: Não encontrei uma declaração oficial do Red Hat, mas é notado no livro de Michael Jang que o RHEL 6 não ext2 para o / boot já que o ext4 é perfeitamente adequado e agora o sistema de arquivos padrão para / boot. O livro Jang também afirma que não há diferenças entre o ext2 e o ext3, exceto o journaling.