Para onde vão os arquivos se você montar uma unidade em uma pasta que já contenha arquivos?

31

Eu acidentalmente montei uma nova unidade em uma pasta que já continha arquivos. Eu não me importo com eles e os tenho em outro lugar, mas essa pasta parece vazia agora. Estou curioso sobre o que aconteceu com os arquivos. Eles são simplesmente excluídos pelo Linux?

    
por T. Brian Jones 22.06.2012 / 04:10

2 respostas

35

Apenas "sombreado" e estará lá novamente quando desmontado. :)

Na verdade, os arquivos estão "lá" intactos e se você precisar alcançá-los imediatamente, sem desmontar, isso pode ser contornado com o chamado bind mount:

mount --bind /Original/FS/Mount/Point /Somewhere/Else

Funciona (so) porque quando você pede ao kernel para montar um sistema de arquivos em algum ponto de montagem, o kernel trata o ponto de montagem como uma "porta de visualização" para o sistema de arquivos que você está montando, então é esperado que você veja o FS conteúdo lá.

Mas esta não é a única maneira de como essas "camadas" de FSs podem ser combinadas para visualização única. Existe a chamada abordagem " union mount " (é engraçado saber que isto "é um conceito central no Plano 9", BTW) . No Linux você pode usar Aufs , que nunca entrou no kernel principal, ou, atualmente (desde 3.18), OverlayFS - fez .

    
por 22.06.2012 / 04:15
20

O sistema de arquivos recém-montado é como uma sobreposição que oculta parte do sistema de arquivos inicial. Há truques para acessar os arquivos, como o bind mount como descrito por poige. No Linux, eu pessoalmente gosto do fato de que você pode montar um sistema de arquivos mais de uma vez em diferentes pontos de montagem. Então você pode perfeitamente montar o sistema de arquivos raiz em / , bem como em /mnt . Isso é útil ao depurar espaços perdidos / arquivos perdidos / usar o disco de contagem / ...

Gotcha's:

  • Os arquivos antigos ainda estão lá e usando espaço . É um erro comum ter espaço em disco 'ausente' nos arquivos ocultos por uma montagem. Por exemplo. quando você acidentalmente escreveu arquivos grandes em um diretório e em algum momento decidiu montar um sistema de arquivos nele. Por exemplo. acidentalmente iniciando um grande banco de dados antes que o sistema de arquivos de registro seja montado corretamente ...
  • Quando um programa tem um arquivo aberto que é subseqüentemente oculto por um sistema de arquivos recém-montado, o programa não se preocupa com isso e continua usando o arquivo 'oculto' até que ele seja fechado. A partir desse momento, esse arquivo se torna invisível para o processo até que o novo sistema de arquivos seja desmontado e o diretório subjacente apareça novamente.
por 22.06.2012 / 09:01