#author("2019-08-28T21:48:41+09:00","","")
#navi(../)

* UUIDの基本 [#pe4d21d0]
UUIDは様々な用途で利用される識別子(ID)のアーキテクチャです。~
何らかの外部システムによる統制が不要でありながら、それぞれが重複しない、~
ユニークであることが保証されたIDとして広く使われています。

#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
#contents

UUIDは128bitの数値であり、以下のように16進数化した文字列での表現で一般的に利用されています。

''8c89a40b-328b-44e2-849b-de7668c64f32''

ディスクやユーザ管理上のアカウントなどどんなデータであっても、~
UUIDを識別子として利用することで、全世界・過去未来のいかなる時点においても~
そのデータを個別に識別することが可能となります。

#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 関連記事 [#oa2d6e88]
-[[Windows PowerShellでGUIを生成する方法>https://win.just4fun.biz/?PowerShell/GUI%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95]]


* UUIDの生成方法 [#m74e0a0f]
通常UUIDはシステムが内部的に生成するものであって、~
利用者が直接生成することはあまりありませんが、~
以下のように''uuidgen''コマンドで生成することが可能です。

 % uuidgen
 42573ba6-0f22-4ada-a3c9-b3800d6c355c

用途としては、Xenやkvm(qemu)の設定ファイルを(virt-cloneなどを使わずに)コピーして使う場合に、~
内部で記述されているUUIDを別のものに置き換える場合などがあります。

 <domain type='kvm'>
   <name>centos5_0</name>
   <uuid>88f03b2d-539c-8d4a-0aa0-e5beccd0d0f0</uuid>
   <memory>524288</memory>
   <currentMemory>524288</currentMemory>
   <vcpu>2</vcpu>
   ...

その他、UUIDは広く利用されているので、システムを設定・変更する場合などに、生成が必要となる局面があるでしょう。


* uuidgenのパッケージ [#g61c8132]
''uuidgen''は、Ubuntuではパッケージ''uuid-runtime''に含まれています。

CentOS5ではパッケージ''e2fsprogs''に含まれています。

CentOS6ではパッケージ''util-linux-ng''に含まれています。


* UUIDの種別 [#i619ba67]
UUIDには内部的な生成方法の種別として、いくつかのバージョンを持っています。~
一般的に利用されるのは、識別子の生成を実行するマシンのネットワークインターフェイスの~
MACアドレスと時間をベースとしたVersion 1と、疑似乱数をベースとしたVersion4です。

その中でも通常は疑似乱数のVersion4が利用されます~
(実際の利用にあたってバージョンによる機能の差異などはありません)。

** バージョンを指定しての生成 [#wdffcb78]

uuidgenコマンドでも、Versionをオプションで指定して生成することができます。

- Version 1 (オプション: -t)
 % uuidgen -t
 07eb7bbc-f4ce-11e2-86e1-0800272a2ce7
 % uuidgen -t
 077f3a6a-f4ce-11e2-9267-0800272a2ce7

- Version 4 (オプション: -r、もしくはオプションなし)
 % uuidgen -r
 4fcc7254-322a-45e3-a3e6-ca3baefef71b
 % uuidgen
 08d5ee35-d0d8-4fbd-ab78-c8255fb5c2ea

Version 1ではハイフンで区切られた最後の文字列が同じになっていますが、~
これがMACアドレスから生成した部分です。~
Version 4は基本的にはすべて乱数なので同じ文字列になる部分がありません。

** バージョンの見分け方 [#i9be1728]

そのUUIDがVersion 1か、Version 4かを見分けるには、~
ハイフン区切りの3つめの先頭の数字に着目します。~
それぞれがバージョンの数字を示しています。

- Version 1~
07eb7bbc-f4ce-''1''1e2-86e1-0800272a2ce7~
077f3a6a-f4ce-''1''1e2-9267-0800272a2ce7

- Version 4~
4fcc7254-322a-''4''5e3-a3e6-ca3baefef71b~
08d5ee35-d0d8-''4''fbd-ab78-c8255fb5c2ea

以上、UUIDをコマンドラインから生成する方法についてでした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS