Eu tenho tentado montar root (/) como overlayfs.
O sistema operacional está inicializando por NFS para RAM. Adicionei um script de pré-montagem no initrd, que cria os diretórios 'trabalho', 'superior' e 'inferior'.
Durante o processo de inicialização, estou copiando o conteúdo do NFS para o diretório 'inferior'. Overlayfs está sendo montado em ${rootmnt} depois disso.
Finalmente, o script init chroot para ${rootmnt} (próximo, init da raiz real etc...) e o sistema operacional funciona bem.
Naturalmente, não consigo ver os diretórios 'trabalho' e 'superior'. Como posso fazer isso? O que devo alterar no initrd?
O desafio de montar root como overlayfs foi resolvido.
Resumidamente, os diretórios 'inferior', 'trabalho' e 'superior' devem ser movidos para o diretório 'merge'. No entanto, você deve considerar:
1) Não há necessidade de fazer nada se o diretório 'inferior' estiver presente como uma imagem de disco. É só montar. Caso contrário, crie um ponto de montagem tmpfs nele e copie todos os arquivos necessários sobre NFS para ele.
2) Os diretórios 'superior' e 'inferior' devem estar localizados em um sistema de arquivos. Criar outro ponto de montagem tmpfs e, assim, colocar os diretórios 'superior' e 'inferior' nele será suficiente.
3) Certifique-se de que
initrd.img
possui módulos para NFS e Overlayfs. Se eles não existirem, adicione-os em /etc/initramfs-tools/modules.4) Certifique-se de que você
initrd.img
tenha a versão completa do comando 'mount'. Se ele não existir, adicione-o sobre ganchos em/etc/initramfs-tools/hooks
.Por exemplo (alguns detalhes foram omitidos):
Por fim, adicione o script de pré-montagem em
/etc/initramfs-tools/scripts/init-premount/
. Por exemplo: