검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 시스템
참조 원문 : UUIDs and Linux: Everything you ever need to know

UUID란?
  UUID는 32개의 16진수로 표현하는 128비트 값이며 유일 식별 정보로서 소프트웨어 개발에 사용합니다. RFC 4122로 정의되었으며 아래는 UUID의 예입니다.
13152fae-d25a-4d78-b318-74397eb08184
  리눅스에서는 블록 디바이스의 식별자로 쓰이는 것으로 유명합니다. Windows에서는 Component Object Model에서 GUID(Globally Unique Identifier)라는 이름으로 사용합니다. UUID는 많은 변종이 있는데 대부분은 컴퓨터의 MAC을 기반으로 만들었습니다.


fstab에서의 사용
  USB로 연결하는 하드 디스크가 있는데 고정된 디바이스명이 없고 연결할 때마다 이름이 sda, sdb 이런 식으로 달라진다면 여러가지 문제가 생길 수 있습니다. 이런 문제를 방지하기 위해 /etc/fstab에서는 아래와 같이 유일한 이름을 사용합니다.
UUID=9043278a-1817-4ff5-8145-c79d8e24ea79 /boot ext3 defaults 0 2
  UUID는 슈퍼블록에 저장됩니다.


리눅스에서 활용 및 생성
  proc을 통해 새로운 UUID를 생성하는 방법은 아래와 같습니다.
$ cat /proc/sys/kernel/random/uuid
eaf3a162-d770-4ec9-a819-ec96d429ea9f
  libuuid 라이브러리를 사용하는 uuidgen 명령어를 통해 생성하는 방법도 있습니다. 특히 ext2~4 파일시스템 유틸리티 패키지인 e2fsprogs가 UUID를 생성할 때 이 라이브러리를 사용합니다.
$ uuidgen
f81cc383-aa75-4714-aa8a-3ce39e8ad33c


UUID를 알아내는 방법
  하드 디스크의 현재 UUID를 알아내는 방법은 크게 2가지가 있는데 하나는 특수 디렉토리를 ls 명령어로 출력하는 것이고, 나머지 하나는 blkid 툴을 사용하는 것입니다.

  ls를 이용하는 방법은 /dev/disk/by-uuid 디렉토리를 이용하면 됩니다. 이 디렉토리는 이름이 UUID이며 실제 블록 디바이스 파일로 연결된 링크 파일들을 가지고 있습니다.
$ ls -l /dev/disk/by-uuid
합계 0
lrwxrwxrwx 1 root root 10  7월  8 12:30 16b18fc2-bf33-41c1-af7b-a21e9c848b4c -> ../../dm-1
lrwxrwxrwx 1 root root 10  7월  8 12:30 5aed7aad-ada9-44cf-89dd-0da2df853a34 -> ../../dm-0
lrwxrwxrwx 1 root root 10  7월  8 12:30 ef3c61f8-8119-49db-a55a-ca0ae5cd5f86 -> ../../sda1
  blkid는 util-linux 패키지에 속한 툴로 특정 디바이스에 대한 질의를 할 수 있는 인터페이스를 제공하며 라벨도 볼 수 있습니다.
$ blkid /dev/sda1
/dev/sda1: UUID="ef3c61f8-8119-49db-a55a-ca0ae5cd5f86" TYPE="ext2"


UUID 설정하기
  UUID는 슈퍼블록에 있기 때문에 이를 설정하는 방법은 파일 시스템에 따라 다릅니다. ext 파일 시스템은 tune2fs로 설정할 수 있습니다.
# tune2fs -U 원하는_UUID /dev/sda1
2013/07/10 16:04 2013/07/10 16:04