Mountpoint para diferentes partições e diferentes sistemas de arquivos

3

Durante a leitura do ponto de montagem , penso no gerenciamento de arquivos no Linux, da seguinte forma:

  • / é o corpo principal de uma árvore
  • /a é uma ramificação do corpo principal, /a/b é uma ramificação de /a branch
  • Para montar uma partição c no ponto de montagem /a/b significa "suspensão" /c na ramificação /a/b , resultando em /a/b/c

Eu tenho algumas perguntas:

  1. Podemos apenas montar uma partição inteira, ou podemos fazer com uma parte dessa partição? Por favor, explique.

  2. Montamos uma partição em outra partição já montada? Por exemplo, alguns d montados em /mnt , agora posso montar outro /e em d , criando /mnt/d/e ? Ou podemos / apenas montar em "branch fixo" como / , /mnt ? Se for possível, o que acontecerá se desmontarmos /d , será /e automaticamente desmontado?

  3. Podemos montar algo com um sistema de arquivos diferente? Por exemplo, /a tendo o sistema de arquivos F1, posso montar /b com o sistema de arquivos F2 em a e criar /a/b ?

  4. Digamos que um dispositivo sda tenha 2 partições sda1 , sda2 . Na prática comum, as pessoas montariam em qualquer ponto de montagem que quisessem, como /sda1 to /a/sda1 , sda2 to /b/c/sda2 , ou montariam no mesmo diretório?

  5. No Linux, como o Fedora 22, como posso criar uma partição / sistema de arquivos virtual ou temporário para testar e aprender a montagem e o ponto de montagem?

por Kenny 17.12.2015 / 16:16

2 respostas

4

Primeiro: você não monta a partição. O que está montado é o sistema de arquivos . O sistema de arquivos pode viver em uma partição, mas isso não é necessariamente assim; sistemas de arquivos comumente vivos:

  • dentro do arquivo (por exemplo, imagens ISO),

  • inteiramente na RAM (por exemplo, / tmp às vezes é criado dessa maneira),

  • dentro do kernel (/ sys e / proc funcionam desta forma),

  • ou como um serviço de rede (o NFS e o Samba funcionam dessa maneira).

To mount a partition c onto the mount point /a/b means "hanging" /c onto the /a/b branch, resulting in /a/b/c

Isso está incorreto.

Primeiro, há muitas maneiras de se referir ao sistema de arquivos (por exemplo, mais comum - e mais seguro na maioria dos casos - é usar o UUID, tente executar lsblk -o +UUID,LABEL como usuário normal para ver IDs que seu kernel conhece) mas nenhum deles tem implicações no caminho resultante real.

Portanto, ao montar, você fornece um caminho (esse caminho é chamado de ponto de montagem e já deve existir). Depois que o sistema de arquivos é montado, sua raiz se torna acessível nesse mesmo caminho que você forneceu --- e não em um subdiretório dele.

  1. Can we only mount a whole partition, or can we do with a part of that partition ? Please elaborate.

Em teoria, você poderia ter vários sistemas de arquivos em uma única partição, mas precisaria de um software específico para encontrá-lo lá (truecrypt costumava fazer isso, IIRC).

Se você quiser montar apenas parte de um sistema de arquivos, então, novamente, em teoria, isso poderia ser possível, mas o kernel não faz isso dessa maneira. Em teoria, você poderia criar um sistema de arquivos que permita ser montado apenas parcialmente e, em seguida, escrever um driver para ele, mas eu acho que seria entre difícil e impossível. AFAIK, nenhum sistema de arquivos comumente usado suporta isso.

  1. Do we mount a partition onto another already-mounted partition?

Sim, você pode fazer isso. Você pode montar qualquer número de sistema de arquivos sobre o mesmo caminho e desmontá-los em qualquer ordem. Apenas o último sistema de arquivos montado será acessível, no entanto.

Na verdade, é feito comumente por alguns programas, por exemplo, por motivos de segurança: monte um sistema de arquivos, abra um arquivo nele e monte algo diferente no mesmo caminho. Agora nenhum outro processo pode acessar o primeiro arquivo.

For example some d mounted on /mnt, now can I mount another /e onto d, creating /mnt/d/e ? Or we can/should only mount to "fixed branch" such as /, /mnt ? If it is possible, what will happen if we unmount /d, will /e be automatically unmounted as well ?

