Dispositivos de bloco não são arquivos normais, eles permitem que programas como o mount executem funções especiais que são necessárias para que ele funcione corretamente.
Um dispositivo de loop é um dispositivo de conversão, traduz chamadas de arquivo de bloco em chamadas normais do sistema de arquivos para um arquivo específico. Você pode usar losetup
para criar dispositivos de loopback de pleno direito apoiados por um arquivo (aparecerá como /dev/loopX
e, em seguida, tratá-los como dispositivos de bloco normais ou passar -o loop
para montar, para criar o dispositivo de bloco de forma transparente. use também losetup
para inspecionar os dispositivos de loopback e o que eles suportam.
Note que com a montagem moderna, ele tentará detectar um arquivo normal e criará automaticamente o dispositivo de loopback para você. Então você não precisa passar a opção loop
.
Além disso, tecnicamente um bind mount é onde você remonta um diretório para um novo local (por isso, ele é montado duas vezes). Isso pode ser feito com o sinalizador --bind
para montar. Eu entendo o seu significado, mas pode ficar confuso, pois o termo bind tem um significado específico em termos de montagem.
Editar: O modelo mental está efetivamente correto, mas você pode pensar em dispositivos de loop como uma camada de abstração, ele permite que o mount converse com qualquer arquivo como se fosse um dispositivo de bloco, sem precisar Entender as diferenças entre leitura / gravação para um sistema de arquivos ou para um dispositivo de bloco raw - o kernel lida com tudo isso. Tudo o que o mount precisa saber é como pedir ao kernel para configurar o dispositivo de loop, então trata-se de um dispositivo de bloco; isso mantém o código de baixo nível mais simples e permite que qualquer coisa que possa falar com um dispositivo de bloco converse com um arquivo sem ser modificada.