어떤 USB 포트에 연결되어 있든 udev가 USB 장치를 인식하도록 하려면 어떻게 해야 합니까?

어떤 USB 포트에 연결되어 있든 udev가 USB 장치를 인식하도록 하려면 어떻게 해야 합니까?

USB 장치를 임의의 USB 슬롯에 연결할 때마다 USB 장치의 데이터를 백업하는 스크립트를 작성하고 싶습니다. 이제 식별자를 알겠 는데 문제는 KERNEL=sdX슬롯에 따라, 다른 기기를 꽂았는지에 따라 sdX달라진다는 점 이다. udev에서 USB 장치를 식별하는 가장 좋은 방법은 무엇입니까? 사용해볼까 생각은 해봤 partuuid지만 partuuid가 애초에 어디에 저장되어 있는지, 어떻게 계산되는지는 잘 모르겠습니다.

답변1

gdisk장치를 분할하는 대신 을 사용하는 경우 fdisk각 파티션에 대해 PARTUUID 및 PARTLABEL을 보유하는 GPT 스타일 파티션 테이블을 생성합니다. c의 명령을 사용하면 gdisk파티션 이름(PARTLABEL)을 설정할 수 있습니다.

파티션에 새 파일 시스템을 생성하여 파티션을 다시 포맷해도 이러한 파티션 ID는 변경되지 않습니다.

대부분의 파일 시스템에서는 파일 시스템에서 UUID 및 LABEL을 가져오거나 설정할 수 있습니다. 이를 수행하는 방법은 파일 시스템 유형에 따라 다릅니다. 예를 들어 ext3/4의 경우 tune2fs및 . Linux에서는 UUID 및 LABEL로 표시됩니다.-U-L

이 두 가지 ID 세트를 혼동하지 마십시오. blkid모두 표시됩니다.

/dev/sdb1: LABEL="MYLABEL" UUID="A369-D716" TYPE="vfat" PARTLABEL="My new partition" \
  PARTUUID="f0817245-d3ce-408b-9457-e33dfc04aebe"

다음 명령을 사용하여 udev 속성을 볼 수 있습니다.

$ udevadm info -p $(udevadm info -q path -n /dev/sdb1)
...
E: ID_FS_LABEL=MYLABEL
E: ID_FS_LABEL_ENC=MYLABEL
E: ID_FS_UUID=A369-D716
E: ID_FS_UUID_ENC=A369-D716
E: ID_PART_ENTRY_UUID=f0817245-d3ce-408b-9457-e33dfc04aebe
E: ID_PART_TABLE_UUID=7301d696-b66d-4f85-8272-7dd5e29175ae
E: ID_PART_ENTRY_NAME=My\x20new\x20partition

답변2

USB 장치의 UUID(Universally Unique Identifier Library)를 사용하여 비슷한 작업을 수행했습니다.

blkid 명령을 사용하여 UUID를 볼 수 있습니다.

# blkid

맨 페이지를 보면 blkid에 대한 자세한 정보를 찾을 수 있습니다.

# man blkid

관련 정보