SourceForge.JP: Open Source Software (オープンソース ソフトウェア)

ログイン アカウント作成 ヘルプ [en][ja]
アレゲなら Slashdot
OSS なら SF マガジン
Search

Magazine 特集記事

最新Webブラウザに向けたWebサイト開発テクニック[10/31更新]

2008年になり、FirefoxやInternet Explorer、Operaといった主要Webブラウザが相次いでメジャーバージョンアップ...

SourceForge.JPを活用する[10/10更新]

本特集では、CVSやSVNといったバージョン管理システムの使い方や、SSH/SCPによるリモートログイン/ファイル転送...

オススメFirefox拡張 [9/5更新]

Firefoxの魅力の1つに、豊富な“拡張”の存在がある。素の状態のFirefoxはIE 7やOperaといった...

ソフトウェア開発に役立つOSSのツール群

ベンダーが体系的なツール群を提供しているプロプライエタリな開発環境とは対照的に、オープン...

Linuxベンチマーキング

ここでは、Linuxシステムの性能評価に使えるベンチマークツールの紹介記事と、ベンチマーク...

ディストリビューション・レビュー

バザールモデルで開発されているLinuxの世界では、日々、新たなディストリビューションが...

SourceForge.JP活用特集

CVS/Subversionを使ったバージョン管理(後編:SVNを使ったバージョン管理)

前編、中編ではバージョン管理の基本事項やCVSについて解説してきたが、後編となる本記事では、Subversionの利用について解説する。...

CVS/Subversionを使ったバージョン管理(中編:CVSを使ったバージョン管理)

前編ではバージョン管理システムの基本事項について解説を行ったが、中編となる本記事では、CVSを使ったバージョン管理について解説する。...

CVS/Subversionを使ったバージョン管理(前編:バージョン管理の基礎)

本記事では、まずバージョン管理システムの基本的な考え方と、用語について解説する。...

Windows用SCP/SFTPクライアント「WinSCP」で安全なファイル転送

ネットワーク経由で安全にファイルを転送する方法として、SCPやSFTPがある。最近では、セキュリティ向上のため...

[PR]お勧めリンク

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

2008年09月18日 12:21PM 1 2 3
  • スラッシュドットにタレコむ
  • あとで読む

 UUIDを利用するには、まず「/etc/fstab」ファイルをチェックする。上記のUUIDの例と同じような行があれば、おそらくすでにUUIDを使ってドライブのマウントが行われているはずだ。それを確認するには、「cat /proc/cmdline」というコマンドを実行すればよい。UUIDを含む結果が返ってくれば、システムのブートローダがUUIDによるrootファイルシステムのマウントを行ったということであり、実際にUUIDが使われていることになる。残念ながら、mountコマンド自体ではまだそうした情報を扱えるようにはなっていない。少なくとも私のシステムではそうであり、mountコマンドも「/etc/mtab」ファイルも、「/dev/[hs]d*」という表記でハードディスクドライブを参照している。この制限により、自分で使うドライブとパーティションのそれぞれのマウント先には注意する必要がある。ただし、あとで説明するように、こうした情報を表示してくれるコマンドは存在する。

 まだUUIDを使っていないがこれから使いたいという場合は、テスト用のハードディスクドライブを別に用意することをお勧めする。実際に使っているファイルシステムをいじって、不用意に破壊してしまうのを避けるためだ。また、BIOSのドライブ位置をデバイスノードに関連付ける方法や、パーティション設定とファイルシステム作成の方法も知っておく必要がある。これらの意味がわからなければ、詳しい人に訊くか、チュートリアルを読んで学んでおくこと。

 準備が整ったら、既存のハードディスクドライブのパーティションノードと干渉しないように、テスト用のハードディスクドライブをコンピュータに取り付け、コンピュータのブート後に、そのドライブのパーティション分割スキームとファイルシステムの作成を行う。LinuxネイティブのファイルシステムはいずれもUUIDをサポートしているので、どれを使用してもよい。個人的にReiserFS、ext2/3、JFS、XFSを試してみたが、どれでもUUIDが使えた。一方、FATやNTFSではUUIDが十分にサポートされていない可能性がある。blkidではこれらのドライブのUUIDも表示されるが、NTFSおよびFATに関するMicrosoftの技術文書にはUUIDの記述すらない。ここでは、新たに取り付けたドライブのファイルシステムだけでなく、マウントポイントも作成しておく。これらの作業が済んだら、「sudo vol_id /dev/your_hard_drive」という形のコマンドを実行する。すると、次のような出力が表示されるはずだ。

ID_FS_USAGE=filesystem
ID_FS_TYPE=jfs
ID_FS_VERSION=
ID_FS_UUID=1c0653cd-e897-41af-bd30-55f3a195ff33
ID_FS_UUID_ENC=1c0653cd-e897-41af-bd30-55f3a195ff33
ID_FS_LABEL=
ID_FS_LABEL_ENC=
ID_FS_LABEL_SAFE=

 ここでは「ID_FS_UUID」という情報にだけ注目すればよい。上記の「vol_id」コマンドでUUIDが表示されなかった場合は、UUIDを生成してドライブに割り当てる必要がある。DCE 1.1のバージョン1、3、4、5に従ってUUIDを生成するのがuuidコマンドである。デフォルトのバージョン1では、システムクロックの時間とシステムのイーサネットカードのMACアドレスの組み合わせを使用してUUIDを生成する。MACアドレスは一意に割り当てられているが、UUIDを生成したマシンの構成要素が特定されるのではないかというプライバシやセキュリティ上の問題を挙げる人もいる。バージョン3では名前に基づくMD5ハッシュを利用し、バージョン4は乱数ベースのものであり、バージョン5は名前に基づくSHA-1ハッシュを利用する。なお、バージョン3および5を利用するには、URLのような名前空間が必要になる。ほとんどの人はバージョン1または4で事足りるだろう。

 乱数ベースのバージョンがどれかを覚えておかなくても、「uuidgen」を使えばランダムなUUIDを生成できる。デフォルトは乱数ベースの生成だが、システム時間とMACアドレスに基づいてUUIDを生成するオプションもある。

 UUIDを取得したら、「/etc/fstab」ファイルを開き、そのUUIDを新しい行に追記する。続いて、その行の後ろに、「/etc/fstab」ファイルにある既存の行にあるファイルシステムのオプションをコピーして、次のような形にする。

UUID=1c0653cd-e897-41af-bd30-55f3a195ff33  /your/mount/point file_system_type file_system_options

 行頭の「UUID=」を忘れずに追記すること。この作業が済んだら「/etc/fstab」ファイルを保存してテキストエディタを終了し、「sudo mount -U /your/mount/point」のようなコマンドを実行する。すべてがうまくいけば、このコマンドはエラーが出ることなく完了する。今度はパラメータなしでmountコマンドを実行して、マウント済みデバイスの表示を確認する。先ほど追加したドライブが一覧にあれば、UUIDによるマウントに成功したことになる。

 UUIDのすばらしさを実感したければ、コンピュータをシャットダウンし、デバイスノード名が変わるようにハードディスクドライブの接続を変えて、リブートしてみるとよい。何のエラーもなく、先ほどと同じ場所にドライブがマウントされているはずだ。

David Pendell
2008年11月18日 05:07PM 更新