
UUID는 파티셔닝 단계에서(소프트웨어를 통해) 할당되므로 전체 디스크에 사용할 수 있는 UUID가 없습니다.
그러나 /dev/disk/by-id/
같은 목적으로 유망한 정보도 포함되어 있습니다. "UUID" 경로를 얻을 수 있습니다. /dev/sdb/
통과:
$ disk=sdb; ls /dev/disk/by-id/ -l | grep "/$disk$" | awk '{print "/dev/disk/by-id/"$9}'
/dev/disk/by-id/ata-ST1000LM048-2E7172_WKP6XK95
/dev/disk/by-id/wwn-0x5000c500ccbb7485
그러나 보시다시피 동일한 드라이브에 여러 항목이 있습니다. 로 끝나는 것이 WKP6XK95
실제로 제품 라벨의 "일련번호" 부분에 적혀 있기 때문에 더 의미가 있습니다.
디스크에 기록될 수 있는 고유한 값을 얻는 방법은 무엇입니까? 즉, wwn-...
ID는 어떻게 생성되는데, 이 항목을 어떻게 안전하게 무시할 수 있습니까? 이 항목을 무시해도 안전합니까 ... | grep -v wwn
?
답변1
이 wwn-
항목은 디스크의 전 세계 이름입니다. 기술적으로 UUID 형식이나 생성 규칙을 따르지 않으므로 UUID가 아닙니다.
독립형 SATA 및 SAS 디스크에서 디스크 펌웨어에 의해 보고되고 공장에서 할당됩니다. SAN 스토리지 시스템에서는 상황이 더 복잡할 수 있습니다. 스토리지가 LUN(논리 장치)으로 표시되므로 스토리지 시스템이 여기에 WWN을 할당합니다.
이는 MAC 주소와 비슷하지만 디스크의 경우 SAN 스토리지 가상화 하드웨어를 사용하지 않는 한 서로 다른 두 스토리지에서 동일한 WWN을 실제로 사용해서는 안 된다는 것입니다.
lsscsi -UU
naa.
접두사가 가 아니더라도 WWN도 표시되어야 합니다 wwn-0x
. lsblk -o +WWN
표시할 수도 있습니다.
에서는 /dev/disk/by-id/
접두사에 주의해야 합니다. 배포에서 사용하는 버전 에 따라 wwn-0x
및/또는 접두사가 붙은 디스크 WWN 문자열을 찾을 수 있습니다.scsi-3
udev
GPT 파티션 구성표에는 파티션 테이블이 작성될 때 할당되는 전체 디스크 UUID 개념이 있습니다. 예를 들어 출력에서 이를 볼 수 있습니다 fdisk -l
.
# fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2B05CCE8-92BC-4308-B770-174CE63D044F <--- Here!
다른 파티션 구성표(예: MBR)에는 반드시 적용 가능한 항목이 없을 수 있으며, 적용하더라도 유효한 UUID 형식이 아닐 수 있습니다.
MBR 파티션 구성표의 경우 가장 가까운 것은 Windows 디스크 서명(실제 MBR의 오프셋 0x1B8)이지만 길이가 4바이트에 불과하고 모든 MBR 파티션 디스크에 존재한다고 보장되지는 않습니다. Windows NT에서 도입된 것 같습니다.
답변2
통신에 대해서는 반복하지 않겠습니다.설명하다, 유용할 수 있는 줄을 추가하기만 하면 됩니다.
모든 SATA 드라이브 + UUID를 필터링하는 방법
LC_ALL=C fdisk -l /dev/sd? | grep 'Disk /dev/sd\|Disk identifier'
분석하다
LC_ALL=C
:내보내지 않고 기본 로케일을 설정합니다. 이 명령에서만 작동합니다.fdisk -l /dev/sd?
: 드라이브를 나열합니다. 우리의 경우에는 까다로워서 드라이브만 나열했습니다./dev/sd?
grep 'Disk /dev/sd\|Disk identifier'
:디스크 이름+UUID만 표시