Sistema de arquivos Linux: ponto de montagem vs pasta?

1

Gostaria de solicitar a ajuda da comunidade para entender o conceito * nix de "pontos de montagem" versus pastas. Eu tentei fazer uma leitura em plano de fundo como this , isso e isso , entre outros, mas o conceito ainda é confuso para mim. Vou tentar fazer essa pergunta de modo que não seja uma duplicata do primeiro link a>.

Divulgação: minha base de computação esteve quase inteiramente em um ambiente DOS / Windows, provavelmente contribuindo para minha dificuldade em entender isso.

Primeira pergunta: o que é um ponto de montagem? (Eu li várias explicações sobre o que é, talvez o dado em resposta a isso fará a diferença).

Também gostaria de trabalhar com um exemplo específico. A saída a seguir é de uma caixa do Linux com a qual eu trabalho:

>df -k
Filesystem                        1K-blocks      Used Available Use% Mounted on
/dev/mapper/fedora_localhost-root 239727136 215317088  12209500  95% /
devtmpfs                            8145236         0   8145236   0% /dev
tmpfs                               8166384       160   8166224   1% /dev/shm
tmpfs                               8166384       796   8165588   1% /run
tmpfs                               8166384         0   8166384   0% /sys/fs/cgroup
tmpfs                               8166384        76   8166308   1% /tmp
/dev/sda1                            487652    150127    307829  33% /boot

>ls -l /dev/mapper/fedora_localhost-root 
lrwxrwxrwx 1 root root 7 Jan  3 18:12 /dev/mapper/fedora_localhost-root -> ../dm-0

>ls -l /dev/dm-0
brw-rw---- 1 root disk 253, 0 Jan  3 18:12 /dev/dm-0

Deixe-me tentar verbalizar minha compreensão tênue, e talvez os respondentes possam entender e corrigir meus mal-entendidos

A partir de minhas leituras, o think Linux "torna dispositivos físicos como discos rígidos disponíveis como 'dispositivos de bloco' que se parecem com arquivos localizados em algum lugar em / dev", por exemplo %código%. Está correto?

A partir de minhas leituras, meu entendimento é que um "ponto de montagem" é como o "diretório mais importante" de uma determinada partição, algo como /dev/dm-0 ou C:\ na terminologia do DOS. Está certo?

Uma coisa que não entendo é: meu exemplo mostra D:\ "montado em" /dev/dm-0 . Mas não é / o "diretório mais alto"? Quero dizer, cada pasta acessível é necessariamente uma subpasta de / , não é? Por exemplo. / , /home , etc. são todas as pastas "sob" /var porque são prefixadas por / , certo? O que eu quero dizer é: se meu entendimento de que "um ponto de montagem é como o diretório mais alto de uma determinada partição" está correto, como você pode ter mais de um ponto de montagem, pois o ponto de montagem mais alto é / já usado?

Relacionada ao parágrafo acima: / é ela própria uma subpasta de /dev/dm-0 . Então não estou claro como o ponto de montagem / pode ser o ponto de entrada para algo que é uma subpasta? Algo parece circular sobre isso, e eu não entendo isso.

Por fim, alguém pode explicar a diferença entre um ponto de montagem e uma subpasta? Um dos artigos que eu leio diz / , / e /home são todos pontos de montagem. Então qual é a diferença entre /boot ser um ponto de montagem versus se eu tivesse executado /home ?

Obrigado por qualquer ajuda. Estou todo tipo de confuso e confuso sobre isso.

    
por StoneThrow 04.01.2017 / 19:57

4 respostas

4

O Windows também suporta pontos de montagem de unidades (a Microsoft os chama de "pontos de nova análise", mas o conceito é o mesmo). Como você está mais familiarizado com o Windows do que com os sistemas operacionais * NIX, aqui está um pequeno experimento em que você pode executar o no Windows para ajudá-lo a entender o conceito:

  1. Insira uma unidade flash USB no seu computador.
  2. Crie uma nova pasta vazia em sua área de trabalho.
  3. Abra o console de gerenciamento de disco, clique com o botão direito na unidade flash e selecione Change Drive Letters and Paths...
  4. Na caixa de diálogo, clique no botão Add... .
  5. Verifique se o botão Mount in the following empty NTFS folder: está selecionado e navegue até o caminho da pasta que você criou na sua área de trabalho (por exemplo, C:\Users\<your profile>\Desktop\New Folder )
  6. Clique em OK e OK. Agora confira sua área de trabalho. Você verá que a pasta que você criou tem um ícone de atalho:

Sevocêolharparaeleapartirdeumajaneladepromptdecomando,vocêoverácomoumtipodeobjeto<JUNCTION>:

Observequesuaunidadeflashagoratemdoispontosdemontagem;E:(ouqualqueroutro)eapastaquevocêcriounaetapa2.Vocêpoderemoveraletradaunidadesequiser,eaindaaindapoderácopiararquivospara/delaatravésdapastasuaáreadetrabalho.Vocêpodeatéadicionarváriasletrasdeunidadeparaele,sequiser.Istoéoqueumpontodemontagemé:ésimplesmenteumcaminhoparavocêacessarsuasunidades/partições.

AocontráriodoLinux,oWindowsrepresentaestapastacomoumtipodeatalhoexcêntrico.OWindowsfazissoporqueospontosdemontagemsãoumconceitoestranhonomundodaMicrosoft(daísuaconfusão).Elesnemfuncionamcorretamenteemmuitoscasos.Masnossistemasoperacionais*NIX,éassimqueascoisassãofeitas.UmdiretóriopodeserumapastaouumpontodemontagemnoLinuxe,namaioriadasvezes,adistinçãoentreosdoisnãoimporta.

