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

32

Acabei de montar acidentalmente 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 para saber o que aconteceu com os arquivos. Eles são simplesmente excluídos pelo Linux?

T. Brian Jones
fonte
Eles não "vão" a lugar nenhum. Você simplesmente não pode vê-los.
Shadur
14
Eles vão para o mesmo lugar onde os personagens dos livros vão quando você não os está lendo.
Andrew Beals
5
Essa é uma das funções / recursos divertidos da montagem que eu uso / abuse às vezes para saber o estado de algumas coisas. Em alguns pontos de montagem (o diretório), deixarei um arquivo vazio not mountedpara que, se eu o procurar, saberei imediatamente que ele não foi montado por qualquer motivo.
killermist

Respostas:

37

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

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

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

Funciona (então) porque quando você pede ao kernel para montar um sistema de arquivos em algum ponto de montagem, o kernel trata esse 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 montado conteúdo lá.

Mas essa não é a única maneira de combinar essas "camadas" de FSes em uma única exibição. Existe a chamada abordagem " união montada " (é engraçado saber que isso "é um conceito central no Plano 9", aliás). No Linux, você poderia usar o Aufs , que nunca chegou ao kernel da linha principal, ou, atualmente (desde a versão 3.18), o OverlayFS - ele fez .

poige
fonte
21

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 mount mount, conforme 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. Assim, você pode perfeitamente montar o sistema de arquivos raiz /, bem como sobre ele /mnt. Isso é útil ao depurar espaço perdido / arquivos perdidos / contar o uso de disco / ...

Gotcha's:

  • Os arquivos antigos ainda estão lá e ocupando espaço . É um erro comum ter espaço em disco 'ausente' em arquivos ocultos por uma montagem. Por exemplo, quando você acidentalmente gravou arquivos grandes em um diretório e em algum momento decidiu montar um sistema de arquivos nele. Por exemplo, iniciar acidentalmente um grande banco de dados antes de o sistema de arquivos de log ser montado corretamente ...
  • Quando um programa tem um arquivo aberto que é posteriormente oculto por um sistema de arquivos recém-montado, o programa não se importa com isso e continua usando o arquivo 'oculto' com sucesso até que ele seja fechado. A partir desse momento, esse arquivo fica invisível para o processo até que o novo sistema de arquivos seja desmontado e o diretório subjacente seja exibido novamente.
jippie
fonte
Muito interessante que você pode montar um sistema de arquivos mais de uma vez. Parece que será útil.
T. Jones Brian