O que o Linux faz com os arquivos existentes em um ponto de montagem?
52
Se eu tentar montar uma pasta que já possui arquivos, o linux me fornecerá uma mensagem de erro ou continuará mostrando o sistema de arquivos montado e os arquivos que já estavam na pasta?
Sempre poderia experimentar com alguns arquivos de teste, não?
18710 Chris
Eu faria se pudesse. Apenas funcionou que eu não tinha nada para testar. Tentei desmontar e montar a unidade em questão, mas os resultados foram inconclusivos porque ambos tinham os mesmos arquivos.
magro
Existe uma maneira de tornar a pasta gravável para que os arquivos não possam existir lá?
endolith
Respostas:
33
Ele será montado e os arquivos desaparecerão, voltando quando a pasta for desmontada.
O que você quer dizer com desaparecer? Eles continuam a existir no servidor e simplesmente não são mostrados ou foram excluídos?
slim
Vou fazer uma verificação rápida, mas acho que eles foram excluídos.
Azz
17
+1 Os arquivos são simplesmente invisíveis enquanto o diretório é montado "sobre" eles. Eles nunca realmente possam ir embora, o são apenas inacessíveis ...
sleske
10
Funciona como uma pilha; se você montar outra coisa, oculta o conteúdo anterior. Quando você desmonta, o material anterior se torna visível novamente.
vtest
4
Estou confuso com o modo como alguém que disse "voltar quando a pasta está desmontada" foi capaz de dizer 3 minutos depois "Eu acho que eles foram excluídos". Felizmente para todos os outros, o primeiro é a realidade aqui.
Underscore_d
111
Ao montar um sistema de arquivos em um diretório /mount-point, não é mais possível acessar os arquivos /mount-pointdiretamente. Eles ainda existem, mas /mount-pointagora se referem à raiz do sistema de arquivos montado, não ao diretório que serviu como ponto de montagem, portanto, o conteúdo desse diretório não pode ser acessado, pelo menos dessa maneira. Por exemplo:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Existem maneiras de obter uma visão mesclada do sistema de arquivos montado e dos dados que já estavam presentes, mas você precisa de uma camada extra chamada sistema de arquivos da união .
No Linux, há uma maneira de ver os arquivos ocultos. Você pode usar mount --bindpara obter outra visão do sistema de arquivos onde está o ponto de montagem. Por exemplo
mount --bind / /other-root-view
Você verá todos os arquivos no sistema de arquivos raiz em /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
Em particular, /mount-pointagora estará acessível como /other-root-view/mount-pointe, como /other-root-view/mount-pointnão é um ponto de montagem, você poderá ver seu conteúdo lá:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
Gilles, essa resposta acabou de salvar minha bunda quando eu precisava obter algumas gravações de asteriscos que foram salvas embaixo de um ponto de montagem da NSF! Eu sempre pensei que --bind tinha a mesma perspectiva do usuário. Obrigado!
21711 Andy on
E os diretórios? Se eu montei /mount-point/1/e montei outro sistema de arquivos /mount-point/, ainda posso acessar /mount-point/1/?
CMCDragonkai
@CMCDragonkai Sim, indiretamente, usando uma montagem de ligação conforme descrito na minha resposta.
Gilles 'SO- stop be evil'
Giles, essa é uma técnica brilhante e me ajudou a analisar o que está no meu próprio sistema. Também ajudou com outra pergunta, que é como verificar o uso de todos os diretórios raiz sem passar pelos pontos de montagem. Solução: mkdir /r; mount --bind / /r; du -sh /r/*. Obrigado
Manngo
@Manngo para referência futura, isso não é necessário. du -x(equivalente a du --one-file-system) teria feito isso sem a necessidade de --bindtravessuras.
Respostas:
Ele será montado e os arquivos desaparecerão, voltando quando a pasta for desmontada.
fonte
Ao montar um sistema de arquivos em um diretório
/mount-point
, não é mais possível acessar os arquivos/mount-point
diretamente. Eles ainda existem, mas/mount-point
agora se referem à raiz do sistema de arquivos montado, não ao diretório que serviu como ponto de montagem, portanto, o conteúdo desse diretório não pode ser acessado, pelo menos dessa maneira. Por exemplo:Existem maneiras de obter uma visão mesclada do sistema de arquivos montado e dos dados que já estavam presentes, mas você precisa de uma camada extra chamada sistema de arquivos da união .
No Linux, há uma maneira de ver os arquivos ocultos. Você pode usar
mount --bind
para obter outra visão do sistema de arquivos onde está o ponto de montagem. Por exemploVocê verá todos os arquivos no sistema de arquivos raiz em
/other-root-view
.Em particular,
/mount-point
agora estará acessível como/other-root-view/mount-point
e, como/other-root-view/mount-point
não é um ponto de montagem, você poderá ver seu conteúdo lá:fonte
/mount-point/1/
e montei outro sistema de arquivos/mount-point/
, ainda posso acessar/mount-point/1/
?mkdir /r; mount --bind / /r; du -sh /r/*
. Obrigadodu -x
(equivalente adu --one-file-system
) teria feito isso sem a necessidade de--bind
travessuras.