*OssistemasoperacionaisNIXnãopossuemumconceitodeletrasdeunidade.Seusistemadearquivos"raiz" ( / ) está sempre no topo da árvore e é (geralmente, mas nem sempre) montado como a unidade de inicialização do seu sistema. Isso é o que C:\ é para o Windows. Só pode haver uma raiz (assim como só pode haver uma unidade C: ). Todas as outras unidades ou partições no seu sistema devem ser montadas em um caminho (diretório) sob essa raiz. Então, o que seria D: ou E: no Windows seria /mnt/D_Drive , /media/cdrom ou mesmo /var , /home , ou o que for no Linux.

Agora, isso é importante e é uma grande fonte de sua confusão:
Um nó de dispositivo não é a mesma coisa que um ponto de montagem. O Windows e o Linux possuem nós de dispositivo. A diferença é que o Windows nunca os mostra para você, e eles não existem como arquivos em seu disco rígido como no Linux.

Na tela de prompt de comando acima, você notará que a pasta que você criou está listada como \??\Volume{GUID}\ . Tanto no Linux quanto no Windows, o próprio dispositivo bruto tem um nó de dispositivo (por exemplo, /dev/sda1 no Linux ou \??\Volume{GUID} no Windows). O ponto de montagem é o sistema de arquivos naquele dispositivo . No Windows, você pode pensar em letras de unidade ( E:\ , por exemplo) como pontos de montagem para suas unidades / partições. A única diferença é que o Windows nunca mostra o nó do dispositivo \??\Volume{GUID} . Ele só mostra pontos de montagem, e esses pontos de montagem são quase sempre letras de unidade (mas, como vemos no experimento acima, não precisam ser).

Espero que isso liberte as coisas para você.

Agora, volte para o Gerenciamento de disco e exclua esse ponto de montagem antes de fazer algo estúpido acidentalmente, como tentar copiá-lo / movê-lo para algum lugar! : -)

    
por 04.01.2017 / 23:48
3
Wrote this as a comment, realised I could expand it into a full blown answer.

Pastas são uma idéia de janelas, esqueça-as. Quanto aos diretórios, bem no linux tudo é um arquivo, e assim pode existir em um diretório. Além disso, não há nada inerentemente errado com links circulares, você pode ter um link em / link que vai para /; Linux permite isso, aceitá-lo, seguir em frente

Um ponto de montagem, é o ponto no qual um dispositivo montado é acessível.

Seu / 'root' nunca se move, é sempre / mas todo o resto pode estar em qualquer lugar que você queira. (Existem certos padrões que tentamos seguir, detalhados na documentação do LSFH.)

Depois de ter /, você pode montar outros dispositivos dentro desse "espaço". Normalmente você teria um drive / arquivo de swap que existe sob algum caminho obscuro tratado pelo kernel

Você pode ter uma unidade inteira dedicada a / home - portanto, esse seria o ponto de montagem e, então, você poderia ter / usr e / tmp em suas próprias unidades, sendo cada um deles um ponto de montagem também.

Você pode imaginar que os dispositivos físicos existem fora de /, e o material em / dev é meramente atalhos imaginários para isso, se isso faz você se sentir melhor.

    
por 04.01.2017 / 21:10
2

Regra geral: tendo um diretório, você pode criar um ponto de montagem montando algo nele. O conteúdo original do diretório (se houver algum; é uma boa prática usar diretórios vazios para pontos de montagem) é de agora em diante inacessível, porque algum outro sistema de arquivos é sobreposto lá.

Por exemplo Se o seu HDD for D:\ no Windows e houver D:\data\a1\ , você pode montá-lo no Linux em /mnt/foo/ e imediatamente /mnt/foo/data/a1/ . A montagem em /bar/baz/ permitirá que você alcance o mesmo diretório a1 que /bar/baz/data/a1/ .

Um subdiretório em algum lugar dentro desse sistema de arquivos recém-montado (como /bar/baz/data/a1/ ) pode se tornar um ponto de montagem para outra coisa, se você desejar, sem restrição geral aqui.

No começo, você tem / disponível. Você monta seu sistema de arquivos raiz lá. Inclui (entre outros) alguns diretórios vazios destinados a serem pontos de montagem para outros sistemas de arquivos. Dessa forma, você constrói sua árvore de diretórios - cobrindo vários sistemas de arquivos em determinados pontos de montagem na ordem correta.

    
por 04.01.2017 / 22:34
0

No Windows, quando você tem partições diferentes ou unidades inteiras com um sistema de arquivos que o sistema operacional reconhece, elas recebem uma letra de unidade atribuída (D :, E :, etc). No Unix, você tem um sistema de arquivos que é montado como root e o restante deles é acessível através de pontos de montagem. Uma vez montado, você acessa a unidade como uma pasta do sistema de arquivos raiz. A pasta mountpoint deve existir no sistema de arquivos raiz antes de você montar outro sistema de arquivos lá. Como o unix tende a implementar tudo como uma solução geral, é possível montar um compartilhamento do Windows, uma imagem .iso ou um sistema de arquivos temporário (como um ramdrive do DOS) em um ponto de montagem e uma vez montado é transparente para o usuário.

Nota: Eu sei que esta é uma descrição um pouco imprecisa, mas é como eu explicaria para mim quando eu era um usuário do Windows.

    
por 04.01.2017 / 22:07