Esta resposta e mensagem de email indicam que algo chamado "OverlayFS" está disponível no Ubuntu 11.10 e substituirá forçosamente os aufs no Ubuntu 12.04.
Como eu uso isso? Onde está a documentação?
filesystem
overlayfs
ændrük
fonte
fonte
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
. Além disso, eu não tenho noção. Estou mexendo com ele em um sistema ativo, mas ainda não consegui fazê-lo funcionar. Eu gostaria de descobrir exatamente o que "upperdir" e "lowerdir" significam. Não encontrei nada.Respostas:
Edit: Desde que escrevemos esta resposta, algumas coisas mudaram em overlayfs, a saber, a adição de um parâmetro necessário
workdir
, consulte a resposta de totti abaixo para obter uma descrição detalhada desse novo parâmetro.Eu finalmente consegui encontrar. Encontrei referências a ele no código-fonte do kernel, mas por algum motivo ele não aparece na árvore do git no kernel.org. Mas! Se você puxar a fonte do kernel do Ubuntu assim:
apt-get source linux-image-3.0.0-16-generic
você pode encontrá-lalinux-3.0.0/Documentation/overlayfs.txt
. Também está disponível no pacote linux-doc em/usr/share/doc/linux-doc/filesystems/overlayfs.txt.gz
.Como a documentação de ajuda real é mais "como funciona" em vez de "como montar com ela", aqui está um breve resumo (há um exemplo na documentação do kernel):
mount -t overlayfs -o [mount options] overlayfs [mountpoint for merged system]
Onde [opções de montagem] podem estar:
Uma coisa que me confundiu no começo, então eu provavelmente deveria esclarecer, é que montar um overlayfs na verdade não monta um sistema de arquivos. Eu estava tentando montar um sistema de arquivos squashfs usando uma montagem overlayfs, mas não é assim que funciona. Você deve primeiro montar o sistema de arquivos (no meu caso, squashfs) em um diretório arbitrário e depois usar overlayfs para mesclar o ponto de montagem (um diretório) e outro diretório em um diretório terciário (o ponto de montagem overlayfs) (editar: este diretório "terciário" pode realmente ser o diretório upperdir =). O diretório terciário é onde você verá os sistemas de arquivos mesclados (ou árvores de diretórios - é flexível).
Exemplo 1, sobrepondo o sistema de arquivos raiz
Estou trabalhando em um disco de inicialização híbrido do Ubuntu, onde o sistema Ubuntu básico existe como filesystem.squashfs e tenho arquivos chamados ubuntu.overlay kubuntu.overlay xubuntu.overlay e lubuntu.overlay. Os arquivos .overlay são instalações básicas dos referidos sistemas com o conteúdo de filesystem.squashfs podado (para economizar espaço). Então eu modifiquei os scripts init para sobrepor o arquivo .overlay da distribuição correta (a partir de um parâmetro de inicialização) usando overlayfs e as opções acima e funciona como um encanto!
Estas são as linhas que eu usei nos meus scripts init (depois que todas as variáveis forem traduzidas):
Observe que o filesystem.squashfs acima é um diretório criado pelo casper, não um arquivo.
Essas três instruções criam um
/overlay
diretório, montam um sistema de arquivos squashfs no/overlay
diretório e, em seguida, usam OverlayFS para mesclar essencialmente o conteúdo de/overlay
over/
.Exemplo 2, mesclagem transparente de dois diretórios
No processo de reconstrução do meu USB ativo para cada versão, uso o OverlayFS para economizar muito tempo. Começo com um diretório chamado ubuntu-base, que contém o conteúdo da imagem do ubuntu-core, que é a instalação mais básica. Vou então criar diretórios chamados ubuntu, kubuntu, lubuntu e xubuntu.
Então, eu uso o OverlayFS para fazer com que os arquivos da base do ubuntu apareçam nos diretórios individuais. Eu usaria algo como isto:
Isso faz com que os arquivos do ubuntu-base apareçam na pasta kubuntu. Então, posso
chroot
ir para a pasta do kubuntu e fazer algo parecidoapt-get install kubuntu-desktop
. Quaisquer alterações feitas durante a montagem do OverlayFS permanecerão no diretório superior, neste caso, na pasta do kubuntu. Então, uma vez desmontado, o OverlayFS monta os arquivos que realmente existem no ubuntu-base, mas que são "espelhados" na pasta do kubuntu desaparecem, a menos que tenham sido alterados. Isso me impede de ter várias cópias dos arquivos no ubuntu-base e ainda poder usá-las como se elas existissem fisicamente em cada local.fonte
overlay
não comoverlayfs
Em https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt :
fonte
Estendi esses artigos para incluir um script para overlayfs que configura um fs raiz somente leitura.
Espero que ajude.
fonte
Exemplo mínimo executável
GitHub upstream .
Saída do primeiro
ls
com o suporte:Saída do segundo
ls
sem a montagem:Interpretação:
work/
diretório) com o qual não devemos nos preocuparExemplo adaptado de: Exemplo de uso de OverlayFS
Aqui está um exemplo mais complexo com várias camadas inferiores: Overlayfs são recarregados com várias camadas (migração para longe de aufs)
Testado no Ubuntu 18.04, kernel do Linux 4.15.0.
fonte