Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,208)  
HandBrake Japanese Language Version  (3,353)  
CrystalDiskInfo  (1,743)  
CotEditor  (1,120)  
CrystalDiskMark  (866)  
Boookends  (788)  
SMPlayer  (642)  
えこでこツール  (599)  
Tera Term  (595)  
10  FFFTP  (579)  
11  Cabos  (530)  
12  BathyScaphe  (494)  
13  ffdshow  (481)  
14  MergeDoc  (464)  
15  ギコナビ  (438)  
More >>

最近ブックマークされた記事

UUIDを使ったディスクドライブ指定

2008年09月18日 12:21 David Pendell 1 2 3

 「/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としてマウントされ、期待どおりに動作してくれる。

最終更新:2008年11月18日 17:07