Como posso montar um lowerdir em um subdiretório específico com overlayfs?

1

Eu quero montar os seguintes diretórios usando o overlayfs:

(lowerdir) /chroot in /merged
(lowerdir) /home   in /merged/home
(upperdir) /tmpfs  in /merged

... para que o diretório mesclado resultante seja um sistema COW que contenha o / chroot e / home.

Não consigo encontrar uma maneira de fazer isso.

1) Tentando vários dirs inferiores:

mount -t overlay -o lowerdir=/chroot:/home,upperdir=/tmpfs,workdir=/workdir overlay /merged
ls /merged

== > falha, o conteúdo / home é mesclado com o conteúdo / chroot diretamente em / mesclado sem entrar em um subdiretório / mesclado / home.

2) Tentando montagens de bind:

mount --bind /home /chroot/home
mount -t overlay -o lowerdir=/chroot,upperdir=/tmpfs,workdir=/workdir overlay /merged
ls /merged/home

== > vazio, o conteúdo da sub-montagem / chroot / home não aparece em / mesclado / home.

Alguma ideia? Obrigado.

    
por alkisg 30.07.2015 / 10:11

3 respostas

0

Eu me deparei com esse problema exato hoje, no entanto, eu estava usando / , /usr , /var como o teste, pois queria capturar alterações no filesytem de uma instalação de pacote e passá-las para fora do OverlayFS upperdir '.

Eu descobri que o OverlayFS não foi projetado para isso, então eu me lembrei do unionfs-fuse ... Eu também vi que o OverlayFS poderia se usar como lowerdir , então eu tirei uma foto usando o unionfs-fuse e funcionou.

Tenha em mente que este é apenas um teste PoC rápido de "laboratório", e tenho certeza que você vai querer ajustar bastante as opções de fusível unionfs para suas necessidades ...

mkdir merged union upper work
sudo unionfs-fuse /=RO:/usr=RO:/var=RO:/home=RO union
sudo mount -t overlay overlay -olowerdir=union,upperdir=upper,workdir=work merged
sudo echo test > merged/newtestfile
ls merged/newtestfile # exists
ls upper/newtestfile # exists

No geral, a solução é um pouco distorcida / demente, mas parece funcionar, pelo menos, para o que eu estava tentando realizar isolando as alterações que poderiam ser desnatadas do diretório ./upper.

    
por Terra 03.06.2016 / 11:28
0

Comprometemos a solução em: link

    
por alkisg 18.10.2016 / 07:35
0

Uma solução é criar uma sobreposição separada para o que deve acabar como /chroot/home em outro lugar, depois vinculá-la ao topo da sobreposição para /chroot

    
por user698623 09.06.2017 / 18:51