
blkid
보고된 것과 UUID의 차이점을 설명할 수 있는 사람이 있습니까 mdadm
? CentOS 시스템 중 하나를 예로 들어 보겠습니다.
[root@server ~]# blkid | grep /dev/md1
/dev/md1: UUID="32cb0a6e-8148-44e9-909d-5b23df045bd1" TYPE="ext4"
[root@server ~]# mdadm --detail /dev/md1 | grep UUID
UUID : f204c558:babf732d:85bd7296:bbfebeea
왜 다른가요? 사용된 UUID를 어떻게 변경합니까 mdadm
?
tune2fs
파티션의 UUID를 변경 하는 데 사용할 것이라는 것을 알고 있지만 (반환된 내용이 변경됨 blkid
) 사용되는 내용을 변경하는 방법은 잘 모르겠습니다 mdadm
.
답변1
첫 번째는 블록 장치에 있는 ext4 파일 시스템의 UUID를 보고합니다 md
. 이는 시스템이 시스템에서 사용 가능한 파일 시스템 중에서 파일 시스템을 고유하게 식별하는 데 도움이 됩니다. 이는 파일 시스템의 구조, 즉 md 장치에 저장된 데이터에 저장됩니다.
두 번째는 RAID 장치의 UUID입니다. 이는 md 하위 시스템이 특정 RAID 장치를 고유하게 식별하는 데 도움이 됩니다. 특히 RAID 어레이의 일부인 모든 블록 장치를 식별하는 데 도움이 됩니다. 이는 배열의 메타데이터(각 멤버)에 저장됩니다. 배열 구성원에는 자체 UUID도 있습니다(md 시스템에서는 GPT 파티션(GPT 파티션 테이블에 저장됨) 또는 LVM 볼륨인 경우 파티션 UUID를 가질 수도 있습니다...).
blkid
반환되는 내용은 장치에 저장된 구조의 ID이기 때문에 약간 오해의 소지가 있습니다(대부분의 파일 시스템, LVM 멤버 및 스왑 장치와 같이 알고 있는 구조 유형의 경우). 또한 블록 장치(예: LVM 스냅샷)가 동일한 UUID 구조를 갖는 것은 드문 일이 아닙니다. 블록 장치에는 구조에 UUID가 포함되지 않은 콘텐츠를 포함하여 모든 것이 포함될 수 있습니다.
예를 들어, GPT 파티션으로 구성된 3개의 드라이브가 있는 시스템이 있을 수 있습니다. 이러한 드라이브에는전세계 공통 이름이를 고유하게 식별합니다. 3개의 드라이브가 각각 하나의 파티션( /dev/sd[abc]1
)으로 나누어져 있다고 가정합니다. 각 파티션에는 GPT 파티션 테이블에 저장된 GPT UUID가 있습니다.
이러한 파티션이 md RAID5 어레이를 형성하는 경우. 각각은 RAID 멤버로 md UUID를 얻고 어레이는 md RAID 장치로 UUID를 얻습니다.
/dev/md0
MSDOS 또는 GPT 유형 파티션을 사용하여 추가로 파티션을 나눌 수 있습니다 . 예를 들어, /dev/md0p1
GPT UUID(/dev/md0의 데이터에 저장되는 GPT 파티션 테이블에 저장됨)가 있는 파티션을 가질 수 있습니다 .
이는 다시 LVM의 물리적 볼륨일 수 있습니다. 따라서 PV UUID를 얻게 됩니다. 볼륨 그룹에는 VG UUID도 있습니다.
이 볼륨 그룹 내에서 각각 LV UUID가 있는 논리 볼륨을 생성합니다.
LV 중 하나(예: /dev/VG/LV
)에서 ext4 파일 시스템을 생성할 수 있습니다. 파일 시스템은 ext4 UUID를 얻습니다.
blkid /dev/VG/LV
파일 시스템의 (ext4) UUID가 제공됩니다. 그러나 VG 볼륨 내의 파티션으로서 파티션 UUID도 얻습니다(일부 파티션 구성표(예: MSDOS/MBR)에는 UUID가 없음). 볼륨 그룹은 그 자체가 다른 블록 장치인 멤버 PV로 구성됩니다. blkid /dev/md0p1
PV UUID를 제공합니다. 또한 GPT 테이블에 파티션 UUID가 있습니다 /dev/md0
. /dev/md0
그 자체는 다른 블록 장치로 구성됩니다. blkid /dev/sda1
레이드 멤버 UUID가 반환됩니다. 또한 GPT 테이블에 파티션 UUID가 있습니다 /dev/sda
.
답변2
다른 UUID에 대해서는 이미 설명했습니다. 파일 시스템에만 있는 것이 아닙니다. RAID 어레이, 장치, 파티션, LUKS 컨테이너, LVM PV... 그리고 마지막으로 파일 시스템 등 다양한 항목에 대한 UUID가 있습니다.
개인적으로 저를 짜증나게 하는 것은 이러한 UUID의 형식도 다르다는 것입니다.
조각:
# blkid /dev/sda1
/dev/sda1:
UUID="d8b8b4e5-e47b-2e45-2093-cd36f654020d"
UUID_SUB="3c3e6eac-2139-3f7a-16b7-57280934d88e"
PARTUUID="6a89cedf-69e1-40db-b08c-1c8e45af59f5"
어머니:
# mdadm --examine /dev/sda1 | grep UUID
Array UUID : d8b8b4e5:e47b2e45:2093cd36:f654020d
Device UUID : 3c3e6eac:21393f7a:16b75728:0934d88e
보시다시피 동일한 UUID이지만 blkid
대시를 사용하여 인쇄 -
되고 mdadm
콜론을 사용하여 인쇄됩니다 :
. 그래서 당신은 d8b8b4e5-e47b-2e45-2093-cd36f654020d
대 d8b8b4e5:e47b2e45:2093cd36:f654020d
..
특히 스크립트에서 UUID를 사용하려는 경우 매우 짜증납니다. 한 형식에서 다른 형식으로 변환하는 방법은 명확하지 않습니다.
답변3
"32cb0a6e-8148-44e9-909d-5b23df045bd1" 위의 blkid UUID는 정확하며 운영 체제에서 RAID 어레이를 찾는 데 사용됩니다.
mdadm에는 운영 체제에서 직접 사용되지 않지만 mdadm.conf 파일에서 사용하는 자체 "내부" UUID가 있습니다. 예를 들면 다음과 같습니다.
"배열/dev/md1 레벨=raid1 num-devices=2 uuid=f204c558:babf732d:85bd7296:bbfebeea"
mdadm이 blkid와 분리되어 운영 체제에서 UUID를 인식하는 경우 UUID를 호출하면 안 됩니다. 혼동을 피하기 위해 mduuid 또는 다른 이름으로 불러야 할 수도 있습니다.