USB 장치 위치 자동 마운트

USB 장치 위치 자동 마운트

저는 tkinter와 Python을 사용하여 GUI 애플리케이션을 만들고 있습니다. 이 애플리케이션을 사용하려면 사용자가 비디오 파일이 포함된 USB 플래시 드라이브를 삽입해야 합니다. 나는 openbox를 사용하여 응용 프로그램을 시작하고 있습니다. USB가 자동으로 마운트되지 않거나, LXDE( )를 사용하여 애플리케이션을 실행할 때와 다른 위치에 있는 것 같습니다 /media/pi. USB 장치는 어디에(경로) 마운트되어 있습니까? 그렇지 않은 경우 openbox를 사용할 때 자동으로 마운트되도록 pi를 구성하려면 어떻게 해야 합니까?

USB가 이미 설치되어 있다고 가정하고 USB에 액세스하기 위해 지금 사용하고 있는 코드입니다.

for root, dirs, self.files in os.walk('/media/pi'):

답변1

Linux에서 저장 장치를 자동으로 마운트하는 방법에는 여러 가지가 있습니다. 설치 위치도 많이 다릅니다. 또한 모든 시스템이 장치를 자동으로 마운트하도록 설정되어 있는 것은 아니며, 일부 데스크탑 환경에서는 해당 장치에 액세스할 때 자동으로 마운트하고, 다른 시스템은 연결할 때 자동으로 마운트합니다.

기본적으로 휴대 가능하게 만들기 위해 장치를 찾기 위해 어딘가에 있는 마운트 지점에 의존할 수는 없습니다.

대신, 장치를 찾고, 관심 있는 이동식 장치를 필터링하고, 장치가 설치된 위치(설치된 경우)에 매핑해야 합니다. Python을 사용하면 다음을 사용하여 이동식 장치 목록을 가져오고 pyudev이를 마운트 지점에 매핑할 수 있습니다 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))

그러면 다음이 생성됩니다.

% python2 partitions.py
All removable partitions: /dev/sdb1, /dev/sdb2
Mounted removable partitions:
  /dev/sdb2: /run/media/mdaffin/ARCHISO_EFI

udisks필요한 경우 마운트되지 않은 파티션을 자동으로 마운트하여 미래에도 이를 보장할 수 있습니다.

답변2

device.attributes.asstring('removable') == "1"인 경우 오류가 발생합니다. "bool" 개체에 속성 오류가 없습니다. 이거 쓸 수 있는 다른 방법이 없을까요?

관련 정보