squashfs
é um sistema de arquivos compactados somente leitura. Ele não tem nenhuma disposição para fazer modificações, uma vez que tenha sido criado. Então você não poderia escrever nele mesmo se o dispositivo de bloco subjacente pudesse ser feito gravável. Você precisaria criar uma nova imagem de squashfs de todo o sistema de arquivos com suas modificações e gravá-la no dispositivo de armazenamento onde o sistema de arquivos está armazenado, o que seria problemático no sistema ativo. / p>
Outra opção é montar um sistema de arquivos diferente em /etc
. Poderia ser por meio de uma montagem de união se fosse suportada pelo kernel, que mescla dois sistemas de arquivos normalmente com um sistema de arquivos registrando apenas as alterações em um sistema de arquivos somente leitura base .
Verifique se há suporte para AUFS_FS ou OVERLAY_FS na configuração do kernel.
Por exemplo, para unir um diretório em /tmp
(provavelmente gravável, embora possivelmente em tmpfs
na memória (portanto, não persistente em uma reinicialização) no seu caso, se o sistema não tiver armazenamento permanente gravável)
mkdir -p /tmp/etc/work /tmp/etc/upper
mount -t overlay \
-o lowerdir=/etc,upperdir=/tmp/etc/upper,workdir=/tmp/etc/work \
overlay /etc
Em seguida, /etc
será gravável e as modificações feitas a ele serão realmente armazenadas em /tmp/etc/upper
.
Como alternativa, se for apenas um pequeno arquivo que você deseja modificar, você poderá ligá-los (sim, você pode montar em qualquer arquivo, não apenas diretórios) de uma versão armazenada em um sistema de arquivos gravável:
cp /etc/passwd /tmp
mount --bind /tmp/passwd /etc/passwd
Então /etc/passwd
seria gravável. Claro que você também pode fazer isso para todo o /etc
. ( cp -a /etc /tmp && mount --bind /tmp/etc /etc
).