Anteriormente solía crear archivos de imagen usando dd
, configurar un sistema de archivos en ellos usando mkfs
y mount
acceder a ellos como particiones montadas. Más tarde, he visto en Internet que muchos ejemplos usan de losetup
antemano para hacer una entrada de dispositivo de bucle debajo /dev
y luego montarlo. No podría decir por qué uno prácticamente necesitaría un archivo de imagen para comportarse como un dispositivo de bucle y tener su propia /dev
entrada, mientras que se puede obtener el mismo comportamiento sin toda la molestia.
Resumen: en un escenario de la vida real, ¿por qué necesitamos una /dev/loopX
entrada para estar presente, cuando simplemente podemos montar la imagen fs sin ella? ¿De qué sirve un dispositivo de bucle?
mount
es lo suficientemente inteligente como para molestarlo. (como muestra Stephen Harris en su respuesta)Respuestas:
Los montajes, por lo general, deben realizarse en dispositivos de bloque. El controlador de bucle coloca un dispositivo de bloque front-end en su archivo de datos.
Si realiza un montaje en bucle sin
losetup
, el sistema operativo hace uno en segundo plano.p.ej
Es posible que deba llamar
losetup
directamente si la imagen de su archivo tiene particiones integradas.Por ejemplo, si tengo esta imagen:
No puedo montar eso directamente
Pero si uso
losetup
ykpartx
luego puedo acceder a las particiones:fuente
losetup
, solo usemount -o loop,offset=$((512*2048))
, donde512
está el tamaño del sector, y2048
es lo quefdisk
dio a partirStart
de la partición.losetup
ykpartx
. Deje que las herramientas hagan el trabajo duro :-)Los sistemas de archivos esperan leer y escribir en dispositivos de bloque, pero los archivos de imagen no son dispositivos de bloque. Los dispositivos de bucle proporcionan un dispositivo de bloque encima de un archivo (u otro dispositivo de bloque, opcionalmente con reasignación).
No hay necesidad de considerar los dispositivos loop al montar las imágenes en muchos casos porque
mount
se encarga de todo para usted; pero los dispositivos de bucle todavía están involucrados.losetup -l -a
les mostraráVea también ¿Cuál es la diferencia entre mount y mount -o loop ?
fuente
mount
?mount
se encarga delosetup
agregar,-o loop
etc.Parece que estás en Linux y Linux usa un nombre incorrecto para esa característica.
Inventé esa característica en 1988 en SunOS-4.0 y llamo a esa característica
fbk
: el archivo emula el dispositivo BlocK.El fondo es que el controlador del dispositivo emula un dispositivo de bloque en la parte superior de un archivo sin formato. Necesita esto ya que un sistema de archivos no puede usar un archivo plano como almacenamiento de fondo para un sistema de archivos. Más bien necesita un dispositivo de bloqueo y esto es lo que
fbk
emula.Desde hace un tiempo, algunas personas hicieron que el programa fuera
mount
un poco más inteligente y hay implementaciones de montaje que crean automáticamente unafbk
instancia para un archivo en caso de que elmount
programa detecte que el argumento que se espera que sea un dispositivo de bloque parece ser un archivo de plan.fuente
lofi
dispositivo ("archivo loopback") que funcionaba de manera similar; BSD los introdujo bajo el nombrevnd
("disco vnode") por lo que el concepto ha tenido muchos nombres diferentes a lo largo de los años.Incluso si no fuera necesario en segundo plano para montar sistemas de archivos a partir de archivos, igual lo necesitaría para cualquier configuración que use un controlador o programa que espere absolutamente un dispositivo de bloque. Piense en servidores nbd (dispositivo de bloque de red), controladores de dispositivos de bloque compuesto como mdraid, lvm, etc.
fuente