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