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/mountsde sdb no es suficiente porque sdbLVM puede utilizar una de sus particiones. Puede verificar, /sys/block/sdb/sdb*/holders/pero obtiene dm-xentradas que deben resolverse a /dev/mappernombres 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:
pvdisplayPor 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