Quero saber qual é a maneira mais fácil de determinar (sem privilégios de root) se um dispositivo de bloco (digamos sdb
) ou qualquer parte dele está montado (e qual parte dele).
A verificação /proc/mounts
de sdb não é suficiente porque sdb
ou uma de suas partições pode ser usada pelo LVM. Você pode verificar, /sys/block/sdb/sdb*/holders/
mas obtém dm-x
entradas que precisam ser resolvidas para /dev/mapper
nomes para verificar /proc/mounts
. Possível, mas se houver uma solução mais fácil ... (que não deve exigir privilégios de root)
Respostas:
Essencialmente, é uma questão de verificar um saco inteiro de caixas de canto.
mount /dev/sda -o offset=1M /foo
) (utilização losetup -a)Estes são apenas os exemplos que me deram um minuto e meio para pensar sobre isso. Tenho certeza que há uma dúzia de outros.
Acho que este último exemplo é o mais interessante e poucas pessoas sabem disso. Ele permite que você monte um sistema de arquivos sem usar partições. Basta especificar o deslocamento inicial e o Linux criará de forma transparente um dispositivo de loopback. O exemplo acima produz o seguinte:
Por que você faria isso? Normalmente, envolve situações em que as coisas deram errado horrivelmente anteriormente.
Lembre-se também de que, com o recurso de namespacing agora na linha principal (consulte o compartilhamento ), processos diferentes podem ter visões diferentes sobre o que está montado e o que não está. Aqui as coisas começam a ficar um pouco vermelhas.
fonte
Há muito mais maneiras de montar dispositivos, todos eles podem ser combinados, por isso é comum que você descubra.
ou seja, o que é usado pelo lvm:
pvdisplay
Então você precisa incluir também nfs, cifs, raid, loop, cripta e assim por diante. Um bom ponto de partida é sempre
/proc/mounts
, como você já mencionou.fonte