Emular efeitos do EWF no Linux

2

Recentemente, para um projeto incorporado, fui solicitado a emular no Linux os efeitos da gravação avançada Filtrar (EWF) do Windows XP Embedded.

Em particular, preciso de um tipo de EWF para:

  1. evitando escrever muitas vezes em disco (usamos CFs);
  2. protegendo programas / arquivos de configuração após reinicializações acidentais / falhas / alterações incorretas.
Até onde eu sei, o Linux não tem nenhum recurso similar ao EWF e ele não escreve tanto quanto o Windows no disco. embedded / 2008-03 / msg00018.html "> (veja esta resposta) , mas meu chefe me pediu para investigar algo que possa fornecer uma solução para ambos os requisitos.

No momento, estou tentando essa estratégia simples :

  1. Eu tenho uma pequena partição (ponto de montagem: / safe) com os dados / diretórios que eu deveria proteger (ou seja, todo o diretório / etc)
  2. durante a inicialização do sistema eu montei na RAM (tmpfs) todos os diretórios que eu devo proteger, então copio os dados de / safe para eles.
  3. se tudo der certo, eu posso desmontar / seguro. Se necessário, um pequeno script me permite montar / safe e "commit" alterações em arquivos, se necessário.
  4. Eu posso forçar / somente leitura: todos os programas que eu preciso estão na RAM e eles estão escrevendo coisas na RAM.

Alguma ideia / sugestão?

Estou usando um Debian Lenny despojado com partições formatadas para Ext2 na arquitetura x86 (BTW, alguma sugestão para um sistema de arquivos simples com journal / COW adequado para esta tarefa?).

Obrigado.

    
por Gian Paolo Ghilardi 10.09.2009 / 09:12

2 respostas

3

Resolvido seguindo o excelente < > Como: Construir um sistema Linux somente leitura .

De um dos dois pequenos scripts que fazem a mágica (usa uma união aufs ):

ro_mount_point="${rootmnt%/}.ro"
rw_mount_point="${rootmnt%/}.rw"

# Create mount points for the read-only and read/write layers:
mkdir "${ro_mount_point}" "${rw_mount_point}"

# Move the already-mounted root filesystem to the ro mount point:
mount --move "${rootmnt}" "${ro_mount_point}"

# Mount the read/write filesystem:
mount -t tmpfs root.rw "${rw_mount_point}"

# Mount the union:
mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}"

# Correct the permissions of /:
chmod 755 "${rootmnt}"

Resultados: sistema protegido e aplicativos podem gravar suas coisas (na RAM).

Se eu reinicializar sem "comprometer" todas as alterações no sistema serão perdidas, mas se eu precisar de algo para permanecer permanente, eu posso remontar a partição de leitura-gravação (desta vez r / w significa "no disco" não " na RAM "), faça o" commit "e remonte a partição como somente leitura.

Os scripts são tão elegantes que eu também posso alternar entre os modos "protegido" (para produção) ou "desprotegido" (para desenvolvimento) escolhendo sua entrada rotulada correta no GRUB.

    
por 10.09.2009 / 16:24
1

Apenas para o registro, UnionFS é outra alternativa para aufs que faz muitas das mesmas coisas. A popular distribuição Linux ao vivo KNOPPIX usa o UnionFS para mesclar o sistema de arquivos CDROM somente leitura com um sistema de arquivos tmpfs somente leitura RAM .

    
por 10.09.2009 / 19:37