Existem algumas maneiras diferentes de automontar dispositivos de armazenamento no linux. Até mesmo a localização dos montes varia bastante. Além disso, nem todos os sistemas são configurados para dispositivos de montagem automática e alguns ambientes de área de trabalho são montados automaticamente quando você os acessa a outros quando os conecta.
Basicamente, para torná-lo portátil, você não pode confiar em pontos de montagem em um local para localizar dispositivos.
Em vez disso, você deve encontrar os dispositivos, filtrar os removíveis / os que você está interessado e, em seguida, mapeá-los para onde eles estão montados (se em todos os montados). Usando o python, você pode obter uma lista de dispositivos removíveis com pyudev
e, em seguida, mapeá-los para montar pontos com psutil
:
#!/usr/bin/env python
import pyudev
import psutil
context = pyudev.Context()
removable = [device for device in context.list_devices(subsystem='block', DEVTYPE='disk') if device.attributes.asstring('removable') == "1"]
for device in removable:
partitions = [device.device_node for device in context.list_devices(subsystem='block', DEVTYPE='partition', parent=device)]
print("All removable partitions: {}".format(", ".join(partitions)))
print("Mounted removable partitions:")
for p in psutil.disk_partitions():
if p.device in partitions:
print(" {}: {}".format(p.device, p.mountpoint))
Que produzirá:
% python2 partitions.py
All removable partitions: /dev/sdb1, /dev/sdb2
Mounted removable partitions:
/dev/sdb2: /run/media/mdaffin/ARCHISO_EFI
Você pode aproveitar este futuro montando automaticamente partições que não são montadas com udisks
se você quiser.