Montando uma partição em uma 'sandbox'

8

Eu estou querendo saber se isso é possível. Eu quero configurar um sistema Linux que monte / máquina linux remota em / na máquina local. No entanto, quero que todas as alterações na máquina local sejam salvas na memória RAM para que não afetem a máquina remota. O ideal seria que as alterações NUNCA fossem gravadas, para que, quando eu reinicializar, ele montasse a partição / original novamente, desconsiderando todas as alterações feitas durante a sessão anterior.

É algo assim possível?

    
por Falmarri 23.09.2010 / 21:56

5 respostas

7

Use unionfs , aufs (ambos são patches externos para o kernel) ou unionfsfuse / funionfs (usa FUSE) e cria união unindo externamente / como RO e sistema de arquivos interno (montado como tmpfs / ramfs / partição adicional que é limpa a cada vez).

Alternativamente, você pode usar o sistema de arquivos ou o LVM com instantâneos. Em seguida, as alterações são gravadas, mas você pode limpar os instantâneos em cada inicialização.

    
por 23.09.2010 / 22:36
5

Existem várias maneiras de fazer isso. A configuração mais fácil usaria um sistema de arquivos union, que apresenta uma visão única de duas árvores de diretório A e B, de modo que todas as alterações sejam salvas em B. No seu caso, A seria um ponto de montagem NFS / Samba / sshfs /… e B seria um diretório inicialmente vazio em um sistema de arquivos tmpfs.

O Linux não possui um sistema de arquivos de união in-kernel, mas existem várias implementações de FUSE : funionfs , Unionfs-fuse .

    
por 23.09.2010 / 22:37
3

Se / se encaixa na RAM da máquina local e deixa espaço suficiente para a execução de aplicativos, a idéia básica provavelmente seria inicializar um sistema Linux mínimo na máquina de destino e criar automaticamente um disco virtual ramfs, copiar / remoto para isso e chroot para este novo /. Se a RAM não for suficiente, você basicamente pode seguir o mesmo procedimento, mas não usar ramfs, mas sim uma partição de disco real, cujo conteúdo é necessário limpar antes de copiar. Em vez de limpar e copiar completamente, você também pode usar o rsync com as opções apropriadas.

    
por 23.09.2010 / 22:13
0

Isso pode ser muito fácil com a inicialização do PXE. Estou executando um sistema xbmc ao vivo sobre a inicialização do pxe tftp nfs. as alterações são escritas com COW para compartilhar NFS.

    
por 03.01.2011 / 12:26
0

Você pode optar por Btrfs e seu recurso Copy-on-Write (CoW).

O que você pode estar procurando está descrito no Wiki do Btrfs como Dispositivo de sementes :

A ideia básica é tornar a partição com dados originais somente leitura, do que "adicionar camada adicional em cima dela", que é outra partição gravável (você sempre pode fazer isso na RAM, por exemplo, em /dev/shm ) e monte-o:

btrfstune -S 1 /dev/RO #make it read-only
mount /dev/RO /mnt/temp
btrfs device add /dev/RW /mnt/temp
umount /mnt/temp

e a partir desse momento, cada vez que você monta

mount /dev/RW /mnt/test

as alterações são salvas em / dev / RW, enquanto / dev / RO permanece intocado.

(exemplos são baseados em wiki )

    
por 20.08.2012 / 21:04