Estou construindo um kernel personalizado para RPi. O problema é que o bootloader RPi requer uma partição vfat /boot enquanto eu pretendo minimizar o tamanho do kernel, então preciso remover o suporte vfat do kernel.
Li os livros Embedded Linux Primer e Linux Kernel Development. Pelo que entendi, parece que a partição /boot é usada pelo bootloader para procurar kernel e initramfs, entre alguns outros arquivos importantes
Eu tentei remover o suporte a vfat do kernel enquanto mantinha /boot formatado como vfat. O kernel inicializou muito bem. No entanto, o systemd ficou preso em algum lugar dizendo que falhou ao montar /boot, o que está perfeitamente bem, já que o kernel não suporta vfat. Systemd então me deu um shell de resgate.
Eu queria saber que, como o bootloader RPi já suporta vfat e é capaz de carregar o kernel sem nenhum problema, existe alguma maneira de pedir ao systemd para não montar /boot? Pelo que entendi, como o kernel já está carregado neste estágio, o kernel não precisa acessar a partição /boot.
Qualquer ajuda será apreciada.
O systemd tentará montar os sistemas de arquivos listados em
/etc/fstab
, portanto, se você removê/boot
-/etc/fstab
lo, não tente montá-lo.(Acabei de testar isso em um sistema Fedora, removi
/etc/fstab
e confirmei que não estava montado.)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 ... montá-lo apenas se alguém olhar para dentro
/boot
.A lógica para montar
/etc/fstab
é implementada por systemd-fstab-generator e a lógica para montar a partição EFI é implementada por systemd-gpt-auto-generator .Outro comando útil é
systemctl status /boot
(quando você o monta com o kernel que suporta vfat), que pode lhe dar mais dicas de onde ele está vindo.