Eu costumava criar arquivos de imagem usando dd
, configurar um sistema de arquivos neles mkfs
e mount
acessá-los como partições montadas. Mais tarde, vi na internet que muitos exemplos usam losetup
de antemão para fazer uma entrada de dispositivo de loop em /dev
, e depois montá-lo. Eu não poderia dizer por que alguém praticamente precisaria de um arquivo de imagem para se comportar como um dispositivo de loop e ter sua própria /dev
entrada enquanto o mesmo comportamento pode ser obtido sem todo o incômodo.
Resumo: Em um cenário da vida real, por que precisamos que uma /dev/loopX
entrada esteja presente, quando podemos apenas montar a imagem fs sem ela? Qual é o uso de um dispositivo de loop?
As montagens, normalmente, devem ser feitas em dispositivos de bloco. O driver de loop coloca um front-end de dispositivo de bloco em seu arquivo de dados.
Se você fizer uma montagem em loop sem
losetup
, o sistema operacional fará uma em segundo plano.por exemplo
Pode ser necessário ligar
losetup
diretamente se a imagem do arquivo tiver partições incorporadas.por exemplo, se eu tiver esta imagem:
Eu não posso montar isso diretamente
Mas se eu uso
losetup
ekpartx
então consigo acessar as partições:Os sistemas de arquivos esperam ler e gravar em dispositivos de bloco, mas os arquivos de imagem não são dispositivos de bloco. Os dispositivos de loop fornecem um dispositivo de bloco em cima de um arquivo (ou outro dispositivo de bloco, opcionalmente com remapeamento).
Não há necessidade de considerar dispositivos de loop ao montar imagens em muitos casos, porque
mount
cuida de tudo para você; mas os dispositivos de loop ainda estão envolvidos.losetup -l -a
os mostrará.Consulte também Qual é a diferença entre mount e mount -o loop .
Você parece estar no Linux e o Linux usa um nome errado para esse recurso.
Eu inventei esse recurso em 1988 no SunOS-4.0 e chamo esse recurso
fbk
- Arquivo emula dispositivo BlocK.O pano de fundo é que o driver de dispositivo emula um dispositivo de bloco em cima de um arquivo simples. Você precisa disso, pois um sistema de arquivos não pode usar um arquivo simples como armazenamento em segundo plano para um sistema de arquivos. Ele precisa de um dispositivo de bloco e é isso que
fbk
emula.Desde algum tempo, algumas pessoas tornaram o programa
mount
um pouco mais inteligente e existem implementações de montagem que criam automaticamente umafbk
instância para um arquivo caso omount
programa detecte que o argumento esperado para ser um dispositivo de bloco parece ser um arquivo de plano.Mesmo que não fosse necessário em segundo plano para montar sistemas de arquivos a partir de arquivos, você ainda precisaria dele para qualquer configuração usando um driver ou programa que absolutamente esperasse um dispositivo de bloco. Pense em servidores nbd (dispositivo de bloco de rede), drivers de dispositivo de bloco composto como mdraid, lvm etc ....