Se você montar um sistema de arquivos em / mnt, e esse sistema de arquivos contiver, por exemplo, diretório 'foo', então você pode usar este diretório para montar outro sistema de arquivos. Mas o kernel não permite que você desmonte um sistema de arquivos que está sendo usado. Abrir um arquivo, ter um processo chdir para um diretório e usar um diretório como um ponto de montagem, tudo conta como "sendo usado".

mount to "fixed branch" such as /,

Ah, e a propósito, nunca faça isso. Não monte nada diretamente para /; isso provavelmente quebraria imediatamente seu sistema.

  1. Can we mount onto something with a different filesystem

Sim. De fato, com qualquer distribuição comum, no momento em que você chegar à tela de login, você tem cerca de 5 sistemas de arquivos diferentes (heh, são 16 na minha caixa Fedora agora) montados em algum lugar em /.

Execute mount para ver quais sistemas de arquivos estão montados no momento.

  1. Let's say a device sda having 2 partitions sda1, sda2. In common practice, would people mount at any mount point they want such as /sda1 to /a/sda1 , sda2 to /b/c/sda2 , or do they mount to the same directory ?

Tanto quanto me lembro, apenas o requisito é que o ponto de montagem (ou seja, o diretório) já deve existir. Fora isso, você pode chegar a qualquer esquema que atenda às suas necessidades. O fato de os sistemas de arquivos estarem no mesmo disco não apresenta nenhum limite.

Afinal, você poderia até mover o sistema de arquivos posteriormente para um meio diferente e montá-lo novamente. Você faria isso, por exemplo se o disco está falhando ou você quer mais espaço.

Em relação à nomenclatura, é mais uma questão de por que você precisa do sistema de arquivos em primeiro lugar. É comum ter um sistema de arquivos separado (grande) apenas para os diretórios home dos usuários. Local natural para diretórios home é / home, então o truque é montar esse sistema de arquivos nesse caminho. Para os servidores, muitas vezes é vantajoso separar / var dessa maneira. Mas se você quer apenas um armazenamento separado, você sempre pode montá-lo em qualquer caminho não utilizado (por exemplo, / finance), desde que o caminho seja único e significativo para seus usuários (eu acho / sda1 não seria YMMV;)) .

  1. [...] how can I create some virtual or temporary partition/filesystem for testing and learning mounting and mountpoint ?

Veja a resposta de Archemar. (A propósito, deve funcionar em qualquer distribuição GNU / Linux comum, não apenas no Fedora 22.)

    
por 17.12.2015 / 18:00
4

Isso é muito amplo

  1. a partição local é montada como um todo. Você não pode montá-lo parcialmente.
  2. você pode (e geralmente faz muito) montar a partição sobre outra partição. os dados existentes estão "ocultos" (por exemplo, o arquivo foo.txt in /mnt/a/b/foo.txt fica oculto quando você monta "b" em /mnt/a/b )
  3. sim, você pode, é aconselhável montar local sobre local, distante em distante ou local, mas você pode montar ext3 local sobre um nfs em um ext3 ao longo ...
  4. depende da sua necessidade.
  5. O ponto de montagem
  6. desaparece na inicialização, a menos que seja escrito em / etc / fstab.

Você pode criar um dispositivo temporário e um ponto de montagem usando

  • dd if=/dev/zero count=100 bs=1K of=foo ,
  • , em seguida, mkfs -t ext3 foo ,
  • então, como root, mount foo /mnt

    desmonte /mnt e exclua foo quando terminar.

como por solicitação.

você tem / dev / sda1 / dev / sda2

ls /mnt
#empty
mount /dev/sda1 /mnt/a
error mount point doesn't exist (1)
mkdir /mnt/a 
mount /dev/sda1 /mnt/a
ls /mnt
a
ls /mnt/a
# empty
mkdir /mnt/a/b
date > /mnt/a/b/foo.txt
mount /dev/sda2 /mnt/a/b
ls /mnt/a/b
# empty
umount /mnt/a
device busy (2) 
date > /mnt/a/b/bar.txt
ls /mnt/a/b
bar.txt
umount /mnt/a/b
ls /mnt/a/b
foo.txt
  • (1) você deve montar no diretório existente
  • (2) / mnt / a não pode ser desmontado, porque há um ponto de montagem usando-o (/ mnt / a / b)
por 17.12.2015 / 16:29