Build kernel sem suporte para o sistema de arquivos / boot

0

Estou construindo um kernel personalizado para o RPi. O problema é que o gerenciador de inicialização RPi requer uma partição vfat / boot enquanto eu pretendo minimizar o tamanho do kernel, então é necessário remover o suporte vfat do kernel.

Eu li os livros Embedded Linux Primer e Linux Kernel Development. Pelo que entendi, parece que a partição / boot é usada pelo bootloader para procurar por kernel e initramfs, entre alguns outros arquivos importantes

Eu tentei remover o suporte vfat do kernel, mantendo o / boot formatado como vfat. O kernel inicializou bem. No entanto, o systemd ficou preso em algum lugar dizendo que ele falhou ao montar / boot, o que é perfeitamente correto já que o kernel não suporta o vfat. Systemd então me deu um escudo de resgate.

Eu queria saber que desde que o gerenciador de inicialização RPi já suporta o vfat, e é capaz de carregar o kernel sem nenhum problema, existe alguma maneira que eu possa pedir ao systemd para não montar / inicializar? Pelo que entendi, uma vez que o kernel já está carregado neste estágio, o kernel não precisa acessar a partição / boot.

Qualquer ajuda será apreciada.

    
por Fulcrum 26.07.2018 / 18:05

1 resposta

1

O systemd tentará montar os sistemas de arquivos que você listou em /etc/fstab , portanto, se você remover /boot de /etc/fstab , ele não deve tentar montá-lo.

(Acabei de testar isso em um sistema Fedora, removi-o de /etc/fstab e confirmei que ele não estava montado.)

O systemd tem algum código para tratar partições EFI especialmente, então talvez seja isso que você tem no RPi e é isso que está acionando a montagem ... Mas isso é tipicamente implementado usando uma unidade de montagem automática, em outras palavras, tentará montá-lo somente se alguém olhar dentro de /boot .

A lógica para montar a partir de /etc/fstab é implementada por systemd-fstab-generator e a lógica para montar a partição EFI é implementada por systemd-gpt- gerador automático .

Outro comando útil é systemctl status /boot (quando você o monta com o kernel que suporta vfat), o que pode lhe dar mais dicas de onde ele está vindo.

Espero que ajude!

    
por 27.07.2018 / 03:38