Monte Tmpfs para diretórios em outra partição

1

Eu tenho /var em uma partição 10Gb EXT4 separada de / . Eu quero ficar /var/cache na RAM usando tmpfs. A entrada /etc/fstab seria bem simples:

tmpgs /var/cache tmpfs size=500M,rw,nodev,nosuid,noexec,noatime 0,0

No entanto, percebo que sem essa entrada du -sh mostra o tamanho do disco como:

# du -sh /var/cache
215M    /var/cache

No entanto, se eu aplicar a entrada fstab acima, reinicializar e executar du -sh , obtenho:

# du -sh /var/cache
160K    /var/cache

Sem a entrada tmpfs, as pastas ldconfig , yum , fontconfig e man estão presentes. Ao usar a entrada fstab tmpfs, somente os dois últimos estão presentes.

Estou curioso sobre isso porque:

  1. Eu não entendo quando usar o sinalizador de montagem de ligação.
  2. Eu tenho /run em uma montagem tmpfs e agora não tenho certeza se o conteúdo dessa montagem é o mesmo que estaria presente se eu não o fizesse.

Por que isso acontece?

    
por unkle_junky 14.08.2015 / 18:21

2 respostas

1

A montagem oculta ou oculta qualquer coisa já existente no diretório fornecido (isso pode causar problemas de diversão se as permissões estiverem erradas no diretório sombreado). Então, quando a montagem tmpfs for removida, o material original estará lá. (Se o cache precisar persistir, você poderia mv / var / cache /var/cache.save, e então fazer coisas rsync depois que o tmpfs for montado pela primeira vez e antes de ser desmontado, mas isso é mais complicação.)

    
por 14.08.2015 / 19:22
1

Como você listou /var/cache em /etc/fstab , um sistema de arquivos tmpfs é montado em /var/cache durante a seqüência de inicialização. Qualquer conteúdo de /var/cache é sombreado pelo ponto de montagem. Os arquivos abaixo de um diretório no qual outro sistema de arquivos está montado ainda existem, mas não podem ser alcançados, já que um caminho como /var/cache/foo entra no outro sistema de arquivos.

Para obter mais informações sobre discrepâncias entre df e du , consulte Por que existem tantas maneiras diferentes de medir o uso do disco?

No Linux, você pode expor o conteúdo sombreado de /var/cache criando um bind montar de /var . Você pode usar isso para remover os arquivos de cache antigos que não estão mais sendo usados:

mount --bind /var /mnt
rm -r /mnt/cache/*
umount /mnt

Não sei ao certo o que você quer dizer sobre /run , mas observe que toda vez que você monta um sistema de arquivos tmpfs, você obtém um sistema de arquivos distinto. Portanto, /run e /var/cache não estão relacionados, não há como um arquivo de um aparecer no outro. São dois sistemas de arquivos que, por acaso, são fornecidos pelo mesmo driver.

    
por 15.08.2015 / 02:53