Depois de algumas pesquisas, encontrei uma maneira de alcançar o que eu estava procurando.
Eu tive que cavar a imagem initramfs ( /boot/initrd.img-...
) para descobrir como a montagem de vários sistemas de arquivos foi realizada. A imagem do initramfs para o ubuntu core foi particularmente útil.
O design que eu decidi é bastante semelhante ao do Ubuntu.
Eu crio uma instalação inicial do ubuntu, faço as configurações que preciso e depois faço uma cópia profunda usando cpio
e finalmente empacote a cópia em um sistema de arquivos squashfs somente leitura usando mksquashfs
. Eu armazenarei a imagem do squashfs na partição principal do novo sistema operacional. Durante o carregamento do sistema operacional, editei initrd.img
para montar a imagem do squashfs da versão desejada em /root
e, em seguida, configurei overlayroot
sobre ela, que é uma sobreposição gravável.