blkid는 예상보다 더 많은 정보를 반환합니다.

blkid는 예상보다 더 많은 정보를 반환합니다.

blkid저는 몇 년 전에 만든 레시피를 따르고 있는데 어느 시점에서는 파일 시스템 UUID를 얻기 위해 이를 사용해야 했습니다 .

예상되는 샘플 반환 값과 함께 이 명령을 문서화했습니다.

blkid -o export -s UUID /dev/mapper/thathost_crypt_md3
UUID=JNbF5T-vhSD-3aVv-intG-1Tk2-IEOZ-ABWXYZ

그러나 시대가 흘러 저는 더 이상 데비안 "wheezy"를 사용하지 않고 "jessie"를 사용합니다. 이 최신 버전의 Debian에서는 동일한 명령이 이제 다른 반환 값을 갖는다는 것을 발견했습니다.

blkid -o export -s UUID /dev/mapper/thishost_crypt_sdb
DEVNAME=/dev/mapper/thishost_crypt_sdb
UUID=bddac63e-3510-4d24-a6fb-4d0a89abcdef

blkid의 매뉴얼 페이지에는 해당 키와 일치하는 값만 포함되어야 한다고 나와 있지만 -s UUID거기에도 관련 없는 내용이 있습니다.DEVNAME

두 경우 모두에서 이를 작성할 수 있으므로 해결 방법이 있지만 출력 구조가 변경되어야 한다는 것이 이상해 보입니다.

echo "UUID=$(blkid -o value -s UUID /path/to/device)"
UUID=bddac63e-3510-4d24-a6fb-4d0a89abcdef

소프트웨어 패키지 util-linux버전은 각각 2.20.1-5.3 및 2.25.2-6입니다.

질문

  1. UUID 모양이 변경되는 이유는 무엇입니까? 이것이 중요합니까?
  2. 출력 형식이 변경되는 이유는 무엇입니까?

답변1

DEVNAME은 장치의 별칭입니다.별칭을 사용한 영구 장치 이름

또한 국제 표준에서는 UUID를 소문자로 요구하는 것 같습니다.

~에서UUID에 의해 생성된 문자 유형

명확히 말하면 UUID는 실제로 텍스트나 숫자가 아닌 128비트 값입니다. 이를 128비트 부호 없는 정수로 생각할 수 있습니다.

2008년 8월의 최신 국제 규범(강조):

6.5.4 UUID의 16진수 표현을 생성하는 소프트웨어는 대문자를 사용해서는 안 됩니다. 주 – 사람이 읽을 수 있는 모든 형식에 사용되는 16진수 표현은 소문자로 제한하는 것이 좋습니다. 그러나 이 표현을 처리하는 소프트웨어는 6.5.2에 지정된 대로 대문자와 소문자를 허용해야 합니다.

UUID 및 alias/DEVNAME 인쇄에 관해서

util-linux/blkid.c에서 다음을 사용하고 있기 때문에 DEVNAME이 인쇄되는 것이 분명합니다.-o export

} else if (ctl->output & OUTPUT_EXPORT_LIST) {
        if (num == 1 && devname)
            printf("DEVNAME=%s\n", devname); 

따라서 실제로 는 UUID 없이 -o exportUUID만 인쇄할 것이라고 생각됩니다.

$blkid -s UUID /dev/sda2
/dev/sda2: UUID="67169dd7-f319-4402-a9b2-cebcf2f3657a"
$ blkid -o export -s UUID /dev/sda2
DEVNAME=/dev/sda2
UUID=67169dd7-f319-4402-a9b2-cebcf2f3657a

관련 정보