検索

システム管理ガイド

download PDF
Red Hat Enterprise Linux 4

For Red Hat Enterprise Linux 4

概要

システム管理者のガイド では、Red Hat Enterprise Linux 4 のデプロイメント、設定、および管理に関する関連情報を説明します。本書は、システムに関する基本的な理解があるシステム管理者を対象としています。

はじめに

『 『システム管理者のガイド』』 にようこそ。
『システム 『管理者ガイド』』 には、必要に応じて Red Hat Enterprise Linux システムをカスタマイズする方法が記載されています。ステップバイステップの、システムの設定およびカスタマイズのためのタスク指向のガイドが必要な場合には、これは手動で行います。このマニュアルでは、以下のような中間トピックを多数説明します。
  • ネットワークインターフェースカード(NIC)の設定
  • キックスタートインストールの実行
  • Samba 共有の設定
  • RPM を使用したソフトウェアの管理
  • システムに関する情報の決定
  • カーネルのアップグレード
このマニュアルは、以下の主要なカテゴリーに分類されます。
  • インストール関連のリファレンス
  • ファイルシステムのリファレンス
  • パッケージ管理
  • Network Configuration
  • システム設定
  • システムモニタリング
本書は、Red Hat Enterprise Linux システムに関する基本的な理解があることを前提としています。Red Hat Enterprise Linux のインストールに関するヘルプが必要な場合は、『インストール 『ガイド』』 を参照してください。システム管理に関する一般的な情報は、『システム管理者の 『概要』を参照し』 てください。ファイルシステムの概要など、より高度なドキュメントが必要な場合は、『『リファレンスガイド』』 を参照してください。セキュリティー情報が必要な場合は『セキュリティー 『ガイド』を参照し』 てください。

1. この手動の変更

このマニュアルは明確にするために変更されており、Red Hat Enterprise Linux 4 の最新機能で更新されています。変更には以下が含まれます。
カーネルモジュール』 の更新および 『カーネルの』 章の手動更新
カーネル 『モジュールおよびカーネル』 の 『手動アップグレード』 には、2.6 カーネルに関して更新された情報が含まれています。本章を完了するのに役立つハード作業のために Arjan van de Ven に特化しました。
更新され 『たネットワークファイルシステム(NFS)』 の章
ネットワークファイルシステム(NFS)』 の章が修正され、NFSv4 を組み込むように再編成されました。本章を完了するのに役立つハード作業のために Steve Dickson に特化しました。
Update Update 『OProfile』 の章
OProfile』 の章が修正され、2.6 カーネルに関して更新された情報を組み込むように修正および再編成されました。本章を完了するのに役立つハード作業についての Will Cohen に特化しました。
Update Update 『X Window System』 の章
X Window System の』 章が修正され、X.Org チームが開発した X11R6.8 リリースに関する情報が追加されています。
本ガイドを読む前に、インストールの問題、基本的な管理概念のための 『システム管理の概要』、一般的なカスタマイズ手順のための 『システム管理者ガイド』、セキュリティー関連の手順については 『』 セキュリティーガイド』を参照してください。『』本ガイドでは、上級ユーザーのトピックについて説明します。

2. 本書の表記慣例

本ガイドでは、いくつかの規則を使用して特定の単語やフレーズを強調表示し、特定の情報への注意を促しています。

2.1. 誤字規則

特定の単語や句への注意を促すために 4 つの表記慣習を使用しています。これらの規則や、これらが適用される状況は以下のとおりです。
等幅ボールド
シェルコマンド、ファイル名、パスなど、システム入力を強調表示するために使用されます。キーとキーの組み合わせを強調表示するためにも使用されます。以下に例を示します。
現在の作業ディレクトリーのファイル my_next_bestselling_novel の内容を表示するには、シェルプロンプトで cat my_next_bestselling_novel コマンドを入力し、Enter を押してコマンドを実行します。
上記には、ファイル名、シェルコマンドおよびキーが含まれます。これはすべて等幅ボールドで表示され、コンテキストにより区別可能なものになります。
キーの組み合わせは、キーの組み合わせの各パーツをつなげるプラス記号によって個別のキーと区別できます。以下に例を示します。
Enter を押してコマンドを実行します。
Ctrl+Alt+F2 を押して、仮想ターミナルに切り替えます。
最初の例では、押す特定のキーを強調表示しています。2 つ目の例は、同時に押す 3 つのキーのセットというキーの組み合わせを強調表示しています。
ソースコードの場合、段落内で記述されるクラス名、メソッド、関数、変数名、および戻り値は、上記のように 等幅ボールド で示されます。以下に例を示します。
ファイル関連のクラスには、ファイルシステムの filesystem、ファイルの file、ディレクトリーの dir が含まれます。各クラスには、独自の関連付けられたパーミッションセットがあります。
プロポーショナルボールド
これは、アプリケーション名、ダイアログボックステキスト、ラベルが付いたボタン、チェックボックスおよびラジオボタン、メニュータイトルおよびサブメニュータイトルなど、システムで発生した単語またはフレーズを示します。以下に例を示します。
メインメニューバーから SystemPreferencesMouse を選択し、Mouse Preferences を起動します。Buttons タブで、Left-handed mouse チェックボックスを選択し、Close をクリックしてメインのマウスボタンを左から右に切り替えます (マウスを左手で使い易くします)。
特殊文字を gedit ファイルに挿入するには、メインメニューバーから ApplicationsAccessoriesCharacter Map を選択します。次に、Character Map メニューバーから SearchFind… を選択し、Search フィールドに文字の名前を入力して Next をクリックします。目的の文字が Character Table で強調表示されます。この強調表示した文字をダブルクリックして Text to copy フィールドに配置し、Copy ボタンをクリックします。ここでドキュメントに戻り、gedit メニューバーから EditPaste を選択します。
上記のテキストにはアプリケーション名、システム全体のメニュー名および項目、アプリケーション固有のメニュー名、GUI インターフェース内のボタンおよびテキストなどがあります。すべては proportional bold で示され、コンテキストと区別できます。
等幅ボールドイタリック または プロポーショナルボールドイタリック
等幅ボールドまたはプロポーショナルボールドのいずれでも、イタリックが追加されると、置換または変数テキストを意味します。イタリックは、状況に応じて変化するテキストや、文字を入力しないテキストを表します。以下に例を示します。
ssh を使用してリモートマシンに接続するには、シェルプロンプトで ssh username@domain.name を入力します。リモートマシンが example.com で、そのマシンのユーザー名が john の場合は、ssh john@example.com と入力します。
mount -o remount file-system コマンドは、指定したファイルシステムを再マウントします。たとえば、/home ファイルシステムを再マウントする場合には、コマンドは mount -o remount /home です。
現在インストールされているパッケージのバージョンを表示するには、rpm -q package コマンドを使用します。その結果が package-version-release のように返されます。
上記の太字のイタリック体の用語、username、domain.name、file-system、package、version、および release に注意してください。各単語はプレースホルダーで、コマンドの発行時に入力するテキストまたはシステムによって表示されるテキストのどちらかになります。
作業のタイトルを示す標準的な使用法のほかに、イタリックは新用語と重要な用語の最初の使用を示します。以下に例を示します。
Publican は DocBook 公開システムです。

2.2. 引用規則

端末の出力およびソースコードの一覧は、周りのテキストから視覚的に表示されます。
端末に送信される出力は、mono-spaced roman に設定され、次のように表示されます。
books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs
ソースコードの一覧も mono-spaced roman に設定されますが、構文強調表示を以下のように追加します。
static int kvm_vm_ioctl_deassign_device(struct kvm *kvm,
                 struct kvm_assigned_pci_dev *assigned_dev)
{
         int r = 0;
         struct kvm_assigned_dev_kernel *match;

         mutex_lock(&kvm->lock);

         match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
                                       assigned_dev->assigned_dev_id);
         if (!match) {
                 printk(KERN_INFO "%s: device hasn't been assigned before, "
                   "so cannot be deassigned\n", __func__);
                 r = -EINVAL;
                 goto out;
         }

         kvm_deassign_device(kvm, match);

         kvm_free_assigned_device(kvm, match);

out:
         mutex_unlock(&kvm->lock);
         return r;
}

2.3. 注記および警告

最後に、3 つの視覚的スタイルを使用して、見落とす可能性のある情報に注意を促します。
注記
注記とは、タスクへのヒント、ショートカット、または代替アプローチです。注意を無視しても悪い結果を招くことはありませんが、便利なヒントを見逃してしまう可能性があります。
重要
見落としやすい詳細のある重要なボックス: 現行セッションにのみ適用される設定変更や、更新を適用する前に再起動が必要なサービスなどです。「Important」というラベルが付いたボックスを無視しても、データが失われることはありませんが、スムーズな操作が行えないことがあります。
警告
警告は無視すべきではありません。警告を無視すると、データが失われる可能性があります。

3. 詳細情報

『 『システム管理者ガイド』』 は、Red Hat Enterprise Linux ユーザーに有用で時間上のサポートを提供するために、Red Hat, Inc's 増加の取り組みの一部です。新しいツールおよびアプリケーションがリリースされると、本書は拡張され、それを組み込むように拡張されます。

3.1. フィードバックをお寄せください

