Como posso criar uma fusão de união / e outro diretório, on / itself?

2

Digamos que inicialmente tenhamos / com o seguinte conteúdo:

/bin/foo
/usr/bin/bar
/usr/lib/libfoo.so

Também temos outro diretório, digamos /stuff , com o conteúdo:

usr/lib/mystuff/mystuff.so
etc/foo/qux/buzz
bin/stuff

Existe uma maneira de criar uma união entre / e /stuff , para que eu tenha:

/bin/foo
/bin/stuff
/usr/bin/bar
/usr/lib/libfoo.so
/usr/lib/mystuff/mystuff.so
/etc/foo/qux/buzz

(com todo o conteúdo de /stuff também, apenas não mostrado).

Essa união deve ser de natureza temporária (assim como as montagens de sistema de arquivos são), caso contrário eu poderia ter usado cp , mv ou rsync também.

Como devo fazer isso?

Seria de esperar que uma resposta para isso seria fácil de encontrar; e de fato, existem muitos recursos online que mencionam a criação de uniões entre dois diretórios e montá-los em outro lugar, mas nenhum realmente cobre esse caso específico de montar um diretório "over" / .

    
por user2064000 08.07.2016 / 16:54

1 resposta

2

Veja as distribuições ao vivo com persistência para um exemplo disso.

Nem todos os métodos de montagem de união funcionam com o diretório raiz. Entre aqueles que são unionfs, aufs e overlayfs. O Overlayfs é o caminho a percorrer nos sistemas Linux modernos.

Em overlayfs , você obtém a união do sistema de arquivos inferior e do sistema de arquivos superior, com o sistema de arquivos superior tendo precedência e recebendo gravações. Para obter uma união gravável, você precisa especificar um diretório de trabalho para overlayfs para armazenar metadados; este deve ser um diretório vazio no mesmo sistema de arquivos que o diretório superior.

mkdir /stuff/.overlayfs.work
mount -t overlay -o lowerdir=/,upperdir=/stuff,workdir=/stuff/.overlayfs.work overlay /
    
por 09.07.2016 / 02:15