라벨은 어떻게 ID_PART_ENTRY_UUID
계산되나요? 에서 시작할 수 있나요 ID_PART_TABLE_UUID
?ID_PART_ENTRY_UUID
GPT
파티션 테이블과 일부 파티션이 있는 디스크가 있습니다.
내 디스크와 연결된 파티션을 확인해야 합니다. 디스크의 모든 파티션은 해당 디스크의 파티션 테이블을 참조합니다. 이 파티션 테이블 ID를 찾을 수 있습니다 udevadm
.
$ sudo udevadm info /dev/loop18p1 | grep ID_PART_TABLE_UUID
E: ID_PART_TABLE_UUID=75e3b937-1ff1-4166-a51f-524b98278e6e
그러나 불행하게도 나에게는 작동하지 않는 udevadm
등 parted
의 방법을 사용해야 합니다.blkid
디스크에서 파티션 테이블 ID를 찾을 수 있습니다.
$ sudo blkid -po udev /dev/loop18 | grep ID_PART_TABLE_UUID
ID_PART_TABLE_UUID=75e3b937-1ff1-4166-a51f-524b98278e6e
그러나 ID_PART_TABLE_UUID
파티션에는 존재하지 않습니다.
$ sudo blkid -po udev /dev/loop18p1
ID_PART_ENTRY_SCHEME=gpt
ID_PART_ENTRY_NAME=primary
ID_PART_ENTRY_UUID=bcf5e461-90db-4625-a471-6c1d61126773
ID_PART_ENTRY_TYPE=0fc63daf-8483-4772-8e79-3d69d8477de4
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=34
ID_PART_ENTRY_SIZE=195279
ID_PART_ENTRY_DISK=7:18
오직 ID_PART_ENTRY_UUID
. MBR
파티션 테이블 에 파티션의 일련번호 ID_PART_ENTRY_UUID
만 추가하면 쉽게 처리할 수 있습니다. ID_PART_TABLE_UUID
그러나 GPT
테이블은 ID_PART_ENTRY_UUID
까다로운 해시입니다. 나는 이 해시가 관련성이 있다고 생각하며 ID_PART_TABLE_UUID
이를 사용하여 디스크 파티션을 식별할 수 있습니다.
그렇다면 이 해시값은 어떻게 ID_PART_ENTRY_UUID
계산되나요? ID_PART_TABLE_UUID
에서 시작할 수 있나요 ID_PART_ENTRY_UUID
?
udevadm
가능하기 때문에 가능한 것 같아요 .
liblkid
업데이트: 저는 실제로 CLI 대신 바인딩을 사용하고 있지만 blkid
그게 중요하다고 생각하지 않습니다.
답변1
GPT 와 관련이 없는 경우 이는 ID_PART_TABLE_UUID
GPT 헤더(for) 및 GPT 파티션 항목(for)의 ID_PART_ENTRY_UUID
고유한 UUID(또는 실제로 libblkid에서 UUID로 변환된 GUID) 입니다.ID_PART_TABLE_UUID
ID_PART_ENTRY_UUID
UDev에는 부모-자식 관계에 대한 기본 지식이 있고 파티션의 경우 부모(디스크)의 일부 기본 정보가 파티션 데이터에 추가되기 때문에 이 정보만 있습니다(참조:60-영구-storage.rules UDev 규칙).