『 『システム管理者ガイド』』 にエラーが見つかった場合や、このマニュアルを改善する方法を検討している場合は、ご連絡ください。コンポーネント rh-sag に対して Bugzilla(http://bugzilla.redhat.com/bugzilla/)でレポートを送信してください。
手動識別子を必ず言及してください。
rh-sag
このマニュアルの識別子について言及することで、どのバージョンのガイドがどのバージョンのものかを正確に知っています。
本ガイドを改善するためのご意見やご提案をお寄せいただく場合は、できるだけ具体的にご説明ください。エラーが見つかった場合は、簡単に確認できるように、セクション番号と前後のテキストを含めてください。

パート II. ファイルシステム

ファイルシステム は、コンピューターに保存されているファイルおよびディレクトリーを参照します。ファイルシステムには、ファイルシステムタイプ と呼ばれる形式が異なる場合があります。これらの形式は、情報がファイルおよびディレクトリーとして保存される方法を決定します。ファイルシステムタイプによっては、データの冗長コピーが格納されているものもありますが、ファイルシステムタイプによってはハードドライブへのアクセスが速くなります。ここでは、ext3、swap、RAID、LVM ファイルシステムの種類を説明します。また、パーティションおよびアクセス制御リスト(ACL)を管理し、ファイルパーミッションをカスタマイズする parted ユーティリティーについても説明します。

第6章 Ext3 ファイルシステム。

デフォルトのファイルシステムはジャーナリング ext3 ファイルシステムです。

6.1. ext3 の機能

ext3 ファイルシステムは、基本的に、ext2 ファイルシステムが拡張されたバージョンです。さまざまな改善点により、以下のような利点が提供されます。
可用性
予期しない停電やシステムクラッシュ (クリーンでないシステムシャットダウン とも言われる) が発生すると、マシンにマウントしている各 ext2 ファイルシステムは、e2fsck プログラムで整合性をチェックする必要があります。これは時間を浪費するプロセスであり、大量のファイルを含む大型ボリュームでは、システムの起動時間を著しく遅らせます。このプロセスの間、そのボリュームにあるデータは使用できません。
ext3 ファイルシステムで提供されるジャーナリングは、クリーンでないシステムシャットダウンが発生してもこの種のファイルシステムのチェックが不要であることを意味します。ext3 の使用していても整合性チェックが必要になる唯一の場面は、ハードドライブの障害が発生した場合など、ごく稀なハードウェア障害のケースのみです。クリーンでないシャットダウンの発生後に ext3 ファイルシステムを復元する時間は、ファイルシステムのサイズやファイルの数量ではなく、一貫性を維持するために使用される ジャーナル のサイズに依存します。デフォルトのジャーナルサイズは、ハードウェアの速度に応じて、復旧するのに約 1 秒かかります
データの整合性
ext3 ファイルシステムは、クリーンでないシステムのシャットダウンが発生した場合に、より強力なデータ整合性を提供します。ext3 ファイルシステムにより、データが受けることのできる保護のタイプとレベルを選択できるようになります。デフォルトでは、ext3 ボリュームは、ファイルシステムの状態に関して、高いレベルのデータの整合性を維持するように設定されています。
速度
一部のデータを複数回書き込みますが、ext3 のジャーナリングにより、ハードドライブのヘッドモーションが最適化されるため、ほとんどの場合、ext3 のスループットは ext2 よりも高くなります。3 つのジャーナリングモードを選択して速度を最適化できますが、データの整合性に関してトレードオフが生じます。
簡単なトランジション
ext2 から ext3 に簡単に移行でき、再フォーマットをせずに、堅牢なジャーナリングファイルシステムの恩恵を受けることができます。このタスクの実行方法は、「ext3 ファイルシステムへの変換」 を参照してください。
以下のセクションでは、ext3 パーティションの作成およびチューニングの手順を説明します。ext2 パーティションの場合は、以下のパーティションパーティションおよびフォーマットセクションを省略し、「ext3 ファイルシステムへの変換」 に直接移動します。

6.2. Ext3 ファイルシステムの作成

インストール後、ext3 ファイルシステムを新たに作成しないといけない場合があります。たとえば、システムに新しいディスクドライブを追加する場合は、ドライブを分割して ext3 ファイルシステムを使用できます。
ext3 ファイルシステムを作成する手順は次のとおりです。
  1. parted または netstat を使用してパーティションを作成 ます。
  2. mkfs を使用して、ext3 ファイルシステムでパーティションをフォーマットします。
  3. e2label を使用してパーティションにラベルを付けます。
  4. マウントポイントを作成します。
  5. /etc/fstab ファイルにパーティションを追加します。

6.3. ext3 ファイルシステムへの変換

tune2fs プログラムは、パーティション上にあるデータを変更せずに、既存の ext2 ファイルシステムにジャーナルを追加できます。ファイルシステムが移行中にすでにマウントされている場合は、ジャーナルがファイルシステムのルートディレクトリーにある .journal ファイルとして表示されます。ファイルシステムがマウントされていない場合、ジャーナルは非表示になり、ファイルシステムには全く表示されません。
備考
Red Hat Enterprise Linux のデフォルトのインストールでは、すべてのファイルシステムに ext3 を使用します。
ext2 ファイルシステムを ext3 に変換するには、root としてログインし、以下を入力します。
/sbin/tune2fs -j <file_system>
ここで 、<file_system > は適切な LVM2 ファイルシステムです。
有効な LVM2 ファイルシステムは、以下の 2 つのタイプのエントリーのいずれかになります。
  • マップされたデバイス - ボリュームグループの論理ボリューム(例: /dev/mapper/VolGroup00-LogVol02 )。
  • 静的デバイス - 従来のストレージボリューム(例: /dev/hdbX )。hdb はストレージデバイス名に、X はパーティション番号になります。
df コマンドを実行して、マウントされたファイルシステムを表示します。LVM ファイルシステムの詳細は、8章LVM の設定 を参照してください。
これ以降の例では、サンプルコマンドは以下の値を使用します。
 /dev/mapper/VolGroup00-LogVol02 
これを行ったら、/etc/fstab ファイルでパーティションの種類を ext2 から ext3 に変更してください。
root ファイルシステムを移行する場合は、initrd イメージ(または RAM ディスク)を使用して起動する必要があります。これを作成するには、mkinitrd プログラムを実行します。mkinitrd コマンドの使用方法は、man mkinitrd と入力します。また、GRUB 設定が initrd を読み込むことを確認します。
この変更を加えても、システムは起動したままですが、ファイルシステムが ext3 ではなく ext2 としてマウントされます。

6.4. ext2 ファイルシステムに戻す

ext3 は比較的新しいため、一部のディスクユーティリティーはまだサポートされていません。たとえば、resize2fs でパーティションを縮小する必要がありますが、ext3 はまだサポートされていません。このような状況では、ファイルシステムを一時的に ext2 に戻す必要がある場合があります。
パーティションを復元するには、まず root としてログインしてパーティションをアンマウントします。
umount /dev/mapper/VolGroup00-LogVol02
次に、root で以下のコマンドを入力して、ファイルシステムタイプを ext2 に変更します。
 /sbin/tune2fs -O ^has_journal /dev/mapper/VolGroup00-LogVol02
root で以下のコマンドを入力して、パーティションにエラーの有無を確認します。
/sbin/e2fsck -y /dev/mapper/VolGroup00-LogVol02
次に、以下を入力して ext2 ファイルシステムとしてパーティションを再度マウントします。
mount -t ext2 /dev/mapper/VolGroup00-LogVol02/mount/point
上記のコマンドで、/mount/point をパーティションのマウントポイントに置き換えます。
次に、マウントしたディレクトリーに移動して、パーティションのルートレベルで .journal ファイルを削除します。
rm -f .journal
これで、ext2 パーティションが作成されます。
パーティションを ext2 に永続的に変更する場合は、必ず /etc/fstab ファイルを更新するようにしてください。
ヒント
ext2online を使用して、ext3 ファイルシステムのサイズを増やすことができます。ext2online を使用すると、ext3 ファイルシステムのマウント(オンライン)およびリズル可能な論理ボリュームで、ext3 ファイルシステムのサイズを拡大できます。root ファイルシステムは、インストール時に LVM2 論理ボリュームにデフォルトで設定されます。
ext2online は、ext3 ファイルシステムでのみ機能することに注意してください。詳細は、man ext2online を参照してください。

第7章 論理ボリュームマネージャー (LVM)

7.1. LVM とは

LVM は、ハードドライブの領域を論理ボリュームに割り当て、パーティションの代わりに簡単にサイズ変更できる方法です。
LVM では、ハードドライブまたはハードドライブのセットが 1 つ以上の 物理ボリューム に割り当てられます。物理ボリュームは、複数のドライブにまたがることができません。
物理ボリュームは、/boot/ パーティションを除く 論理ボリュームグループ に統合されます。/boot/ パーティションは、ブートローダーが読み取ることができないため、論理ボリュームグループ上に存在できません。root (/) パーティションが論理ボリューム上にある場合、ボリュームグループに属さない別の /boot/ パーティションを作成します。
物理ボリュームは複数のドライブにまたがることができないため、複数のドライブにまたがるには、ドライブごとに 1 つ以上の物理ボリュームを作成します。

図7.1 論理ボリュームグループ

論理ボリュームグループ
論理ボリュームグループは、論理ボリュームに分割されます。このボリューム には、/home/ m、ファイルシステムタイプ(ext2、ext3 など)が割り当てられます。「パーティション」がフル容量に到達すると、論理ボリュームグループの空き容量を追加して、パーティションのサイズを増やすことができます。システムに新しいハードドライブを追加すると、そのドライブを論理ボリュームグループに追加できます。また、論理ボリュームであるパーティションを拡張することができます。

図7.2 論理ボリューム

論理ボリューム
一方、システムが ext3 ファイルシステムでパーティション設定されている場合、ハードドライブは定義されたサイズのパーティションに分割されます。パーティションがいっぱいになると、パーティションのサイズを拡張するのは簡単ではありません。パーティションを別のハードドライブに移動した場合でも、元のハードドライブのスペースを別のパーティションとして再割り当てするか、使用しないようにする必要があります。
LVM サポートはカーネルにコンパイルする必要があり、デフォルトの Red Hat カーネルは LVM サポートでコンパイルされます。
インストールプロセス中に LVM を設定する方法は、8章LVM の設定 を参照してください。

7.2. LVM2 とは

LVM バージョン 2 または LVM2 は、2.6 カーネルに含まれるデバイスマッパードライバーを使用する Red Hat Enterprise Linux のデフォルトです。LVM2 は、以前の LVM1 バージョンとほぼ完全に互換性があり、2.4 カーネルを実行する Red Hat Enterprise Linux のバージョンからアップグレードできます。
通常、LVM1 から LVM2 へのアップグレードはシームレスに行われますが、より複雑な要件とアップグレードのシナリオの詳細については、「関連情報」 を参照してください。

7.3. 関連情報

これらのソースを使用して、LVM の詳細を確認してください。

7.3.1. インストールされているドキュメント

  • rpm -qd lvm - このコマンドは、man ページなど、lvm パッケージで利用可能なすべてのドキュメントを表示します。
  • lvm help —このコマンドは、使用可能なすべての LVM コマンドを表示します。

7.3.2. 便利な Web サイト

第8章 LVM の設定

LVM は、グラフィカルインストールプロセス、テキストベースのインストールプロセス、またはキックスタートインストール中に設定できます。lvm パッケージのユーティリティーを使用して、インストール後に独自の LVM 設定を作成できますが、この手順では、インストール時に ディスク Druid を使用してこのタスクを完了できます。
LVM について理解するには、まず 7章論理ボリュームマネージャー (LVM) を参照してください。LVM の設定に必要な手順の概要を以下に示します。
  • ハードドライブから 物理ボリューム を作成する。
  • 物理 ボリュームからのボリュームグループ の作成
  • ボリュームグループから 論理ボリューム を作成し、論理ボリュームのマウントポイントを割り当てます。
備考
以下の手順は、GUI のインストール時に示していますが、テキストベースのインストールで同じことができます。
2 9.1 GB の SCSI ドライブ(/dev/sda および /dev/sdb)が以下の例で使用されています。インストール時に、1 つの LVM ボリュームグループと関連する論理ボリュームを使用して、単純な設定を作成する方法が詳細に説明されています。

8.1. 自動パーティション設定

ディスクパーティションセットアップ 画面で、自動パーティション を選択し ます。
Red Hat Enterprise Linux の場合は、LVM がディスクパーティション化のデフォルト方法です。LVM を実装しない、または RAID のパーティション設定が必要な場合は、disk Druid で手動でディスクパーティションを設定 する必要があります。
以下のプロパティーは、自動作成された設定を構成します。
  • /boot/ パーティションは、独自の非 LVM パーティションにあります。以下の例では、最初のドライブ(/dev/sda1)の最初のパーティションです。起動可能なパーティションは LVM 論理ボリュームには存在 できません
  • 1 つの LVM ボリュームグループ(VolGroup00)が作成され、選択されたすべてのドライブと利用可能な残りのすべての領域を分割します。以下の例では、最初のドライブ(/dev/sda2)の残りのドライブと、2 番目のドライブ全体(/dev/sdb1)がボリュームグループに割り当てられます。
  • 新規作成したボリュームグループから、LVM 論理ボリューム(LogVol00 および LogVol01)が作成されます。以下の例では、推奨されるスワップ領域は自動的に計算され、LogVol01 に割り当てられ、残りのスワップ領域は root ファイルシステム LogVol00 に割り当てられます。

図8.1 2 つの SCSI ドライブを使用した LVM の自動設定

2 つの SCSI ドライブを使用した LVM の自動設定
備考
クォータを有効にする場合は、/home//var/ などの他のマウントポイントを含めるように自動設定を変更することが推奨されます。これにより、各ファイルシステムに独自の独立したクォータ設定制限を持たせることができます。
多くの場合、デフォルトの LVM パーティションの自動パーティションで十分ですが、高度な実装では LVM パーティションテーブルの変更や手動の設定が必要となる可能性があります。
備考
将来のメモリーアップグレードを想定している場合は、ボリュームグループに空き領域の一部を残すことで、システム上のスワップ領域の論理ボリュームを簡単に拡張できます。この場合、LVM の自動設定を変更して、将来の拡張のために利用可能な領域を確保する必要があります。

8.2. 手動での LVM パーティション設定

次のセクションでは、Red Hat Enterprise Linux 用に LVM を手動で設定する方法を説明します。LVM でシステムを手動で設定する方法は多数ありますが、以下の例では 「自動パーティション設定」 で行ったデフォルト設定と似ています。
ディスクパーティションセットアップ 画面で、ディスク Druid を使用した手動パーティション を 選択します。

8.2.1. /boot/ パーティションの作成

一般的な状況では、ディスクドライブが新しく、またはフォーマットされたクリーニングです。以下の図の 図8.2「2 つの Blank Drives(構成に Ready)」 は、パーティションが設定されていない raw デバイスとして、両方のドライブを示しています。

図8.2 2 つの Blank Drives(構成に Ready)

2 つの Blank Drives(構成に Ready)
Warning
GRUB ブートローダーは読み取れないため、/boot/ パーティションを LVM ボリュームグループに置くことはできません。
  1. New を選択します。
  2. マウントポイント プルダウンメニューから /boot を選択します。
  3. File System Type プルダウンメニューから ext3 を選択します。
  4. Allowable Drives エリアから sda チェックボックスを選択します。
  5. Size(MB) メニューの 100 (デフォルト)のままにします。
  6. Additional Size Options エリアで Fixed size (デフォルト)ラジオボタンを選択したままにします。
  7. Force to a primary partition を選択して、パーティションをプライマリーパーティションにします。プライマリーパーティションは、ハードドライブの最初の 4 つのパーティションの 1 つです。選択しないと、パーティションが論理パーティションとして作成されます。他のオペレーティングシステムがすでにシステムにインストールされている場合は、このオプションの選択を解除することを検討する必要があります。プライマリーパーティションと論理的/拡張パーティションの詳細は、『『インストールガイド』』 の付録セクションを参照してください。
入力した値を確認するには、図8.3「ブートパーティションの作成」 を参照してください。

図8.3 ブートパーティションの作成

ブートパーティションの作成
OK をクリックしてメイン画面に戻ります。以下の図は、ブートパーティションが正しく設定されていることを確認します。

図8.4 /boot/ パーティションの表示

/boot/ パーティションの表示

8.2.2. LVM 物理ボリュームの作成

ブートパーティションを作成したら、残りのディスク領域を LVM パーティションに割り当てることができます。LVM の実装を正常に作成するための最初の手順は、物理ボリュームの作成です。
  1. New を選択します。
  2. 図8.5「物理ボリュームの作成」 に示されるように、File System Type プルダウンメニューから 物理ボリューム(LVM) を選択します。

    図8.5 物理ボリュームの作成

    物理ボリュームの作成
  3. マウントポイントは、まだ入力できません(すべての物理ボリュームを作成した後にすべてのボリュームグループを作成すると可能になります)。
  4. 物理ボリュームは、1 つのドライブに制限する必要があります。Allowable Drives には、物理ボリュームを作成するドライブを選択します。複数のドライブがある場合は、すべてのドライブが選択され、1 つのドライブからすべての選択を解除する必要があります。
  5. 物理ボリュームのサイズを入力します。
  6. Fixed size を選択して、指定したサイズに物理ボリュームを作成し、Fill all space up to(MB) を選択し、物理ボリュームサイズの範囲を MB 単位で入力 するか、最大許容サイズ を選択してハードディスク上の利用可能な領域をすべて埋めます。複数の拡張を可能にすると、ディスクの空き容量を共有します。
  7. パーティションを プライマリーパーティションにするには、Force to a primary partition を選択します。
  8. OK をクリックしてメイン画面に戻ります。
これらの手順を繰り返して、LVM 設定に必要な物理ボリュームをいくつでも作成します。たとえば、ボリュームグループを複数のドライブにまたがるようにするには、ドライブごとに物理ボリュームを作成します。以下の図は、反復プロセス後に完了した両方のドライブを示しています。

図8.6 2 つの物理ボリュームが作成される

2 つの物理ボリュームが作成される

8.2.3. LVM ボリュームグループの作成

すべての物理ボリュームを作成したら、ボリュームグループを作成できます。
  1. LVM ボタンをクリックして、物理ボリュームをボリュームグループに収集します。ボリュームグループは、基本的には物理ボリュームの集合です。複数の論理ボリュームグループを設定できますが、物理ボリュームは 1 つのボリュームグループにしか存在できません。
    備考
    論理ボリュームグループに、オーバーヘッドのディスク領域が予約されています。物理ボリュームの合計はボリュームグループのサイズと同じではない場合がありますが、表示される論理ボリュームのサイズは正しくありません。

    図8.7 LVM ボリュームグループの作成

    LVM ボリュームグループの作成
  2. 必要に応じて ボリュームグループ名 を変更します。
  3. ボリュームグループ内の論理ボリュームはすべて、物理エクステント 単位で割り当てる必要があります。デフォルトでは、物理エクステントは 32 MB に設定されています。そのため、論理ボリュームのサイズは 32 MB で除算する必要があります。32 MB の単位ではないサイズを入力すると、インストールプログラムは、32 MB の単位で最も近いサイズを自動的に選択します。この設定を変更することは推奨されません。
  4. ボリュームグループに使用する物理ボリュームを選択します。

8.2.4. LVM 論理ボリュームの作成

/、/home / 、swap 領域などのマウントポイントで論理ボリュームを作成します。/boot は論理ボリュームにすることはできないことに注意してください。論理ボリュームを追加するには、論理ボリューム セクションの 追加 ボタンをクリックします。図8.8「論理ボリュームの作成」 に示されているようにダイアログウィンドウが表示されます。

図8.8 論理ボリュームの作成

論理ボリュームの作成
作成するボリュームグループごとに、この手順を繰り返します。
ヒント
論理ボリュームを後で拡張できるように、論理ボリュームグループに空き領域の一部を残すこともできます。デフォルトの自動設定はこれを行いませんが、この手動設定の例は今後の拡張用に約 1 GB の空き領域として残されます。

図8.9 保留中の論理ボリューム

保留中の論理ボリューム
OK をクリックして、ボリュームグループと、関連するすべての論理ボリュームを適用します。
以下の図は、最終的な手動設定を示しています。

図8.10 最終の手動設定

最終の手動設定

第9章 RAID (Redundant Array of Independent Disks)

9.1. RAID とは

RAID の登場した背景には、容量が小さく手頃なディスクドライブを複数集めてアレイに結合させ、容量が大きく高価なドライブに負けないパフォーマンスと冗長性を実現しようとする動きがありました。この複数のデバイスからなるアレイは、コンピューター上では単一の論理ストレージユニットまたはドライブとして表されます。
RAID は、情報が複数のディスクに分散される方法です。RAID は、ディスクストライピング (RAID レベル 0)、ディスクミラーリング (RAID レベル 1)、および パリティー(RAID レベル 5)でのディスクストライピング などの技術を使用して、冗長性、レイテンシーの短縮、ディスクの読み取りや書き込みのための帯域幅の向上、ハードディスクのクラッシュから復旧する機能を最大化します。
RAID の基本的な概念は、アレイ内の各ドライブにデータを一貫した方法で分散できることです。これを実行するには、データを最初に一貫して使用する チャンク に分割する必要があります(サイズが 32K または 64K のサイズは異なります)。各チャンクは、使用される RAID レベルに従って、RAID アレイのハードドライブに書き込まれます。データを読み取る場合、プロセスは逆になり、アレイ内の複数のドライブが実際には 1 つの大きなドライブであることを確認できます。

9.2. RAID を使用するユーザー

大量のデータを維持する必要がある場合(システム管理者など)は、RAID テクノロジーを使用して利点があります。RAID を使用する主な理由は次のとおりです。
  • 改善された速度
  • 1 つの仮想ディスクを使用したストレージ容量の拡張
  • ディスク障害の影響を軽減

9.3. ハードウェア RAID とソフトウェア RAID の比較

考えられる RAID アプローチには、ハードウェア RAID とソフトウェア RAID の 2 つがあります。

9.3.1. ハードウェア RAID

ハードウェアベースのアレイは、ホストから RAID サブシステムを管理し、RAID アレイごとに 1 つのディスクのみを提示します。
ハードウェア RAID デバイスの例は、SCSI コントローラーに接続し、RAID アレイを 1 つの SCSI ドライブとして表示するものです。外部 RAID システムは、「intelligence」のすべての RAID 処理を、外部ディスクサブシステムにあるコントローラーに移動します。サブシステム全体が通常の SCSI コントローラーを介してホストに接続され、1 つのディスクとしてホストに表示されます。
RAID コントローラーは、オペレーティングシステムへの SCSI コントローラーのように 動作 し、実際のドライブ通信自体すべてを処理するカードの形式にも提供されます。このような場合は、SCSI コントローラーと同様にドライブを RAID コントローラーにプラグインしますが、RAID コントローラーの設定に追加し、オペレーティングシステムは違いを認識しません。

9.3.2. ソフトウェア RAID

ソフトウェア RAID では、カーネルディスク (ブロックデバイス) コード内に各種の RAID レベルを実装しています。高価ディスクコントローラーカードやホットスワップシャーシなど、最優先的な解決策を提供します。 [2] 必須ではありません。ソフトウェア RAID は、SCSI ディスクだけでなく安価な IDE ディスクでも機能します。現在高速な CPU により、ソフトウェア RAID のパフォーマンスは、ハードウェア RAID に対して調査できます。
Linux カーネルの MD ドライバーは、完全にハードウェアに依存しない RAID ソリューションの例です。ソフトウェアベースのアレイのパフォーマンスは、サーバーの CPU パフォーマンスと負荷によって異なります。
インストール時にソフトウェア RAID を設定する方法は、10章ソフトウェア RAID の設定 を参照してください。
ソフトウェア RAID が提供する詳細を知るには、以下に最も重要な機能を紹介します。
  • スレッド再構築プロセス
  • カーネルベースの設定
  • 再構築なしで Linux マシン間でのアレイの移植性
  • アイドルシステムリソースを使用したバックグラウンドのアレイ再構築
  • ホットスワップ可能なドライブのサポート
  • 特定の CPU 最適化を利用する自動 CPU 検出


[2] ホットスワップシャーシを使用すると、システムの電源を切らずにハードドライブを削除できます。

9.4. RAID レベルとリニアサポート

RAID は、レベル 0、1、4、5、リニアなどのさまざまな設定に対応します。これらの RAID タイプは以下のように定義されます。
  • レベル 0: RAID レベル 0 は、多くの場合「ストライプ化」と呼ばれ、パフォーマンス指向のストライプ化データマッピング技術です。これは、アレイに書き込まれるデータがストライプに分割され、アレイのメンバーディスク全体に書き込まれることを意味します。これにより低い固有コストで高い I/O パフォーマンスを実現できますが、冗長性は提供されません。レベル 0 アレイのストレージ容量は、ハードウェア RAID 内のメンバーディスクの合計容量、またはソフトウェア RAID 内のメンバーパーティションの合計容量と同じになります。
  • レベル 1: RAID レベル 1 または「ミラーリング」は、他の RAID 形式よりも長く使用されています。レベル 1 は、アレイ内の各メンバーディスクに同一データを書き込むことで冗長性を提供し、各ディスクに対して「ミラーリング」コピーをそのまま残します。ミラーリングは、データの可用性の単純化と高レベルにより、いまでも人気があります。レベル 1 は、2 つ以上のディスクで動作します。このディスクは、読み取り時に、データ転送率が高いのに並列アクセスを使用できるものの、一般的には独立して動作し、高い I/O トランザクションレートを提供します。レベル 1 は、非常に優れたデータの信頼性を提供し、読み取り集中型アプリケーションのパフォーマンスを向上しますが、比較的コストが高くなります。[3] レベル 1 アレイのストレージ容量は、ハードウェア RAID でミラーリングされたハードディスクのいずれかの容量と同じか、またはソフトウェア RAID にミラーリングされたパーティションの 1 つと等しくなります。
  • レベル 4: レベル 4 でパリティーを使用 [4] データを保護するため、1 つのディスクドライブで連結します。これは、大きなファイル転送ではなく、トランザクション I/O に適しています。専用のパリティーディスクは固有のボトルネックを表すため、レベル 4 は、ライトバックキャッシングなどの付随するテクノロジーを使用せずに使用されます。RAID レベル 4 は、一部の RAID パーティションスキームではオプションですが、Red Hat Enterprise Linux RAID インストールではオプションは使用できません。[5] ハードウェア RAID レベル 4 のストレージ容量はメンバーディスクの容量と同じで、1 つのメンバーディスクの容量を引いたことができます。ソフトウェア RAID レベル 4 のストレージ容量は、メンバーパーティションの容量と同じで、パーティションのサイズを等しい場合は、パーティションの 1 つを減算します。
  • レベル 5: これは RAID の最も一般的なタイプです。RAID レベル 5 は、アレイのメンバーディスクドライブの一部またはすべてにパリティーを分散することで、レベル 4 に固有の書き込みボトルネックを排除します。パリティー計算プロセスのみがパフォーマンスのボトルネックです。最新の CPU とソフトウェア RAID では、通常非常に大きな問題ではありません。レベル 4 と同様に、読み取りは書き込みを大幅に上回ります。レベル 5 は、多くの場合、ライトバックキャッシングで使用され、アクレメトリーを削減します。ハードウェア RAID レベル 5 のストレージ容量はメンバーディスクの容量と同じで、1 つのメンバーディスクの容量を引いたことができます。ソフトウェア RAID レベル 5 のストレージ容量は、メンバーパーティションの容量と同じで、パーティションのサイズを等しい場合は、パーティションの 1 つを減算します。
  • リニア RAID - リニア RAID は、より大きな仮想ドライブを作成するためのドライブを簡単にグループ化したものです。リニア RAID では、あるメンバードライブからチャンクが順次割り当てられます。最初のドライブが完全に満杯になったときにのみ次のドライブに移動します。これにより、メンバードライブ間の I/O 操作が分割される可能性はないため、パフォーマンスの向上は見られません。リニア RAID には冗長性がなく、実際に、信頼性は低下します。いずれかのメンバードライブに障害が発生した場合は、アレイ全体を使用することができません。容量はすべてのメンバーディスクの合計になります。


[3] RAID レベル 1 は、ドライブ領域を無駄にするアレイ内のすべてのディスクに同じ情報を書き込むため、高価になります。たとえば、root(/)パーティションが 2 つの 40G ドライブに存在するように RAID レベル 1 が設定されている場合は、合計 80G があり、その 80G の 40G のみにアクセスできます。他の 40G は最初の 40G のミラーのように動作します。
[4] パリティー情報は、アレイ内の残りのメンバーディスクのコンテンツに基づいて計算されます。この情報は、アレイ内のいずれかのディスクに障害が発生した場合にデータの再構築に使用できます。その後、再構築されたデータを使用して、交換前に失敗したディスクに I/O 要求に対応でき、交換後に失敗したディスクを接続します。
[5] RAID レベル 4 は、RAID レベル 5 と同じ領域を使用しますが、レベル 5 の方が利点があります。このため、レベル 4 はサポートされません。

第10章 ソフトウェア RAID の設定

ソフトウェア RAID は、グラフィカルインストールプロセス、テキストベースのインストールプロセス、またはキックスタートインストール中に設定できます。本章では、ディスク Druid インターフェースを使用して、インストール時にソフトウェア RAID を設定する方法を説明します。
9章RAID (Redundant Array of Independent Disks) は、最初に RAID、ハードウェアおよびソフトウェア RAID の相違点、および RAID 0、1、および 5 の相違点を参照してください。RAID の設定に必要な手順の概要を以下に示します。
  • ソフトウェア RAID パーティション を物理ハードドライブに適用する。
    起動パーティション(/boot/)が RAID 分割に存在する場合は、RAID 1 パーティション上にある 必要 があります。
  • ソフトウェア RAID パーティションから RAID デバイス を作成する。
  • 必要に 応じ て、RAID デバイスから LVM を設定します。RAID の設定後に LVM を設定する方法は、8章LVM の設定 を参照してください。
  • RAID デバイスから ファイルシステム を作成する。
備考
以下の手順は、GUI のインストール時に示していますが、テキストベースのインストールで同じことができます。
ソフトウェア RAID の設定は、インストールプロセス時に ディスク Druid で手動で行う必要があります。
2 9.1 GB の SCSI ドライブ(/dev/sda および /dev/sdb)が以下の例で使用されています。複数の RAID デバイスを実装して、シンプルな RAID 1 設定を作成する方法について詳しく説明します。
ディスクパーティションセットアップ 画面で、ディスク Druid を使用した手動パーティション を 選択します。

10.1. RAID パーティションの作成

一般的な状況では、ディスクドライブが新規またはフォーマットされます。両方のドライブは、図10.1「2 つの Blank Drives(構成に Ready)」 にパーティション設定のない raw デバイスとして表示されます。

図10.1 2 つの Blank Drives(構成に Ready)

2 つの Blank Drives(構成に Ready)
  1. Disk Druid で RAID を選択し、ソフトウェア RAID の作成画面を入力します。
  2. 図10.2「RAID パーティションオプション」 にあるよう に、ソフトウェア RAID パーティションの作成 を 選択して、RAID パーティションを作成します。RAID パーティションと RAID デバイスが作成されるまで、その他の RAID オプション(マウントポイントの入力など)はできません。

    図10.2 RAID パーティションオプション

    RAID パーティションオプション
  3. ソフトウェア RAID パーティションは、1 つのドライブに制限する必要があります。Allowable Drives には、RAID を作成するドライブを選択します。複数のドライブがある場合は、すべてのドライブが選択され、1 つのドライブからすべての選択を解除する必要があります。

    図10.3 RAID パーティションの追加

    RAID パーティションの追加
  4. パーティションを設定するサイズを入力します。
  5. Fixed size を選択してパーティションの指定サイズを作成し、Fill all space up to(MB) を選択し、パーティションサイズの範囲を MB 単位で入力 するか、Fill を選択して、ハードディスクで利用可能な領域をすべて埋めます。複数のパーティションを拡大できる場合は、ディスクで利用可能な空き領域を共有します。
  6. パーティションを プライマリーパーティションにするには、Force to a primary partition を選択します。プライマリーパーティションは、ハードドライブの最初の 4 つのパーティションの 1 つです。選択しないと、パーティションが論理パーティションとして作成されます。他のオペレーティングシステムがすでにシステムにインストールされている場合は、このオプションの選択を解除することを検討する必要があります。プライマリーパーティションと論理的/拡張パーティションの詳細は、『『インストールガイド』』 の付録セクションを参照してください。
  7. OK をクリックしてメイン画面に戻ります。
この手順を繰り返して、RAID 設定に必要なパーティションを多数作成します。すべてのパーティションを RAID パーティションにする必要はありません。たとえば、/boot/ パーティションのみをソフトウェア RAID デバイスとして設定し、root パーティション(/)、/home/、および swap を通常のファイルシステムとして残すことができます。図10.4「RAID 1 パーティションが Ready、Pre-Device、および Mount Point の作成」 RAID 1 設定( /boot/の場合)に正常に割り当てられた領域が表示されます。これは、RAID デバイスとマウントポイントの作成の準備が整いました。

図10.4 RAID 1 パーティションが Ready、Pre-Device、および Mount Point の作成

RAID 1 パーティションが Ready、Pre-Device、および Mount Point の作成

10.2. RAID デバイスとマウントポイントの作成

ソフトウェア RAID パーティションとしてパーティションをすべて作成したら、以下の手順で RAID デバイスとマウントポイントを作成します。
  1. Disk Druid main partitioning 画面で RAID ボタンを選択します( 図10.5「RAID オプション」を参照)。
  2. 図10.5「RAID オプション」 が表示されます。Create a RAID device を選択します。

    図10.5 RAID オプション

    RAID オプション
  3. 次に 図10.6「RAID デバイスの作成およびマウントポイントの割り当て」 が表示されます。ここでは、RAID デバイスを作成してマウントポイントを割り当てることができます。

    図10.6 RAID デバイスの作成およびマウントポイントの割り当て

    RAID デバイスの作成およびマウントポイントの割り当て
  4. マウントポイントを入力します。
  5. パーティションのファイルシステムタイプを選択します。この時点で、動的 LVM ファイルシステム、または従来の静的 ext2/ext3 ファイルシステムを設定できます。RAID デバイスに LVM を設定する方法は、物理ボリューム(LVM) を選択してから 8章LVM の設定 を参照してください。LVM が必要ない場合は、以下の手順に進んでください。
  6. RAID デバイスの md0 などのデバイス名を選択します。
  7. RAID レベルを選択します。RAID 0 RAID 1、および RAID 5 から選択できます。実装する RAID レベルの決定にサポートが必要な場合は、9章RAID (Redundant Array of Independent Disks) を参照してください。
    備考
    /boot/ の RAID パーティションを作成する場合は、RAID レベル 1 を選択する必要があります。また、最初の 2 つのドライブ(IDE 1、SCSI 2)のいずれかを使用する必要があります。/boot/ の RAID パーティションを作成しておらず、root ファイルシステム(/)用に RAID パーティションを作成している場合は、RAID レベル 1 にする必要があります。また、最初の 2 つのドライブ(IDE 1、SCSI 2)のいずれかを使用する必要があります。

    図10.7 /boot/ マウントエラー

    /boot/ マウントエラー
  8. 作成した RAID パーティションが RAID メンバー の一覧に表示されます。RAID デバイスの作成に使用するパーティションを選択します。
  9. RAID 1 または RAID 5 を設定する場合は、予備のパーティションの数を指定します。ソフトウェア RAID パーティションに障害が発生した場合、スペアは代替として自動的に使用されます。指定する各ペアについて、(RAID デバイスのパーティションに加えて)追加のソフトウェア RAID パーティションを作成する必要があります。RAID デバイスのパーティションと、予備のパーティションを選択します。
  10. OK をクリックすると、RAID デバイスがドライブの 概要一覧に表示 されます。
  11. この章では、root パーティション(/)、/home/、swap など、追加のパーティション、デバイス、マウントポイントを設定するプロセス全体を繰り返します。
設定全体が終わると、図10.8「RAID 設定のサンプル」 に示される図は、RAID の使用を除きデフォルト設定のようになります。

図10.8 RAID 設定のサンプル

RAID 設定のサンプル
図10.9「LVM 設定を使用した RAID の最終的なサンプル」 に示されている図は、RAID および LVM の設定例です。

図10.9 LVM 設定を使用した RAID の最終的なサンプル

LVM 設定を使用した RAID の最終的なサンプル
インストールプロセスを続行できます。その他の手順については、『『インストールガイド』』 を参照してください。

第11章 swap 領域

11.1. 変動スペースとは

Linux の スワップ領域 は、物理メモリー (RAM) が不足すると使用されます。システムに多くのメモリーリソースが必要で、RAM が不足すると、メモリーの非アクティブなページがスワップ領域に移動します。スワップ領域は、RAM が少ないマシンで役に立ちますが、RAM の代わりに使用しないようにしてください。スワップ領域はハードドライブにあり、そのアクセス速度は物理メモリーに比べると遅くなります。
スワップ領域の構成は、専用のスワップパーティション (推奨)、スワップファイル、またはスワップパーティションとスワップファイルの組み合せが考えられます。
swap のサイズは、最大 2 GB の物理メモリーに対して、コンピューターの物理メモリーの 2 倍以上である必要があります。物理 RAM が 2 GB を超える場合、スワップのサイズは 2 GB を超える物理メモリーの容量と同じである必要があります。swap のサイズは、32 MB 未満にしないでください。
この基本的な式を使用すると、2 GB の物理メモリーを持つシステムには 4 GB の swap が設定されます。また、3 GB の物理メモリーを持つシステムの swap は 5 GB です。
備考
ただし、Red Hat Enterprise Linux に割り当てるスワップ量を決定することは、人数よりも多くあるため、ハードルールはできません。スワップサイズを決定するときは、各システムの最も使用されているアプリケーションを考慮する必要があります。
重要な影響
スワップ領域として割り当てたファイルシステムおよび LVM2 ボリュームは、変更時に使用 できません。たとえば、システムプロセスに swap 領域が割り当てられず、カーネルにより割り当てて使用するスワップはできません。free コマンドおよび cat /proc/swaps コマンドを使用して、スワップの使用量と、使用中の場所を確認します。
スワップ領域の変更を実現する最適な方法は、システムをレスキューモードで起動してから、本章の残りの手順(各シナリオ用)に従うことです。レスキューモードで起動する方法は、5章基本的なシステムの復元 を参照してください。ファイルシステムをマウントするように指示されたら、スキップ を選択します。

11.2. スワップ領域の追加

場合によっては、インスト-ルした後にさらに swap 領域の追加が必要になることもあります。たとえば、システムの RAM 容量を 128 MB から 256 MB にアップグレードできますが、swap 領域は 256 MB のみになります。メモリーを大幅に消費する操作を実行している場合や、大量のメモリーを必要とするアプリケーションを実行する場合には、スワップ領域を 512 MB に増やすと有益となる可能性があります。
選択肢が3つあります: 新規の swap パーティションの作成、新規の swap ファイルの作成、あるいは既存の LVM2 論理ボリューム上で swap の拡張。この中では、既存論理ボリュームを拡張することが推奨されます。

11.2.1. LVM2 論理ボリュームでのスワップ領域の拡張

LVM2 スワップ論理ボリュームを拡張するには( /dev/VolGroup00/LogVol01 が拡張するボリュームと想定します)。
  1. 関連付けられている論理ボリュームのスワップ機能を無効にします。
     # swapoff -v /dev/VolGroup00/LogVol01 
  2. LVM2 論理ボリュームのサイズを 256 MB に変更します。
     # lvm lvresize /dev/VolGroup00/LogVol01 -L +256M 
  3. 新しいスワップ領域をフォーマットします。
     # mkswap /dev/VolGroup00/LogVol01 
  4. 拡張論理ボリュームを有効にします。
     # swapon -va 
  5. 論理ボリュームが適切に拡張されていることを確認します。
     # cat /proc/swaps # free 

11.2.2. スワップの LVM2 論理ボリュームの作成

スワップボリュームグループを追加するには (/dev/VolGroup00/LogVol02 が追加するスワップボリュームであると想定)、以下を実行します。
  1. サイズが 256 MB の LVM2 論理ボリュームを作成します。
     # lvm lvcreate VolGroup00 -n LogVol02 -L 256M 
  2. 新しいスワップ領域をフォーマットします。
     # mkswap /dev/VolGroup00/LogVol02 
  3. 次のエントリーを /etc/fstab ファイルに追加します。
     /dev/VolGroup00/LogVol02 swap swap defaults 0 0 
  4. 拡張論理ボリュームを有効にします。
     # swapon -va 
  5. 論理ボリュームが適切に拡張されていることを確認します。
     # cat /proc/swaps # free 

11.2.3. スワップファイルの作成

swap ファイルを追加します。
  1. 新しいスワップファイルのサイズをメガバイト単位で指定してから、そのサイズに 1024 をかけてブロック数を指定します。たとえばスワップファイルのサイズが 64 MB の場合は、ブロック数が 65536 になります。
  2. root としてシェルプロンプトで、必要なブロックサイズと同じ カウント を持つ以下のコマンドを入力します。
    dd if=/dev/zero of=/swapfile bs=1024 count=65536
  3. 次のコマンドでスワップファイルをセットアップします。
    mkswap /swapfile
  4. スワップファイルを起動時に自動的にではなく、すぐに有効にする場合は、以下を実行します。
    swapon /swapfile
  5. 起動時に有効にするには、/etc/fstab を編集して以下のエントリーを含めます。
    /swapfile          swap            swap    defaults        0 0
    
    次にシステムが起動すると、新しいスワップファイルが有効になります。
  6. 新しいスワップファイルを追加して有効にしたら、cat /proc/swaps または free のコマンドの出力を表示してこれが有効であることを確認します。

11.3. スワップ領域の削除

インスト-ルの後に swap 領域を減らすことが賢明な場合もあります。たとえば、システムの RAM 容量を 1 GB から 512 MB にダウングレードするとします。しかし、依然として 2 GB のスワップスペースが割り当てられています。ディスク領域が大きくなる (2 GB など) と無駄になる可能性があるため、スワップ領域を 1 GB に減らすことでメリットを得られることがあります。
ここでも選択肢が3つあります: swap 用に使用していた LVM2 論理ボリューム全体を削除、swap ファイルの削除、あるいは既存の LVM2 論理ボリューム上の swap 領域の低減。

11.3.1. LVM2 論理ボリュームでのスワップ領域の縮小

LVM2 スワップ論理ボリュームを減らします( /dev/VolGroup00/LogVol01 が拡張するボリュームを想定)。
  1. 関連付けられている論理ボリュームのスワップ機能を無効にします。
     # swapoff -v /dev/VolGroup00/LogVol01 
  2. LVM2 論理ボリュームのサイズを変更して 512 MB 削減します。
     # lvm lvreduce /dev/VolGroup00/LogVol01 -L -512M 
  3. 新しいスワップ領域をフォーマットします。
     # mkswap /dev/VolGroup00/LogVol01 
  4. 拡張論理ボリュームを有効にします。
     # swapon -va 
  5. 論理ボリュームが適切に縮小されたことをテストします。
     # cat /proc/swaps # free 

11.3.2. スワップの LVM2 論理ボリュームの削除

swap 論理ボリュームは使用できません(ボリュームのシステムロックやプロセスはありません)。最も簡単にこれを実現する方法は、システムをレスキューモードで起動することです。レスキューモードで起動する方法は、5章基本的なシステムの復元 を参照してください。ファイルシステムをマウントするように指示されたら、スキップ を選択します。
swap ボリュームグループを削除します (/dev/VolGroup00/LogVol02 が削除するボリュームであるとします)。
  1. 関連付けられている論理ボリュームのスワップ機能を無効にします。
     # swapoff -v /dev/VolGroup00/LogVol02 
  2. サイズ 512MB の LVM2 論理ボリュームを削除します。
     # lvm lvremove /dev/VolGroup00/LogVol02 
  3. /etc/fstab ファイルから次のエントリーを削除します。
     /dev/VolGroup00/LogVol02 swap swap defaults 0 0 
  4. 論理ボリュームが適切に拡張されていることを確認します。
     # cat /proc/swaps # free 

11.3.3. スワップファイルの削除

swap ファイルを削除します。
  1. root としてシェルプロンプトで以下のコマンドを実行してスワップファイルを無効にします( /swapfile はスワップファイル)。
     # swapoff -v /swapfile 
  2. /etc/fstab ファイルから該当するエントリーを削除します。
  3. 実際のファイルを削除します。
     # rm /swapfile 

11.4. Swap 領域の移動

スワップスペースをある場所から別の場所に移動するには、スワップスペースを削除する手順を実行してから、スワップスペースを追加する手順を実行します。

第12章 ディスクストレージの管理

さまざまなメソッドの概要...

12.1. partedで標準パーティション

多くのユーザーは、既存のパーティションテーブルの表示、パーティションのサイズの変更、パーティションの削除、空き領域からのパーティションの追加、またはハードドライブの追加が必要になります。ユーティリティー parted を使用すると、ユーザーはこれらのタスクを実行することができます。本章では、parted を使用してファイルシステムタスクを実行する方法を説明します。
システムのディスク領域の使用状況を表示したり、ディスク領域の使用量を監視する場合は、「ファイルシステム」 を参照してください。
parted ユーティリティーを使用するには、parted パッケージがインストールされている。parted を起動するには、root としてシェルプロンプトで parted /dev/sda コマンドを入力します。/dev/sda は、設定するドライブのデバイス名です。(parted) プロンプトが表示されます。利用可能なコマンドの一覧を表示するには、help と入力します。
パーティションを作成、削除、またはサイズ変更する場合は、デバイスを使用できなくなります(パーティションをマウントできず、swap 領域を有効化できません)。カーネルが変更を適切に認識しないため、パーティションテーブルは使用中の間変更しないでください。データは、パーティションテーブルとマウントされたパーティションが一致しないため、誤ったパーティションに書き込むことで上書きされる可能性があります。最も簡単にこれを実現する方法は、システムをレスキューモードで起動することです。レスキューモードで起動する方法は、5章基本的なシステムの復元 を参照してください。ファイルシステムをマウントするように指示されたら、スキップ を選択します。
または、ドライブに使用中のパーティション (ファイルシステムがアンマウントされないように使用またはロックしているシステムプロセス) がない場合、umount コマンドでパーティションをアンマウントし、swapoff コマンドで、ハードドライブのすべてのスワップ領域を無効にできます。
表12.1「parted コマンド」 一般的に使用される parted コマンドの一覧が含まれています。以下のセクションでは、その一部について詳細に説明します。
表12.1 parted コマンド
コマンド 説明
check minor-num ファイルシステムの簡単なチェックを実行します。
cp fromto ファイルシステムをあるパーティションから別のパーティションにコピーします。fromto はパーティションのマイナー番号です。
help 利用可能なコマンドの一覧を表示します。
mklabel label パーティションテーブル用のディスクラベルを作成します。
mkfs minor-numfile-system-type タイプ file-system-type のファイルシステムを作成します。
mkpart part-typefs-typestart-mbend-mb 新しいファイルシステムを作成せずに、パーティションを作成します。
mkpartfs part-typefs-typestart-mbend-mb パーティションを作成し、指定されたファイルシステムを作成します。
move minor-numstart-mbend-mb パーティションを移動します。
name minor-numname Mac と PC98 のディスクラベル用のみのパーティションに名前を付けます。
print パーティションテーブルを表示します。
quit parted を終了します。
rescuestart-mbend-mb start-mb から end-mb へ、消失したパーティションを復旧します。
resize minor-numstart-mbend-mb パーティションのサイズを start-mb から end-mb に変更します。
rm minor-num パーティションを削除します。
select device 設定する別のデバイスを選択します。
set minor-numflagstate パーティションにフラグを設定します。state はオンまたはオフのいずれかになります。

12.1.1. パーティションテーブルの表示

parted を起動したら、以下のコマンドを入力してパーティションテーブルを表示します。
print
以下のようなテーブルが表示されます。
Disk geometry for /dev/sda: 0.000-8678.789 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031    101.975  primary   ext3        boot
2        101.975   5098.754  primary   ext3
3       5098.755   6361.677  primary   linux-swap
4       6361.677   8675.727  extended
5       6361.708   7357.895  logical   ext3


Disk geometry for /dev/hda: 0.000-9765.492 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031    101.975  primary   ext3        boot
2        101.975    611.850  primary   linux-swap  
3        611.851    760.891  primary   ext3        
4        760.891   9758.232  extended              lba
5        760.922   9758.232  logical   ext3
最初の行はディスクのサイズを表示し、2 番目の行にはディスクラベルのタイプが表示され、残りの出力にはパーティションテーブルが表示されます。
パーティションテーブルでは、最小番号 パーティション番号になります。たとえば、マイナー番号 1 のパーティションは、/dev/sda1 に対応します。Start および End の値はメガバイト単位です。Type は primary、extended、または logical のいずれかです。Filesystem はファイルシステムタイプで、ext2、ext3、fat16、fat32、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs、または xfs のいずれかです。Flags は、パーティションに設定したフラグを一覧表示しています。利用可能なフラグは、boot、root、swap、hidden、raid、lvm、または lba です。
この例では、マイナー番号 1 は /boot/ ファイルシステムを指し、マイナー番号 2 は root ファイルシステム(/)を指し、マイナー番号 3 はスワップを参照し、マイナー番号 5 は /home/ ファイルシステムを指します。
ヒント
parted を再起動せずに別のデバイスを選択するには、select コマンドで、/dev/sda などのデバイス名を指定します。次に、パーティションテーブルを表示したり、設定できます。

12.1.2. パーティションの作成

警告
使用中のデバイスに、パーティションを作成しないようにしてください。
パーティションを作成する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションを作成するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示し、十分な空き領域があるかどうかを確認します。
print
十分な空き容量がない場合は、既存のパーティションのサイズを変更できます。詳細は、「パーティションのサイズ変更」 を参照してください。
12.1.2.1. パーティションの作成
パーティションテーブルから、新しいパーティションの開始点と終了点、およびパーティションのタイプを決定します。プライマリーパーティションは、1 つのデバイス上に 4 つまで保有できます (この場合は拡張パーティションは含みません)。パーティションが 5 つ以上必要な場合は、プライマリーパーティションを 3 つ、拡張パーティションを 1 つにし、その拡張パーティションの中に複数の論理パーティションを追加します。ディスクパーティションの概要 『は、『『インストールガイド』』 の付録「ディスクパーティションの概要」を』 参照してください。
たとえば、ハードドライブの 1024 メガバイトから 2048 メガバイトに ext3 ファイルシステムのプライマリーパーティションを作成するには、以下のコマンドを入力します。
mkpart primary ext3 1024 2048
ヒント
代わりに mkpartfs コマンドを使用すると、パーティションが作成されてからファイルシステムが作成されます。ただし、parted では、ext3 ファイルシステムの作成に対応していません。そのため、ext3 ファイルシステムを作成する場合は、mkpart を使用して、後述のように mkfs コマンドを実行してファイルシステムを作成します。mkpartfs は、ファイルシステムタイプ linux-swap で動作します。
Enter を押すと変更が反映されるため、押す前に再度確認してください。
パーティションを作成したら、print コマンドを使用して、パーティションが正しいパーティションタイプ、ファイルシステムタイプ、およびサイズでパーティションテーブルにあることを確認します。また、ラベル付けできるように、新しいパーティションのマイナー番号も覚えておいてください。以下の出力も表示されるはずです。
cat /proc/partitions
カーネルが新しいパーティションを認識していることを確認します。
12.1.2.2. パーティションのフォーマット
パーティションにはまだファイルシステムがありません。ファイルシステムを作成します。
/sbin/mkfs -t ext3 /dev/sda6
Warning
パーティションをフォーマットすると、そのパーティションに現存するすべてのデータが永久に抹消されます。
12.1.2.3. パーティションのラベル付け
次に、パーティションにラベルを指定します。たとえば、新しいパーティションが /dev/sda6 で、/work にラベルを付ける場合は、次のコマンドを実行します。
e2label /dev/sda6 /work
デフォルトでは、インストールプログラムはパーティションのマウントポイントをラベルとして使用して、ラベルが固有なものとなるようにします。ユーザーは使用するラベルを選択できます。
12.1.2.4. マウントポイントの作成
root でマウントポイントを作成します。
mkdir /work
12.1.2.5. /etc/fstab への追加
root で /etc/fstab ファイルを編集して、新しいパーティションを追加します。新しい行は以下のようになります。
LABEL=/work           /work                 ext3    defaults        1 2
最初の列には、LABEL= の後にパーティションを付けたラベルが含まれるはずです。2 番目の列には、新しいパーティションのマウントポイントが含まれている必要があり、その次の列はファイルシステムタイプ (たとえば、ext3 または swap) である必要があります。フォーマットの詳細が必要な場合は、コマンド man fstab を使用して man ページを参照してください。
4 列目がデフォルトである場合 パーティションは起動時にマウントされます。再起動せずにパーティションをマウントするには、root で次のコマンドを入力します。
mount /work

12.1.3. パーティションの削除

警告
パーティションが設定されているデバイスが使用中の場合は、削除しないでください。
パーティションを削除する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションを削除するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示して、削除するパーティションのマイナー番号を確認します。
print
rm コマンドでパーティションを削除します。例えば、マイナー番号 3 のパーティションを削除するのは以下のコマンドです。
rm 3
変更は Enter を押すと変更が反映されるため、押す前にコマンドを再度確認してください。
パーティションを削除したら、print コマンドを使用して、パーティションテーブルから削除されていることを確認します。以下の出力も表示されるはずです。
cat /proc/partitions
カーネルがパーティションが削除されていることを確認します。
最後の手順は、/etc/fstab ファイルからそれを削除することです。削除したパーティションを宣言している行を見つけ、ファイルから削除します。

12.1.4. パーティションのサイズ変更

警告
パーティションが設定されているデバイスが使用中の場合は、サイズを変更しないでください。
パーティションのサイズを変更する前に、レスキューモードで起動します (または、デバイス上のパーティションをアンマウントして、デバイス上の swap 領域をすべてオフにします)。
parted を起動します。/dev/sda は、パーティションのサイズを変更するデバイスです。
parted /dev/sda
現在のパーティションテーブルを表示して、サイズを変更するパーティションのマイナー番号と、パーティションの開始点と終了点を決定します。
print
Warning
サイズを変更するパーティションに使用される領域は、新しいサイズよりも大きくすることはできません。
パーティションのサイズを変更するには、resize コマンドの後に、パーティションのマイナー番号、、開始位置 (メガバイト単位)、終了位置 (メガバイト単位) を使用します。以下に例を示します。
resize 3 1024 2048
パーティションのサイズを変更した後、print コマンドを使用して、パーティションのサイズが正しく変更され、正しいパーティションタイプであり、正しいファイルシステムタイプであることを確認します。
システムを通常モードに再起動した後、df コマンドを使用して、パーティションがマウントされ、新しいサイズで認識されていることを確認します。

12.2. LVM パーティション管理

以下のコマンドを確認するには、コマンドプロンプトで lvm help を実行します。
表12.2 lvm コマンド
コマンド Description
dumpconfig アクティブな設定をダンプします。
formats 利用可能なメタデータ形式を一覧表示します。
help ヘルプコマンドの表示
lvchange 論理ボリュームの属性の変更
lvcreate 論理ボリュームを作成します。
lvdisplay 論理ボリュームに関する情報を表示します。
lvextend 論理ボリュームに領域を追加する
lvmchange デバイスマッパーの使用により、このコマンドは非推奨になっています。
lvmdiskscan 物理ボリュームとして使用できるデバイスを一覧表示します。
lvmsadc アクティビティーデータの収集
lvmsar Create activity report
lvreduce 論理ボリュームのサイズ縮小
lvremove システムから論理ボリュームを削除する
lvrename 論理ボリュームの名前変更
lvresize 論理ボリュームのサイズ変更
lvs 論理ボリュームに関する情報を表示する
lvscan すべてのボリュームグループの論理ボリュームを一覧表示します。
pvchange 物理ボリュームの属性の変更
pvcreate LVM で使用する物理ボリュームの初期化
pvdata 物理ボリュームのディスク上のメタデータを表示します。
pvdisplay 物理ボリュームの各種属性の表示
pvmove エクステントをある物理ボリュームから別の物理ボリュームに移動する
pvremove 物理ボリュームから LVM ラベルを削除する
pvresize ボリュームグループにより使用されている物理ボリュームのサイズ変更
pvs 物理ボリュームに関する情報の表示
pvscan 物理ボリュームの一覧を表示します。
segtypes 利用可能なセグメントタイプの一覧を表示します。
vgcfgbackup バックアップのボリュームグループの設定
vgcfgrestore ボリュームグループ設定の復元
vgchange ボリュームグループ属性の変更
vgck ボリュームグループの一貫性の確認
vgconvert ボリュームグループのメタデータ形式の変更
vgcreate ボリュームグループの作成
vgdisplay ボリュームグループ情報の表示
vgexport システムからボリュームグループの登録解除
vgextend ボリュームグループへの物理ボリュームの追加
vgimport エクスポートしたボリュームグループをシステムに登録します。
vgmerge ボリュームグループのマージ
vgmknodes ボリュームグループデバイス用の特殊ファイルを /dev/ に作成します。
vgreduce ボリュームグループから物理ボリュームの削除
vgremove ボリュームグループの削除
vgrename ボリュームグループの名前変更
vgs ボリュームグループに関する情報を表示します。
vgscan すべてのボリュームグループの検索
vgsplit 物理ボリュームを新しいボリュームグループに移動
version ソフトウェアとドライバーのバージョン情報を表示します。

第13章 ディスククォータの実装

ディスク領域はディスククォータによって制限できます。ディスククォータは、ユーザーが過度のディスク領域を消費するか、パーティションが満杯になる前にシステム管理者に警告をします。
ディスククォータは、ユーザーグループにも個別のユーザーにも設定できます。このような柔軟性により、各ユーザーに小規模のクォータを指定して(電子メールやレポートなどの)「成り」ファイル(電子メールやレポートなど)を処理し、作業するプロジェクトにより多くのサイジング可能なクォータを持たせることができます(プロジェクトに独自のグループが割り当てられていることを前提とします)。
さらにクォータは、消費されるディスクブロックの数の制御だけでなく、inode (UNIX ファイルシステム内のファイルに関する情報を含むデータ構造) の数も制御するように設定できます。inode はファイル関連の情報を組み込むように使用されるため、これが作成されるファイルの数を制御することも可能にします。
ディスククォータを実装するには、quota RPM をインストールしておく必要があります。

13.1. ディスククォータの設定

ディスククォータを実装するには、以下の手順を行います。
  1. /etc/fstab を修正することで、ファイルシステムごとのクォータを有効にします。
  2. ファイルシステムを再マウントします。
  3. クォータデータベースファイルを作成して、ディスク使用状況テーブルを生成します。
  4. クォータポリシーを割り当てます。
この各手順は、以下のセクションで詳しく説明します。

13.1.1. クォータの有効化

root として、テキストエディターを使用して、/etc/fstab ファイルを編集します。クォータを必要とするファイルシステムに usrquota オプションや grpquota オプションを追加します。
/dev/VolGroup00/LogVol00 /         ext3    defaults        1 1
LABEL=/boot              /boot     ext3    defaults        1 2
none                     /dev/pts  devpts  gid=5,mode=620  0 0
none                     /dev/shm  tmpfs   defaults        0 0
none                     /proc     proc    defaults        0 0
none                     /sys      sysfs   defaults        0 0
/dev/VolGroup00/LogVol02 /home     ext3    defaults,usrquota,grpquota  1 2
/dev/VolGroup00/LogVol01 swap      swap    defaults        0 0
.
.
.
この例では、/home ファイルシステムがユーザーとグループの両方のクォータを有効にしています。
備考
以下の例では、Red Hat Enterprise Linux のインストール時に別の/home パーティションが作成されたことを前提としています。理想的ではありませんが、root(/)パーティション(インストールのデフォルト作成されたパーティション)は、/etc/fstab ファイルでクォータポリシーを設定するのに使用できます。

13.1.2. ファイルシステムの再マウント

usrquota オプションや grpquota オプションを追加した後、fstab エントリーが変更された各ファイルシステムを再マウントします。ファイルシステムがどのプロセスでも使用されていない場合は、以下のいずれかの方法を使用します。
  • umount コマンドを実行してから mount コマンドを実行し、ファイルシステムを再 マウント します。
  • mount -o remount /home コマンドを実行して、ファイルシステムを再マウントします。
ファイルシステムが現在使用中の場合、そのファイルシステムを再マウントする最も簡単な方法は、システムを再起動することです。

13.1.3. クォータデータベースファイルの作成

クォータが有効な各ファイルシステムを再マウントすると、システムはディスククォータを操作できます。ただし、ファイルシステム自体がクォータに対応するようにするには、追加の設定が必要です。次のステップとして、quotacheck コマンドを実行します。
quotacheck コマンドは、クォータが有効なファイルシステムを検証し、現在のディスク使用状況のテーブルをファイルシステムごとに構築します。このテーブルは、ディスク使用状況のオペレーティングシステム用コピーを更新するのに使用されます。また、ファイルシステムのディスククォータが更新されます。
ファイルシステムにクォータファイル (aquota.user および aquota.group) を作成するには、quotacheck コマンドの -c オプションを使用します。たとえば、/home ファイルシステムでユーザーとグループのクォータが有効になっている場合は、/home ディレクトリーにファイルを作成します。
quotacheck -cug /home
-c オプションは、クォータが有効になっているファイルシステムごとにクォータファイルを作成することを指定し、-u オプションは、ユーザークォータをチェックすることを指定し、-g オプションは、グループクォータをチェックすることを指定します。
-u オプションまたは -g オプションのいずれも指定しない場合は、ユーザークォータファイルのみが作成されます。-g のみを指定すると、グループクォータファイルのみが作成されます。
ファイルの作成後、以下のコマンドを実行し、クォータを有効にしたファイルシステムごとの現在のディスク使用量のテーブルを生成します。
quotacheck -avug
使用されるオプションは次のとおりです。
  • a: クォータが有効になっているすべてのファイルシステムを確認し、ローカルにマウントされたファイルシステムを確認します。
  • v: クォータチェックが進む際に詳細なステータス情報を表示します。
  • u: ユーザーディスククォータ情報の確認
  • g: グループのディスククォータ情報の確認
quotacheck の実行が終了すると、有効なクォータ (ユーザーやグループ) に対応するクォータファイルに、/home などの、クォータが有効になっているローカルにマウントされた各ファイルシステムのデータが取り込まれます。

13.1.4. ユーザーごとのクォータ割り当て

最後の手順は、edquota コマンドを使用したディスククォータ割り当てです。
ユーザーにクォータを設定するには、シェルプロンプトで、root で次のコマンドを実行します。
 edquota username
クォータが必要な各ユーザーに対して、この手順を実行します。たとえば、クォータが /etc/fstab/home パーティション(/dev/VolGroup00/LogVol02)で有効になり、edquota testuser コマンドを実行すると、システムのデフォルトとして設定されたエディターに以下が表示されます。
Disk quotas for user testuser (uid 501):
  Filesystem                blocks     soft     hard    inodes   soft   hard
  /dev/VolGroup00/LogVol02  440436        0        0     37418      0      0
備考
EDITOR 環境変数により定義されたテキストエディターは、edquota により使用されます。エディターを変更するには、~/.bash_profile ファイルの EDITOR 環境変数を、使用するエディターのフルパスに設定します。
最初の列は、クォータが有効になっているファイルシステムの名前です。2 列目には、ユーザーが現在使用しているブロック数が示されます。その次の 2 列は、ファイルシステム上のユーザーのソフトブロック制限およびハードブロック制限を設定するのに使用されます。inodes 列は、ユーザーが現在使用している inode の数を示します。最後の 2 列は、ファイルシステムのユーザーに対するソフトおよびハードの inode 制限を設定するのに使用されます。
ハード制限は、ユーザーまたはグループが使用できる最大ディスク容量(絶対量)です。この制限に達すると、それ以上のディスク領域は使用できなくなります。
ソフト制限は、使用可能な最大ディスク容量を定義します。ただし、ハード制限とは異なり、ソフト制限は一定時間超過する可能性があります。この時間は 猶予期間 として知られています。猶予期間の単位は、秒、分、時間、日、週、または月で表されます。
いずれかの値が 0 に設定されていると、その制限は設定されません。テキストエディターで必要な制限に変更します。以下に例を示します。
Disk quotas for user testuser (uid 501):
  Filesystem                blocks     soft     hard   inodes   soft   hard
  /dev/VolGroup00/LogVol02  440436   500000   550000    37418      0      0
ユーザーのクォータが設定されていることを確認するには、以下のコマンドを使用します。
quota testuser

13.1.5. グループごとのクォータ割り当て

クォータは、グループごとに割り当てることもできます。たとえば、devel グループのグループクォータを設定するには(グループはグループクォータを設定する前に存在している必要があります)、以下のコマンドを使用します。
 edquota -g devel 
このコマンドにより、グループの既存クォータがテキストエディターに表示されます。
Disk quotas for group devel (gid 505):
  Filesystem                blocks    soft     hard    inodes    soft    hard
  /dev/VolGroup00/LogVol02  440400       0        0     37418       0       0
制限を変更し、ファイルを保存してからクォータを設定します。
グループクォータが設定されたことを確認するには、次のコマンドを使用します。
quota -g devel

13.1.6. ファイルシステムごとのクォータの割り当て

クォータに有効な各ファイルシステムに基づいてクォータを割り当てるには、次のコマンドを使用します。
 edquota -t 
他の edquota コマンドと同様に、これにより、テキストエディターでファイルシステムの現在のクォータが開きます。
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem                       Block grace period  Inode grace period
  /dev/mapper/VolGroup00-LogVol02       7days                7days
ブロックの猶予期間または inode の猶予期間を変更し、変更をファイルに保存してテキストエディターを終了します。

13.2. ディスククォータの管理

クォータが実装されている場合には、若干の保守が必要となります — 大半は、クォータの超過監視および精度確認という形となります。当然ながら、ユーザーが繰り返しクォータを超過したり、常にソフト制限に到達すると、システム管理者には、ユーザーのタイプや作業に影響を与えるディスク領域のサイズに応じていくつかの選択肢があります。管理者は、ユーザーがディスク容量を少なくなるか、または必要に応じてユーザーのディスククォータを増やす方法を判別するのに役立ちます。

13.2.1. 有効化と無効化

クォータは、0 に設定しなくても無効にできます。すべてのユーザーとグループのクォータをオフにするには、以下のコマンドを使用します。
quotaoff -vaug
-u オプションまたは -g オプションのいずれも指定しない場合は、ユーザークォータのみが無効になります。-g のみを指定すると、グループクォータのみが無効になります。
クォータを再度有効にするには、同じオプションを指定して quotaon コマンドを使用します。
たとえば、すべてのファイルシステムに対してユーザーとグループのクォータを有効にするには、次のコマンドを使用します。
quotaon -vaug
/home などの特定のファイルシステムにクォータを有効にするには、以下のコマンドを使用します。
quotaon -vug /home
-u オプションまたは -g オプションのいずれも指定しない場合は、ユーザクォータのみが有効になります。-g のみが指定されている場合は、グループのクォータのみが有効になります。

13.2.2. ディスククォータに関するレポート

ディスク使用状況のレポートを作成するには、repquota ユーティリティーの実行が必要になります。たとえば、コマンド repquota /home により、以下のような出力が表示されます。
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol02
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      36       0       0              4     0     0
kristin   --     540       0       0            125     0     0
testuser  --  440400  500000  550000          37418     0     0
クォータが有効なすべてのファイルシステム (オプション -a) のディスク使用状況レポートを表示するには、次のコマンドを使用します。
repquota -a
レポートは読みやすいですが、いくつか説明しておくべき点があります。各ユーザーの後に表示される--を利用すると、ブロック制限または inode 制限を超えたかどうかをすばやく判断できます。いずれかのソフト制限を超えると、対応する - の代わりに + が表示されます。最初の - はブロックの制限を表し、2 つ目は inode の制限を表します。
grace 列は通常空白です。ソフト制限が超過した場合、その列には猶予期間に残り時間量に相当する時間指定が含まれます。猶予期間が過ぎると、代わりに none が表示されます。

13.2.3. クォータの精度維持

(システムクラッシュなどにより)ファイルシステムのマウントが正しく解除されない場合は、quotacheck を実行する必要があります。ただし、システムがクラッシュしていないとしても、quotacheck は定期的に実行できます。以下のコマンドを定期的に実行すると、クォータがより正確になります(使用するオプションは 「クォータの有効化」で説明されています)。
quotacheck -avug
これを定期的に実行する最も簡単な方法は、cron を使用することです。root で crontab -e コマンドを使用して定期的な クォータチェック をスケジュールするか、以下のディレクトリーのいずれかで quotacheck を実行するスクリプトを配置します(任意に最も適した間隔を使用します)。
  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly
ファイルシステムがアクティブで使用されていない場合は、最も正確なクォータ統計を取得できます。そのため、ファイルシステムが最も少ない時間に cron タスクをスケジュールする必要があります。この時間がクォータを含む異なるファイルシステムで異なる場合は、複数の cron タスクを指定して、各ファイルシステムの クォータチェック を異なるタイミングで実行します。
cron の設定に関する詳細は、34章自動タスク を参照してください。

13.3. 関連情報

ディスククォータの詳細は、以下のリソースを参照してください。

13.3.1. インストールされているドキュメント

  • quotacheckedquotarepquotaquotaquotaon、および quotaoff の man ページ

第14章 アクセス制御リスト

ファイルとディレクトリーには、ファイルの所有者、そのファイルに関連したグループ、およびシステムを使用する他のすべてのユーザーの権限セットが設定されます。しかし、これらの権限には制限があります。たとえば、ユーザーごとに異なる権限を設定することはできません。そのため アクセス制御リスト (ACL) が実装されています。
Red Hat Enterprise Linux 4 カーネルは、ext3 ファイルシステムと NFS エクスポートのファイルシステムに対する ACL サポートを提供します。ACL は、Samba 経由でアクセスする ext3 ファイルシステムでも認識されます。
ACL の実装には、カーネルでのサポートと acl パッケージが必要になります。このパッケージには、ACL 情報の追加、修正、削除および、取得のためのユーティリティーが同梱されています。
cp コマンドと mv コマンドは、ファイルとディレクトリーに関連するすべての ACL のコピーまたは移動を実行します。

14.1. ファイルシステムのマウント

ファイルやディレクトリー用に ACL を使用する前に、そのファイルまたはディレクトリーのパーティションを ACL サポートでマウントする必要があります。ローカルの ext3 ファイルシステムの場合は、以下のコマンドでマウントできます。
 mount -t ext3 -o acl <device-name><partition>
以下に例を示します。
 mount -t ext3 -o acl /dev/VolGroup00/LogVol02 /work 
パーティションが /etc/fstab ファイルにリストされている場合は、パーティションのエントリーに acl オプションを含めることができます。
LABEL=/work      /work       ext3    acl        1 2
Samba 経由で ext3 ファイルシステムにアクセスし、そのアクセスに対して ACL が有効になっている場合は、ACL が認識されます。これは、--with-acl-support オプションでコンパイルされているためです。Samba 共有のアクセス時またはマウント時に特別なフラグは必要ありません。

14.1.1. NFS

デフォルトでは、NFS サーバーでエクスポートされているファイルシステムが ACL をサポートし、NFS クライアントが ACL を読み込める場合は、クライアントシステムで ACL が使用されています。
サーバーを設定する際に NFS 共有上の ACL を無効にするには、/etc/exports ファイルに no_acl オプションを追加します。クライアントに NFS 共有をマウントする際に ACL を無効にするには、コマンドラインまたは /etc/fstab ファイルに no_acl オプションを指定してマウントします。

14.2. アクセス ACL の設定

ACL には、アクセス ACLデフォルト ACL と 2 つのタイプがあります。アクセス ACL は、特定のファイルまたはディレクトリーに対するアクセス制御リストです。デフォルト ACL は、ディレクトリーにのみ適用されます。ディレクトリー内のファイルにアクセス ACL が設定されていない場合は、そのディレクトリーにデフォルト ACL のルールが適用されます。デフォルト ACL は任意です。
ACL は以下のように設定できます。
  1. 各ユーザー
  2. 各グループ
  3. 実効権マスクを使用して
  4. ファイルのユーザーグループに属さないユーザーに対して
setfacl ユーティリティーは、ファイルとディレクトリー用の ACL を設定します。-m オプションを使用して、ファイルまたはディレクトリーの ACL を追加または変更します。
 setfacl -m <rules><files>
ルール(<rules&gt;)は、以下の形式で指定する必要があります。複数のルールをコンマで区切って同じコマンドに指定することもできます。
U: <uid>: &lt;perms>
ユーザーにアクセス ACL を設定します。ユーザー名または UID を指定できます。システムで有効な任意のユーザーを指定できます。
g:<gid>:<perms>
グループにアクセス ACL を設定します。グループ名または GID を指定できます。システムで有効な任意のグループを指定できます。
m:<perms>
実効権マスクを設定します。このマスクは、所有グループの全権限と、ユーザーおよびグループの全エントリーを結合したものです。
o:<perms>
ファイルのグループに属さないユーザーにアクセス ACL を設定します。
空白は無視されます。パーミッション(&lt;perms&gt;)は、読み取り、書き込み、および実行を表す rw、および x の文字の組み合わせである必要があります。
ファイルまたはディレクトリーにすでに ACL が設定されている状態で、setfacl コマンドを使用した場合は、設定するルールが既存の ACL に追加されるか、既存のルールが修正されます。
たとえば、ユーザー「andrius」に読み取りと書き込みの権限を付与するには以下を実行します。
setfacl -m u:andrius:rw /project/somefile
ユーザー、グループ、またはその他のユーザーからすべての権限を削除するには、-x オプションにいずれの権限も指定せずに指定します。
 setfacl -x <rules><files>
たとえば、UID 500 のユーザーからすべての権限を削除するには以下を実行します。
setfacl -x u:500 /project/somefile

14.3. デフォルト ACL の設定

デフォルトの ACL を設定するには、d: をルールの前に追加してから、ファイル名ではなくディレクトリーを指定します。
たとえば、/share/ ディレクトリーにデフォルト ACL を設定し、ユーザーグループに属さないユーザーの読み取りと実行を設定するには、以下のコマンドを実行します (これにより、個別ファイルのアクセス ACL が上書きされます)。
setfacl -m d:o:rx /share

14.4. ACL の取り込み

ファイルまたはディレクトリーに設定されている ACL を確認するには、getfacl コマンドを使用します。
getfacl <filename>
以下のような出力を返します。
# file: file
# owner: andrius
# group: andrius
user::rw-
user:smoore:r--
group::r--
mask::r--
other::r--
ディレクトリーが指定され、デフォルトの ACL がある場合は、以下のようにデフォルトの ACL も表示されます。
# file: file
# owner: andrius
# group: andrius
user::rw-
user:smoore:r--
group::r--
mask::r--
other::r--
default:user::rwx
default:user:andrius:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

14.5. ACL が設定されているファイルシステムのアーカイブ作成

Warning
tar コマンドおよび dump コマンドは ACL をバックアップし ませ ん。
star ユーティリティーは、ファイルのアーカイブ生成に使用される点で tar ユーティリティーと似ています。しかし、一部のオプションは異なります。より一般的に使用されるオプションの一覧は、表14.1「star のコマンドラインオプション」 を参照してください。利用可能なすべてのオプションは star の man ページを参照してください。このユーティリティーを使用するには star パッケージが必要になります。
表14.1 star のコマンドラインオプション
オプション 説明
-c アーカイブファイルを作成します。
-n ファイルを抽出しません。-x と併用すると、ファイルが行う抽出を表示します。
-r アーカイブ内のファイルを入れ替えます。パスとファイル名が同じファイルが置き換えられ、アーカイブファイルの末尾に書き込まれます。
-t アーカイブファイルのコンテンツを表示します。
-u アーカイブファイルを更新します。アーカイブにファイルが存在しない場合や、アーカイブ内の同じ名前のファイルよりも新しい場合は、そのファイルがアーカイブの末尾に書き込まれます。このオプションは、アーカイブがファイルであるか、またはバックスペース可能な非ブロックテープの場合にのみ機能します。
-x アーカイブからファイルを抽出します。-U と併用すると、アーカイブ内のファイルがファイルシステムにあるファイルよりも古い場合、そのファイルは抽出されません。
-help 最も重要なオプションを表示します。
-xhelp 最も重要ではないオプションを表示します。
-/ アーカイブからファイルを抽出する際に、ファイル名から先頭のスラッシュを削除します。デフォルトでは、ファイルの抽出時にストライプ化されます。
-acl 作成時または抽出時に、ファイルおよびディレクトリーに関連付けられた ACL をアーカイブまたは復元します。

14.6. 旧システムとの互換性

指定したファイルシステムのいずかのファイルに ACL が設定されている場合、そのファイルシステムには ext_attr 属性があります。この属性は、以下のコマンドを使用すると確認できます。
tune2fs -l <filesystem-device>
ext_attr 属性を持つファイルシステムは古いカーネルでマウントできますが、それらのカーネルは設定されている ACL を強制しません。
バージョン 1.22 以降の e2fsprogs パッケージ (Red Hat Enterprise Linux 2.1 および 4 のバージョンも含む) に含まれている e2fsck ユーティリティーのバージョンは、ext_attr 属性を使用してファイルシステムを確認できます。古いバージョンではこの確認が拒否されます。

14.7. 関連情報

詳細は、以下のリソースを参照してください。

14.7.1. インストールされているドキュメント

  • ACL man ページ: ACL の説明
  • man ページ - ファイルアクセス制御リストの取得方法
  • man ページ - ファイルアクセス制御リストの設定方法
  • star man ページ: star ユーティリティーとそのオプションの詳細

14.7.2. 便利な Web サイト

パート III. パッケージ管理

Red Hat Enterprise Linux システムのすべてのソフトウェアは、RPM パッケージに分類されます。このパッケージは、インストール、アップグレード、または削除が可能です。ここでは、グラフィカルおよびコマンドラインツールを使用して、Red Hat Enterprise Linux システムで RPM パッケージを管理する方法を説明します。

第15章 RPM でのパッケージ管理

RPM Package Manager(RPM)は、誰でも使用できるオープンパッケージシステムであり、Red Hat Enterprise Linux や他の Linux システムや UNIX システムで実行できます。Red Hat, Inc は、他のベンダーが独自の製品に RPM を使用することを推奨しています。RPM は、GPL の用語で配布可能です。
RPM を使用すると、エンドユーザーはシステムの更新を簡素化します。RPM パッケージのインストール、アンインストール、およびアップグレードは、短いコマンドで実行できます。RPM はインストールされたパッケージとそのファイルのデータベースを維持するため、システムで強力なクエリーと検証を呼び出すことができます。グラフィカルインターフェースを使用する場合は、Package Management Tool を使用して多くの RPM コマンドを実行できます。
アップグレード中、RPM は設定ファイルを誤って処理するため、カスタマイズを失うことはありません。通常の .tar.gz ファイルで実行できません。
開発者は、RPM を使用して、ソフトウェアソースコードを取り、エンドユーザー向けのソースパッケージとバイナリーパッケージにパッケージ化できます。このプロセスは非常にシンプルで、単一のファイルと作成するオプションのパッチから実行されます。ビルド命令とともに、 のソースとパッチの区別が明確になり、新しいバージョンのソフトウェアがリリースされると、パッケージのメンテナンスが容易になります。
備考
RPM はシステムに変更を加えるため、RPM パッケージのインストール、削除、またはアップグレードを行う root でなければなりません。

15.1. RPM 設計ゴール

RPM の使用方法を理解するには、RPM の設計目標を理解すると便利です。
アップグレード可能性
RPM を使用すると、完全に再インストールせずにシステムの個々のコンポーネントをアップグレードできます。RPM(Red Hat Enterprise Linux など)をベースとしたオペレーティングシステムの新しいリリースを取得する場合は、マシンに再インストールする必要はありません(他のパッケージシステムに基づいたオペレーティングシステムと同様)。RPM は、システムのインテリジェントな完全自動インプレースアップグレードを可能にします。パッケージの設定ファイルはアップグレード後も保持されるため、カスタマイズは失われません。パッケージのアップグレードに必要な特別なアップグレードファイルはありません。システムのパッケージのインストールとアップグレードに同じ RPM ファイルが使用されるためです。
強力なクエリ
RPM は、強力なクエリーオプションを提供するように設計されています。パッケージや特定のファイルのみをデータベース全体で検索できます。また、ファイルが属するパッケージや、パッケージの出所を簡単に見つけることもできます。RPM パッケージに含まれるファイルは圧縮アーカイブにあり、カスタムバイナリーヘッダーにはパッケージとそのコンテンツに関する有用な情報が含まれており、個々のパッケージを素早く簡単にクエリーできます。
システムの検証
別の強力な機能は、パッケージを検証する機能です。一部のパッケージで重要なファイルを削除した場合には、パッケージを検証します。異常が通知されます。この時点で、必要に応じてパッケージを再インストールできます。変更した設定ファイルは再インストール時に保持されます。
純粋なソース
重要な設計目的は、ソフトウェアの元の作成者によって配布される「元の」ソフトウェアソースを使用できるようにしたことでした。RPM では、元のソースと、使用されたパッチ、完全なビルド命令があります。これは、いくつかの理由で重要な利点です。たとえば、新しいバージョンのプログラムが除外している場合には、コンパイルを行うために必ずしもゼロから開始する必要はありません。パッチを確認して、必要 内容を確認できます。コンパイルされたすべてのデフォルトと、ソフトウェアが適切にビルドできるように加えられたすべての変更は、この手法を使用して簡単に表示できます。
ソースを純粋に保つことの目的は開発者にとってのみ重要だと思われますが、エンドユーザーにとっても品質の高いソフトウェアになります。

15.2. RPM の使用

RPM には基本的な動作モードが 5 つあります(パッケージの構築をカウントしません): インストール、アンインストール、アップグレード、クエリー、および検証を行います。このセクションでは、各モードの概要について説明します。完全な詳細情報およびオプションについては、rpm --help を試行するか、RPM に関する詳細情報は 「関連情報」 を参照してください。

15.2.1. RPM パッケージの検索

RPM を使用する前に、その RPM を見つける場所を知っている必要があります。インターネット検索は多くの RPM リポジトリーを返しますが、Red Hat, Inc が構築した RPM パッケージを探す場合は、以下の場所にあります。

15.2.2. インストール

RPM パッケージには、通常 foo-1.0-1.i386.rpm などのファイル名があります。ファイル名には、パッケージ名(foo)、バージョン(1.0)、リリース(1)、アーキテクチャー(i386)が含まれます。パッケージをインストールするには、root としてログインし、シェルプロンプトで以下のコマンドを入力します。
rpm -Uvh foo-1.0-1.i386.rpm
インストールに成功すると、以下の出力が表示されます。
Preparing...                ########################################### [100%]
   1:foo                    ########################################### [100%]
ご覧のとおり、RPM はパッケージ名を出力し、パッケージが進捗メーターとしてインストールされているため、ハッシュマークの連続して出力します。
パッケージのインストールまたはアップグレード時に、パッケージの署名が自動的にチェックされます。署名は、パッケージが承認されたパーティーによって署名されていることを確認します。たとえば、署名の検証に失敗した場合、以下のようなエラーメッセージが表示されます。
error: V3 DSA signature: BAD, key ID 0352860f
新しいヘッダーのみの署名の場合は、以下のようなエラーメッセージが表示されます。
error: Header V3 DSA signature: BAD, key ID 0352860f
署名を検証するために適切なキーがインストールされていない場合、メッセージには以下のように NOKEY という単語が含まれます。
warning: V3 DSA signature: NOKEY, key ID 0352860f
パッケージの署名の確認に関する詳細は、「パッケージの署名の確認」 を参照してください。
Warning
カーネルパッケージをインストールする場合は、代わりに rpm -ivh を使用する必要があります。詳細は、36章カーネルの手動によるアップグレード を参照してください。
パッケージのインストールはシンプルとなるように設計されていますが、エラーが発生することがあります。
15.2.2.1. インストールされているパッケージ
同じバージョンのパッケージがすでにインストールされている場合は、以下が表示されます。
Preparing...                ########################################### [100%]
package foo-1.0-1 is already installed
インストールしようとしているバージョンと同じバージョンがすでにインストールされ、パッケージをインストールする場合は、--replacepkgs オプションを使用できます。これにより、RPM にエラーを無視するように指示します。
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
このオプションは、RPM からインストールされたファイルが削除された場合や、RPM から元の設定ファイルをインストールする場合に便利です。
15.2.2.2. 競合するファイル
別のパッケージまたはそれ以前のバージョンですでにインストールされているファイルを含むパッケージのインストールを試みると、以下が表示されます。
Preparing...                ########################################### [100%]
file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20
RPM がこのエラーを無視するようにするには、--replacefiles オプションを使用します。
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
15.2.2.3. 解決できない依存関係
RPM パッケージは基本的に、他のパッケージに依存します。つまり、適切に実行するために他のパッケージをインストールする必要があります。未解決の依存関係があるパッケージをインストールしようとすると、以下のような出力が表示されます。
error: Failed dependencies:
        bar.so.2 is needed by foo-1.0-1
    Suggested resolutions:
        bar-2.0.20-3.i386.rpm
Red Hat Enterprise Linux CD-ROM セットからパッケージをインストールする場合は、通常、依存関係の解決に必要なパッケージを提案します。Red Hat Enterprise Linux CD-ROM または Red Hat FTP サイト(またはミラー)で推奨されるパッケージを見つけ、これをコマンドに追加します。
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm
両方のパッケージのインストールに成功すると、以下のような出力が表示されます。
Preparing...                ########################################### [100%]
   1:foo                    ########################################### [ 50%]
   2:bar                    ########################################### [100%]
依存関係を解決するパッケージを提案していない場合は、--redhatprovides オプションを試して、必要なファイルを含むパッケージを判断してください。このオプションを使用するには、rpmdb-redhat パッケージがインストールされている必要があります。
rpm -q --redhatprovides bar.so.2
bar.so.2 が含まれるパッケージが、rpmdb-redhat パッケージからインストールされたデータベースにある場合は、パッケージ名が表示されます。
bar-2.0.20-3.i386.rpm
(パッケージが正しく実行されない可能性があるため)インストールを強制的に実行するには、--nodeps オプションを使用します。

15.2.3. アンインストール

パッケージのアンインストールは、パッケージのインストールと同様に簡単です。シェルプロンプトで以下のコマンドを入力します。
rpm -e foo
備考
元のパッケージ ファイルfoo -1.0-1.i386.rpm の名前ではなく、パッケージ名 foo を 使用していました。パッケージをアンインストールするには、foo を元のパッケージの実際のパッケージ名に置き換えます。
別のインストール済みパッケージが削除しようとしているパッケージに依存する場合は、パッケージをアンインストールする際に依存関係エラーが発生する可能性があります。以下に例を示します。
error: Failed dependencies:
        foo is needed by (installed) bar-2.0.20-3.i386.rpm
RPM がこのエラーを無視し、パッケージの依存関係を中断する可能性があるパッケージをアンインストールする場合は、--nodeps オプションを使用します。

15.2.4. アップグレード

パッケージのアップグレードは、パッケージのインストールに似ています。シェルプロンプトで以下のコマンドを入力します。
rpm -Uvh foo-2.0-1.i386.rpm
パッケージのアップグレードの一環として、RPM は古いバージョンの foo パッケージを自動的にアンインストールします。実際、以前のバージョンがインストールされていない場合でも、-U を使用して、機能するパッケージをインストールしたい場合があります。
ヒント
RPM は以前のカーネルパッケージに置き換わるため、カーネルパッケージのインストールに -U オプションを使用したくありません。これは実行中のシステムには影響しませんが、次回の再起動時に新しいカーネルが起動できない場合は、代わりに他のカーネルが起動できません。
-i オプションを使用すると、カーネルを GRUB 起動メニュー(/etc/grub.conf)に追加します。同様に、不要な古いカーネルを削除すると、GRUB からカーネルが削除されます。
RPM は設定ファイルを使ってパッケージのインテリジェントなアップグレードを実行するので、以下のようなメッセージが表示されることがあります。
saving /etc/foo.conf as /etc/foo.conf.rpmsave
このメッセージは、設定ファイルへの変更が、パッケージ内の新しい設定ファイルと後方 互換性 がない可能性があります。そのため、RPM は元のファイルを保存し、新しいファイルをインストールしてください。システムが適切に機能し続けるようにするには、2 つの設定ファイル間の違いを調べ、できるだけ早く解決する必要があります。
アップグレードはアンインストールとインストールの組み合わせであるため、RPM のアップグレード時に、アンインストールおよびインストールエラーが発生し、さらにエラーが 1 つ以上発生する可能性があります。RPM が 古い バージョン番号のパッケージにアップグレードしようとしていると考える場合、出力は以下のようになります。
package foo-2.0-1 (which is newer than foo-1.0-1) is already installed
RPM を強制的にアップグレードするには、--oldpackage オプションを使用します。
rpm -Uvh --oldpackage foo-1.0-1.i386.rpm

15.2.5. Freshening

パッケージの追加は、パッケージのアップグレードに似ています。シェルプロンプトで以下のコマンドを入力します。
rpm -Fvh foo-1.2-1.i386.rpm
RPM の新規オプションは、コマンドラインで指定したパッケージのバージョンと、システムにインストールされているパッケージのバージョンを確認します。すでにインストールされているパッケージの新規バージョンが RPM の新規オプションで処理されると、そのパッケージが新しいバージョンにアップグレードされます。ただし、同じ名前のパッケージが存在しない場合、RPM のnewen オプションはパッケージをインストールしません。これ 、以前のバージョンのパッケージがすでにインストールされているかどうかにかかわらず、アップグレードによってパッケージがインストールされるため、RPM のアップグレードオプションとは異なります。
RPM の新規オプションは、1 つのパッケージまたはパッケージグループで機能します。多数の異なるパッケージをダウンロードし、システムにすでにインストールされているパッケージのみをアップグレードする場合は、新たにジョブを行います。新しいパッケージを使用する場合は、RPM を使用する前にダウンロードしたグループから不要なパッケージを削除する必要はありません。
この場合は、以下のコマンドを実行します。
rpm -Fvh *.rpm
RPM は、すでにインストールされているパッケージのみを自動的にアップグレードします。

15.2.6. クエリ

rpm -q コマンドを使用して、インストール済みパッケージのデータベースにクエリーします。rpm -q foo コマンドは、インストール済みパッケージのパッケージ名、バージョン、リリース番号を表示します。
foo-2.0-1
備考
パッケージをクエリーするには、foo を実際のパッケージ名に置き換えます。
パッケージ名を指定する代わりに、-q で以下のオプションを使用して、問い合わせるパッケージを指定します。これらは パッケージの 選択 オプション と呼ばれます。
  • -a は、現在インストールされているすべてのパッケージをクエリーします。
  • -f < file> は、< file> を所有するパッケージをクエリーし ます。ファイルを指定する場合は、ファイルの完全パスを指定する必要があります(例: /bin/ls)。
  • -p &lt ;packagefile> は パッケージ < packagefile> をクエリーし ます。
クエリーされたパッケージに関する情報を表示する方法は複数あります。以下のオプションは、検索する情報のタイプを選択するために使用されます。これらは Information Query Options と呼ばれます。
  • -i は、名前、説明、リリース、サイズ、ビルド日、インストール日、ベンダー、その他のその他の情報など、パッケージ情報を表示します。
  • -l は、パッケージに含まれるファイルの一覧を表示します。
  • -s は、パッケージ内の全ファイルの状態を表示します。
  • -d は、ドキュメントとしてマークされているファイルの一覧を表示します(man ページ、情報ページ、README など)。
  • -c は、設定ファイルとしてマークされているファイルの一覧を表示します。これは、パッケージのインストール後に変更するファイルです(例: sendmail.cfpasswdinittab など)。
ファイルの一覧を表示するオプションについては、コマンドに -v を追加して、一般的な ls -l 形式でリストを表示します。

15.2.7. 検証

パッケージの検証は、パッケージからインストールしたファイルに関する情報と、元のパッケージからの同じ情報を比較します。また、検証により、各ファイルのサイズ、MD5 合計、パーミッション、タイプ、所有者、およびグループを比較します。
コマンド rpm -V はパッケージを検証します。クエリーに一覧表示される パッケージ 検証 オプション のいずれかを使用して、検証するパッケージを指定できます。検証の簡単な使用方法は rpm -V foo です。これは、foo パッケージ内のすべてのファイルが、最初にインストールした時と同じであることを検証します。以下に例を示します。
  • 特定のファイルを含むパッケージを確認するには、次のコマンドを実行します。
    rpm -Vf /usr/bin/vim
  • インストールされているすべてのパッケージを確認するには、次のコマンドを実行します。
    rpm -Va
  • RPM パッケージファイルに対してインストール済みのパッケージを確認するには、次のコマンドを実行します。
    rpm -Vp foo-1.0-1.i386.rpm
    このコマンドは、RPM データベースが破損していると思われる場合に便利です。
すべてが適切に検証された場合、出力はありません。不一致がある場合は、それらが表示されます。出力の形式は、8 文字の文字列( c は設定ファイルを示します)、ファイル名です。8 文字はそれぞれ、ファイルの 1 つの属性と RPM データベースに記録された属性の値を比較した結果を示します。1 つのピリオド(.)は、テストに合格したことを意味します。以下の文字は、特定のテストの失敗を示しています。
  • 5 - MD5 checksum
  • s - ファイルサイズ
  • l - シンボリックリンク
  • T - ファイル変更時間
  • d - device
  • u - user
  • g - group
  • m: モード(パーミッションおよびファイルタイプを含む)
  • ? - 読み取り不可能なファイル
出力が表示された場合は、最善の判断を使用して、パッケージを削除または再インストールする必要があるかを判断するか、別の方法で問題を修正します。

15.3. パッケージの署名の確認

パッケージが破損していないか、改ざんされていないことを確認する場合は、シェルプロンプトで以下のコマンドを入力して md5sum のみを確認します(RPM パッケージのファイル名は <rpm- file> です)。
rpm -K --nosignature <rpm-file>
< rpm-file> : md 5 OK というメッセージが表示されます。この簡単なメッセージは、ファイルのダウンロードによって破損されなかったことを意味します。より詳細なメッセージを表示するには、コマンドの -K-Kvv に置き換えます。
一方、パッケージを作成した開発者だけに信頼する方法。パッケージが開発者の GnuPG キー署名 されている場合、開発者がそれらが本人であることがわかっていることが分かります。
RPM パッケージは、ダウンロードしたパッケージに信頼できるものにするために、Gnu Privacy Guard (または GnuPG)を使用して署名できます。
GnuPG は、安全な通信を行うためのツールです。これは、電子プライバシープログラムである PGP の暗号化テクノロジーの完全な置換です。GnuPG を使用すると、ドキュメントの有効性を認証し、他の受信者との間でデータを暗号化/復号化できます。GnuPG は PGP 5.x ファイルを復号および検証することもできます。
インストール時に、ART はデフォルトでインストールされます。これにより、Red Hat から受け取るパッケージを確認できるようにするために GnuPG の使用をすぐに開始できます。まず、Red Hat の公開鍵をインポートする必要があります。

15.3.1. キーのインポート

Red Hat パッケージを検証するには、Red Hat GPG キーをインポートする必要があります。これを行うには、シェルプロンプトで以下のコマンドを実行します。
rpm --import /usr/share/rhn/RPM-GPG-KEY
RPM 検証用にインストールされた鍵の一覧を表示するには、以下のコマンドを実行します。
rpm -qa gpg-pubkey*
Red Hat キーの出力には、以下が含まれます。
gpg-pubkey-db42a60e-37ea5438
特定のキーの詳細を表示するには、rpm -qi の後に直前のコマンドの出力を使用します。
rpm -qi gpg-pubkey-db42a60e-37ea5438

15.3.2. パッケージの署名の確認

ビルダーの GnuPG キーのインポート後に RPM ファイルの GnuPG 署名を確認するには、以下のコマンドを使用します(< rpm-file > を RPM パッケージのファイル名に置き換えます)。
rpm -K <rpm-file>
すべてが正常に行われると、md5 gpg OK メッセージが表示されます。つまり、パッケージの署名を検証し、破損していないことを意味します。

15.4. RPM で金を抑制する

RPM は、システムの管理と問題の診断と修正の両方に役立ちます。すべてのオプションを把握する最適な方法は、いくつかの例を参照してください。
  • 場合によっては、誤って一部のファイルを削除しましたが、削除内容を把握しているわけではありません。システム全体を検証し、足りないものを確認するには、以下のコマンドを実行します。
    rpm -Va
    一部のファイルが欠落しているか、破損している場合、パッケージを再インストールするか、またはアンインストールしてからパッケージを再インストールします。
  • 場合によっては、認識しないファイルが表示される場合があります。パッケージを所有するパッケージを確認するには、次のコマンドを実行します。
    rpm -qf /usr/bin/ggv
    出力は以下のようになります。
    ggv-2.6.0-2
    
  • 以下のシナリオにおいて、上記の 2 つの例を組み合わせることができます。/usr/bin/paste に問題があるとします。そのプログラムを所有するパッケージを確認しますが、どのパッケージが 貼り付ける かは分からません。以下のコマンドを入力します。
    rpm -Vf /usr/bin/paste
    また、適切なパッケージが検証されています。
  • 特定のプログラムに関する詳細情報を見つけてもよろしいですか?以下のコマンドを試し、そのプログラムを所有するパッケージに含まれるドキュメントを確認できます。
    rpm -qdf /usr/bin/free
    出力は以下のようになります。
    /usr/share/doc/procps-3.2.3/BUGS
    /usr/share/doc/procps-3.2.3/FAQ
    /usr/share/doc/procps-3.2.3/NEWS
    /usr/share/doc/procps-3.2.3/TODO
    /usr/share/man/man1/free.1.gz
    /usr/share/man/man1/pgrep.1.gz
    /usr/share/man/man1/pkill.1.gz
    /usr/share/man/man1/pmap.1.gz
    /usr/share/man/man1/ps.1.gz
    /usr/share/man/man1/skill.1.gz
    /usr/share/man/man1/slabtop.1.gz
    /usr/share/man/man1/snice.1.gz
    /usr/share/man/man1/tload.1.gz
    /usr/share/man/man1/top.1.gz
    /usr/share/man/man1/uptime.1.gz
    /usr/share/man/man1/w.1.gz
    /usr/share/man/man1/watch.1.gz
    /usr/share/man/man5/sysctl.conf.5.gz
    /usr/share/man/man8/sysctl.8.gz
    /usr/share/man/man8/vmstat.8.gz
    
  • 新しい RPM が見つかるかもしれませんが、何ができるのかは分かないでしょう。情報を確認するには、以下のコマンドを使用します。
    rpm -qip crontabs-1.10-7.noarch.rpm
    出力は以下のようになります。
    Name        : crontabs                     Relocations: (not relocatable)
    Version     : 1.10                              Vendor: Red Hat, Inc
    Release     : 7                             Build Date: Mon 20 Sep 2004 05:58:10 PM EDT
    Install Date: (not installed)               Build Host: tweety.build.redhat.com
    Group       : System Environment/Base       Source RPM: crontabs-1.10-7.src.rpm
    Size        : 1004                             License: Public Domain
    Signature   : DSA/SHA1, Wed 05 Jan 2005 06:05:25 PM EST, Key ID 219180cddb42a60e
    Packager    : Red Hat, Inc <http://bugzilla.redhat.com/bugzilla>
    Summary     : Root crontab files used to schedule the execution of programs.
    Description :
    The crontabs package contains root crontab files. Crontab is the
    program used to install, uninstall, or list the tables used to drive the
    cron daemon. The cron daemon checks the crontab files to see when
    particular commands are scheduled to be executed. If commands are
    scheduled, then it executes them.
    
  • 場合によっては、crontabs RPM がどのファイルをインストールするかを見てみましょう。以下を入力します。
    rpm -qlp crontabs-1.10-5.noarch.rpm
    出力は以下の例のようになります。
    /etc/cron.daily
    /etc/cron.hourly
    /etc/cron.monthly
    /etc/cron.weekly
    /etc/crontab
    /usr/bin/run-parts
    
これらはいくつかの例です。RPM に使用することが多くあります。

15.5. 関連情報

RPM は、パッケージのクエリー、インストール、アップグレード、および削除を行う数多くのオプションと、非常に複雑なユーティリティーです。RPM の詳細は、以下の資料を参照してください。

15.5.1. インストールされているドキュメント

  • rpm --help - このコマンドは、RPM パラメーターのクイックリファレンスを表示します。
  • man rpm - RPM の man ページには、rpm --help コマンドよりも RPM パラメーターに関する詳細が記載されています。

15.5.2. 便利な Web サイト

第16章 Red Hat Network

Red Hat Network は、1 つ以上の Red Hat Enterprise Linux システムを管理するためのインターネットソリューションです。すべてのセキュリティーアラート、バグ修正アラート(エラータアラートと総称される)は、Package Updater スタンドアロンアプリケーションを使用するか、https://rhn.redhat.com/ の RHN Web サイトを使用して Red Hat から直接ダウンロードできます。

図16.1 RHN

RHN
Red Hat Network は、更新されたパッケージがリリースされるとメールを受け取るので、時間を節約できます。Web で更新されたパッケージやセキュリティーアラートを検索する必要はありません。デフォルトでは、Red Hat Network はパッケージもインストールします。RPM の使用方法や、ソフトウェアパッケージの依存関係の解決について把握する必要はありません。RHN がこれらすべてを行います。
Red Hat Network の機能は以下のとおりです。
  • エラータアラート: ネットワーク内のすべてのシステムについて、セキュリティーアラート、バグ修正アラート、および機能拡張アラートが発行されるタイミングを確認します。

    図16.2 関連エラータ

    関連エラータ
  • 自動メール通知: システムに対してエラータ通知が発行されたときにメール通知を受け取ります。
  • スケジュールされたエラータ更新 - エラータ更新のスケジュール
  • パッケージのインストール - ボタンをクリックする、1 つ以上のシステムへのパッケージインストールのスケジュール
  • Package Updater - Package Updater を使用して、システムの最新ソフトウェアパッケージをダウンロードします(オプションのパッケージインストールを使用)。
  • Red Hat Network Web サイト: 複数のシステムの管理、個々のパッケージのダウンロード、およびコンピューターからの安全な Web ブラウザー接続によるエラータ更新などのスケジュールアクション
Warning
Red Hat Network にシステムを登録する前に、Red Hat Enterprise Linux 製品をアクティベートして、お使いのシステムが正しいサービスに割り当てられていることを確認してください。プロダクトを有効にするには、以下に移動します。
http://www.redhat.com/apps/activate/
製品をアクティベートしたら、Red Hat Network に登録してエラータ更新を受け取ります。登録プロセスは、更新の通知に必要なシステムに関する情報を収集します。たとえば、システムにインストールされているパッケージの一覧はコンパイルされるため、システムに関連する更新のみが通知されます。
システムを初めて起動すると、Software Update Setup Assistant により登録が求められます。登録していない場合は、デスクトップで Applications (パネルのメインメニュー)=> System Tools => Package Updater を選択して登録プロセスを開始します。または、シェルプロンプトから yum update コマンドを実行します。

図16.3 RHN への登録

RHN への登録
登録後は、以下のいずれかの方法を使用して更新の受信を開始します。
  • デスクトップで Applications (パネルのメインメニュー)=> System Tools => Package Updater を選択します。
  • シェルプロンプトから yum コマンドを実行します。
  • RHN の Web サイト( https://rhn.redhat.com/)を使用します。
  • パネルにパッケージアイコンをクリックして、Package Updater を起動します。
詳細については、以下のドキュメントを参照してください。
http://www.redhat.com/docs/manuals/RHNetwork/
ヒント
Red Hat Enterprise Linux には、Red Hat Enterprise Linux システムの更新がある場合に表示されるアラートを表示する便利なパネルアイコンが含まれています。利用可能な更新がない場合は、このパネルアイコンは表示されません。