UUID와 PARTUUID의 차이점은 무엇입니까?


15

Raspberry pi 포럼 의 절차에 따라 Raspberry Pi 3가 SD 카드 대신 USB 키를 루트 파일 시스템으로 사용하여 전원 손실에보다 견고하게 만들 수 있도록했습니다.

프로세스는 효과가 있었지만 파티션에 UUID와 PARTUUID를 혼동했기 때문에 시간을 잃었습니다 (blkid를 사용하고 어떻게 다른지보십시오). 둘의 목적은 무엇입니까? PARTUUID 대신 UUID를 사용하여 혼란을 해결하는 것이 더 간단했지만 실패했습니다. PARTUUID를 사용해야했습니다 (믹스를 사용하는 것이 가능하다고 생각했지만 검색하지는 않았습니다).

인용 된 페이지는 드라이브에 대한 UUID가 파티션의 PARTUUID임을 암시하지만, UUID는 드라이브의 모든 파티션에 대해 동일 할 것으로 예상됩니다.


1
안녕하세요 AProgrammer, Raspberry Pi 스택 교환에 오신 것을 환영합니다. 나는 이것이 Raspberry Pi에 관한 질문이 아니라고 생각해야한다고 생각합니다! 아마도 주 리눅스 포럼에 있다면 더 많은 사람들이이 질문을 보게 될 것입니다.
타이 비니 카

@TaiViinikka, 나는 이것과 unix.se 사이를 망설 였다는 것을 인정하지만, 나는 라즈베리 파이 문제를 만났고 x86에서 23 년 동안 데비안 및 데비안 파생 배포판을 사용하여 x86에서 UUID없이 그것을 만나는 것-내 반사 작용은 내 문제의 원인의 일부였습니다-나는 라즈베리 파이와의 관계가있을 수 있다고 생각했습니다.
AProgrammer

이해하기 쉬우 며 답변을 드리겠습니다. 나의 [훨씬 더 짧은] 경험은 당신과는 다릅니다. 내가 가진 모든 파티션이 UUID와 PARTUUID와 일치하지 않습니다. root @ herald : ~ # cat / proc / cpuinfo vendor_id : GenuineIntel 모델 이름 : Intel (R) Atom (TM) CPU D2550 @ 1.86GHz root @ herald : ~ # blkid / dev / sda1 : LABEL = "부팅"UUID = "e92827af-6c5d-4438-b22a-8f9b3b4dc4f0"TYPE = "ext4"PARTUUID = "44e5688f-01"그래서 반대 결론에 도달했습니다.
타이 비니 카

답변:


14

UUID와 PARTUUID의 차이점

당신은의 차이에 대해 몇 가지 힌트를 얻을 수 있습니다 UUIDPARTUUID지정하여 -p옵션을 선택합니다.

blkid -p /dev/sda1

또는보고있는 장치 / 파티션 동일한 UUID장치 에 여러 개의 파티션이있는 경우 PARTUUID추가 된 파티션 번호와 대부분 동일하다는 것을 알 수 있습니다 .

A UUID는 고유해야합니다. 내가 아는 한, 우주의 수명 내에서 충돌은 일어나지 않을 것입니다. 그러나 PARTUUID훨씬 짧습니다. 이것들은 "로컬로"고유 한 것이며 모든 알려진 사이에서 충돌이 일어날 가능성이 높습니다 PARTUUIDs.

UUID에서

UUID는 단순히 고유 식별자입니다. 그들은 많은 다른 목적으로 사용됩니다. uuidgen함수를 사용하여 생성 할 수 있습니다 .

UUID에 대한 추가 정보 :

$man uuidgen 

또는 인터넷 :

uuidgen에 대한 맨 페이지

더 많은 UUID 사용 예

$cat /etc/fstab

최신 GNU / Linux 시스템의 경우 모든 파티션과 해당 UUID 목록이 있습니다. 새로운 파티션마다 새로운 UUID가 생성됩니다. 따라서 지정된 드라이브를 다시 파티션하면 해당 드라이브의 모든 블리드 UUID가 변경됩니다.

UUID가 파티션의 식별자로 사용되는 이유 중 일부는 드라이브가 다른 순서로 추가되거나 마운트 된 경우에도 식별자를 유지하기위한 것입니다. 이전에는 다음 fstab과 같은 식별자 /dev/sda1를 사용 sda1합니다. 마운트 순서가 변경되면 물리적으로 다른 드라이브 또는 파티션 일 수 있다는 단점이있었습니다 .

PARTUUID에서

PARTUUIDs MBR (Master Boot Record) 관련 디스크 파티션을 대체하는 GUID 파티션 테이블 (GPT)의 구성 요소입니다.

