「/etc/fstab」ファイルの中身を調べると、「/dev/hda1」といった見慣れたハードディスク表記ではなく「UUID=62fa5eac-3df4-448d-a576-916dd5b432f2
」のようなエントリを見かけることがある。こうしたエントリは汎用一意識別子(UUID:Universally Unique IDentifier)と呼ばれており、この128ビットの数値を使うことでハードディスクドライブの管理が容易になる。
「/dev/hda」と「/dev/hdb」という2台のハードディスクドライブを搭載したシステムがあるとする。「/dev/hda」にはrootパーティションとスワップパーティションが含まれ、「/dev/hdb1」にはホームディレクトリと2台目のハードディスク領域全体が含まれている。ここで、別のハードディスクドライブをシステムに追加したいが、何らかの制約があって「/dev/hda」と「/dev/hdb」の間にしか追加できず、「/dev/hdb」を「/dev/hdc」としなければならないとする。すると、似たようなことを試した人なら知っているだろうが、次のような問題が起こる。mountコマンドは、「/etc/fstab」ファイルをチェックして新しいドライブを「/home」としてマウントしようとするのだ。この問題を解決するには、シングルユーザモードでrootとしてログインし、「/etc/fstab」を編集したうえで、ドライブの起動順序を変更する必要がある。そうしないと、ログイン時にシステムからエラーが返ってくるか、最悪の場合はルートドライブでカーネルパニックが発生する。これだけでも十分に厄介な状況だが、「/var」、「/opt」、「/home」、「/boot」、「/usr」、「/usr/local」といったディレクトリが複数のハードディスクドライブに分かれているマシンだと、問題はさらに複雑になる。
しかし、システム管理者がUUIDを使用することにすれば、こうした問題は実質的に解消される。「/dev/sd*」とか「/dev/hd*」という表記がほとんど消えてしまうからだ。その代わり、それぞれのハードディスクドライブにはUUIDが与えられる。UUIDはファイルシステム内で保持され、「/etc/fstab」が参照先となる。そのため、システム管理者は、UNIXのファイルシステムツリー内のマウント位置に影響を与えることなく、各デバイスをBIOSチェーン内のどこにでも自由に配置できる。
旧来のシステムでは通常「/etc/fstab」のエントリが次のようになっている(以下はファイルシステムにJFSを使っている場合)。
/dev/sda1 / jfs relatime,errors=remount-ro 0 1
新しいシステムでは、同じエントリが次のようになる。
UUID=1c0653cd-e897-41af-bd30-55f3a195ff33 / jfs relatime,errors=remount-ro 0 1
違うのは、エントリの最初の部分だけである。ドライブを指定する「/dev/sda1」の部分が、「UUID= 1c0653cd-e897-41af-bd30-55f3a195ff33」に変わっている。そのため、このドライブが仮に「/dev/sdi1」だったとしても問題は起こらない。ブートローダの設定ファイルさえ適切に変更されていれば、このドライブはrootとしてマウントされ、期待どおりに動作してくれる。