Qual é a vantagem de montar um sistema de arquivos no mesmo sistema de arquivos?

0

RE-EDIT:

Geralmente, podemos ver a montagem de um sistema de arquivos em um ponto de montagem, como:

/usr/bin/truncate -s 128M /tmp/foo
chmod 0700 /tmp/foo
mke2fs -t ext4 -m 1 -F /tmp/foo
mount -t ext4 -o loop /tmp/foo /mnt

Gostaria de saber qual é o benefício de montar um sistema de arquivos no mesmo sistema de arquivos? / tmp / foo e / mnt estão no mesmo sistema de arquivos.

    
por user2886717 03.03.2014 / 03:44

4 respostas

4

O comando que você postou não faz muito sentido, já que você normalmente não usa um dispositivo de loop para montar dispositivos físicos, ele é freqüentemente usado para montar arquivos ISO.

De qualquer forma, uma vantagem para montar um sistema de arquivos dentro de outro é a capacidade de mesclar a estrutura de diretórios de um sistema de várias fontes.

Por exemplo, digamos que você tenha um NAS (Network Attached Storage) que forneceu o diretório pessoal de cada usuário ( /home/<username> ). Toda esta estrutura de diretórios pode ser montada automaticamente nas estruturas de diretórios existentes de cada um de seus sistemas, dando a aparência de fazer parte do sistema de arquivos local, enquanto que na verdade ele está localizado em alguns discos remotos distantes do servidor.

Este é um dos princípios que torna o Unix extremamente poderoso em recursos de camadas, como o armazenamento. A analogia para isso no mundo do Windows seria mapear letras de unidade de caminhos UNC, que, embora seja um pouco equivalente, não é tão próximo quanto flexível ou tão poderoso.

A montagem de recursos como esse no Unix é tolerante a ser realocada, pode ser balanceada por carga, junto com uma série de outras vantagens.

    
por 03.03.2014 / 04:40
1

Era uma vez, quando os discos eram muito menores e quando um sistema UNIX típico tinha vários usuários usando o sistema de compartilhamento de tempo ao mesmo tempo, fazia muito sentido ter arquivos espalhados pelos discos rígidos e / ou partições:

  • Uma partição raiz razoavelmente pequena
  • /usr seria tipicamente um disco rígido maior que foi montado no tempo de inicialização do sistema depois que o sistema de arquivos raiz foi montado
  • Antes do UNIX ter cotas, fazia sentido colocar /home em seu próprio sistema de arquivos para que os usuários que ocupassem o diretório /home não congelassem o sistema (o UNIX também protege contra isso tendo uma certa porcentagem de espaço no disco rígido apenas gravável por root)
  • Por motivos semelhantes, /tmp deve estar em seu próprio sistema de arquivos. Atualmente, /tmp costuma ser um sistema de arquivos de ram, que é apagado toda vez que o sistema é reinicializado.
por 03.03.2014 / 06:22
1

Há uma diferença fundamental aqui. O "foo" é um arquivo no sentido original, mas pode funcionar como uma imagem do sistema de arquivos (isto é, equivalente a um disco rígido inteiro, não apenas a um arquivo). Seu "foo" pode conter uma árvore de diretórios inteira. Isso é usado em vários casos:

  • imagens iso (você pode se lembrar de cds), em vez de ter uma unidade de CD real, basta baixar uma imagem e montá-la em loop, o sistema não saberá a diferença.
  • imagens de inicialização: você pode ter um arquivo em algum servidor que, na verdade, é uma imagem de disco a partir da qual você inicializa todos os computadores na mesma LAN. Como uma escola, escritório ou um cluster. Você pode até ter uma imagem na memória RAM, tornando o seu sistema mais rápido (trivial nas modernas máquinas 8-16G).
  • imagens de backup: coloque seu disco rígido em um único arquivo em um disco rígido maior. Se você precisar de backups, monte-os em loop e terá toda a estrutura de diretórios de volta.
  • máquinas virtuais geralmente operam em imagens de disco de algum tipo

Um conceito diferente é uma montagem "bind", que remonta um diretório existente em outro lugar. Muito útil para remapear sua estrutura. Por exemplo, você tem um script que faz algo com / datadrive / user / foo, mas você alterou seus diretórios e pontos de montagem e agora isso está em / mnt / data / foo. Não tem problema, basta ligar-montar o segundo para o primeiro. Links físicos podem funcionar, mas apenas dentro do mesmo sistema de arquivos (e são mais perigosos e permanentes). Você também pode "substituir" a estrutura de diretórios como esta. Por exemplo, você poderia simplesmente montar outro / usr sobre o atual e usar diferentes programas instalados. As opções são infinitas.

    
por 03.03.2014 / 14:50
0

Comandos como você menciona são usados para configurar uma imagem de disco a ser usada, por exemplo, por qemu ou bochs para executar um sistema operacional convidado. Fiz isso para executar versões muito antigas do 386bsd ou do Linux para fins de demonstração. Ou você pode manipular a imagem no disco (rápido) para depois gravá-la no armazenamento USB (lento).

Se você quiser experimentar operações potencialmente perigosas em algum dispositivo, uma opção é copiar o conteúdo para um arquivo de disco e brincar com a cópia.

Para análise forense computacional, é crucial que os dados originais não sejam tocados. Copie o conteúdo do dispositivo para um arquivo, por meio de loopback, você pode analisar o conteúdo do seu coração.

Você pode criar uma imagem ISO no disco e enviá-la, sem a necessidade de gravá-la.

A criação de um sistema de arquivos em um arquivo permite que você o divida e teste as ferramentas de recuperação nele.

Como você pode ver, há muitos usos potenciais para isso.

    
por 03.03.2014 / 13:52