자세한 내용은 Linux.com-Linux에서 새 GUID 파티션 테이블 사용을 참조하십시오.

Linux.com의 말 :

GPT GUID (Globally Unique Identifiers)와 우리의 익숙한 Linux UUID (Universally Unique Identifiers)는 동일한 유용한 목적을 제공하지만 블록 장치에 고유 한 이름을 부여하지만 동일하지 않습니다. Linux UUID는 파일 시스템의 기능이며 파일 시스템이 작성 될 때 작성됩니다. Linux UUID를 보려면 blkid 명령을 실행하십시오. Partition GUID 코드와 "Microsoft basic data"라는 방식을 참고하십시오. 예, OLE Microsoft는 항상 파티 충돌을 일으 킵니다. 이것은 EXT4 파티션이기 때문에 Windows가 읽을 수는 없지만 포맷되지 않은 파티션으로 볼 수 있습니다. 2011 년까지 Linux 파일 시스템 GUID가 없었기 때문에 현재 gdisk 릴리스에서는이를 볼 수 없습니다. 지금, 당신이 내 것과 같은 오래된 리눅스를 사용하지 않는다면 (Mint 13)

파티션 고유 GUID는 다음과 같이 fstab에서 사용할 것입니다.

PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA / data ext4 사용자, 기본값 00


수수께끼가 깊어집니다. 여러 블록 장치를 보면 장치 PTUUID가 있고 파티션 당 UUID와 PARTUUID가 있습니다. 디스크와 디스크를 포맷하고 파티션을 나눈 도구에 따라 PARTUUID는 디스크 PTUUID에서 파생됩니다. 내 질문은 PARTUUID와 함께 얻을 수있는 파티션 UUID에 관한 것입니다 blkid.
AProgrammer

@ AProgrammer : 내 대답에 정보를 추가했습니다.
RubberStamp

1
요약 blkid -p하면 PTUUID라고 하는 디스크 UUID가 있고 PARTUUID를 호출하는 파티션 UUID가 blkid있으며 일부 파일 시스템에는 blkid가 UUID를 호출하는 UUID가 있습니다. Linux 시스템이 UUID 만 참조 할 때 루트 파일 시스템을 라즈베리의 USB 키로 옮길 때 적어도 일부 위치에서 UUID 대신 PARTUUID를 사용해야하는 이유가 여전히 확실하지 않지만, 자원하지는 않습니다 더 많은 테스트를하고 PARTUUID가 실제로 필요한 곳과 원하는 경우 여전히 UUID를 사용할 수있는 곳을 확인하지만 cmdline.txt필요한 경우 에만 필요합니다.
AProgrammer

동일한 UUID를 가진 두 개의 다른 디스크에 두 개의 파티션이 있습니다. " 우주의 생애 "를 위해 너무 많은 ...
étale-cohomology

3

내가 이해 한대로

일반적으로 UUID라는 용어는 Windows 세계에서 GUID로 알려진 "범용 고유 식별자"를 나타냅니다. 몇 가지 다른 방식이 있지만 대부분 현대 UUID / GUID에는 본질적으로 큰 난수 또는 해시와 몇 가지 플래그 비트가 있습니다.

리눅스에서 파일 시스템을 마운트하는 특정한 경우 "UUID"는 파일 시스템 내부에 저장된 메타 데이터의 일부인 고유 식별자를 나타냅니다. "PARTUUID"는 파티션 테이블에 저장되거나 파티션 테이블에서 파생 된 파티션의 고유 식별자를 나타냅니다.

이러한 고유 식별자는 실제 UUID 일 수도 있고 아닐 수도 있습니다. 내가 말할 수있는 한.

  • GPT 파티션 테이블의 경우 "PARTUUID"는 GPT 파티션 테이블의 GUID입니다.
  • MBR 파티션 테이블의 경우 "PARTUUID"는 디스크 ID를 파티션 번호와 연결하여 구성됩니다.
  • EXT4, Linux 스왑, BTRFS 및 기타 Linux 고유 파일 시스템 유형의 경우 "UUID"는 파일 시스템 메타 데이터에 저장된 UUID입니다.
  • FAT 및 NTFS의 경우 "UUID"는 볼륨 일련 번호, FAT의 경우 32 비트, NTFS의 경우 64 비트로 나타납니다.

"UUID"및 "PARTUUID"에 의한 루트 파일 시스템 마운트 지원은 다양합니다. IIRC initrd없이 실행되는 커널은 "PARUIUID"로 마운트 할 수 있지만 "UUID"로는 마운트 할 수 없습니다. 이전 버전의 initramfs-tools는 "PARUIUI"가 아닌 "UUID"로 마운트 할 수 있지만 최근 initramfs-tools는 둘 다 지원합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.