Quiero saber cuál es la forma más fácil de determinar (sin privilegios de root) si un dispositivo de bloque (por ejemplo sdb
) o alguna parte de él está montado (y qué parte de él).
La comprobación /proc/mounts
de sdb no es suficiente porque sdb
LVM puede utilizar una de sus particiones. Puede verificar, /sys/block/sdb/sdb*/holders/
pero obtiene dm-x
entradas que deben resolverse a /dev/mapper
nombres para verificar /proc/mounts
. Posible pero si hay una solución más fácil ... (que no debería requerir privilegios de root)
Respuestas:
Esto es esencialmente una cuestión de revisar una bolsa completa de cajas de esquina.
mount /dev/sda -o offset=1M /foo
) (uso losetup -a)Estos son solo los ejemplos con los que se me ocurrió dar un minuto y medio para pensarlo. Estoy seguro de que hay una docena más.
Creo que este último ejemplo es el más interesante y pocas personas lo saben. Le permite montar un sistema de archivos sin usar particiones. Simplemente especifique el desplazamiento inicial y Linux creará de forma transparente un dispositivo de bucle invertido. El ejemplo anterior produce lo siguiente:
¿Por qué harías eso? Por lo general, implica situaciones en las que las cosas han salido terriblemente mal anteriormente.
También tenga en cuenta que con la función de espacio de nombres ahora en la línea principal (ver no compartir ), diferentes procesos pueden tener diferentes vistas sobre lo que está montado y lo que no. Aquí las cosas comienzan a ponerse un poco rojas.
fuente
Hay muchas más formas de montar dispositivos, todos se pueden combinar, por lo que es frecuente que usted lo descubra.
es decir, lo que usa lvm:
pvdisplay
Por lo tanto, debe incluir también nfs, cifs, raid, loop, crypt, etc. Un buen punto de partida es siempre
/proc/mounts
, como ya lo mencionó.fuente