| Red Hat Enterprise Linux 4: インストールガイド - x86、Itanium™、AMD64、Intel® Extended Memory 64 Technology (Intel® EM64T) | ||
|---|---|---|
| 前のページ | 次のページ | |
![]() | 注記 |
|---|---|
この付録は必ずしもx86ベース以外のアーキテクチャに適用できるとは限りません。しかしながら、ここに記載されている全般的なコンセプトは適用できるかもしれません。 |
ディスクパーティションはパーソナルコンピュータの使用環境では標準的な部分であり、長い間、そのように認識されていました。しかし、多数の人々が OS プリインストールのコンピュータを購入しているため、パーティションがどのようになっているかは少数の人々にしか理解されていません。Red Hat Enterprise Linux のインストールができる限り簡単かつ容易なものになるよう、本章ではディスク パーティションの機能と使用について説明します。
ディスクパーティションについて十分な理解があると思われる方は、項D.1.4 までスキップして、Red Hat Enterprise Linux インストールの準備としてディスクを解放する工程の情報を参照してください。このセクションは Linux システムが使用するパーティションの命名体系、他の OS とのディスクスペースの共有、その他関連した事柄について説明します。
ハードディスクは非常に簡単な機能を果たします — ハードディスクはデータを保存し、要求に応じて忠実にそれを取り出します。
ディスクパーティションなどの課題を論じるときには、基本となるハードウェアの事について少々知っておくことが大切です。ただ簡単に詳細にまで深入りしやすくなるので、単純化されたディスクドライブの図を使用して、ディスクドライブにパーティションを作る(区画を切るとも言う)時に何が起こっているのかを説明します。図D-1 は、新品の未使用ディスクドライブを示しています。
見るものがない状態ですね。しかし基本レベルでディスクドライブを語るのなら今はこれで十分です。この状態のまま、このドライブに何かデータを保存したいとなるとこれでは無理です。まずしなければならない事があります …。
経験のあるユーザーなら多分すぐにお分かりでしょう。ドライブを フォーマット する必要があります。フォーマット(通常『ファイルシステムを作る』と言う意味で知られています)とはドライブに情報を書き込んで、未フォーマットのドライブの空白の領域に順番を付けることです。
図D-2 が示すように、ファイルシステムによって強いられる順序にはトレードオフがあります。
ドライブの使用可能領域のごく一部がファイルシステム自身に関連するデータの保存に使用されますが、これはオーバーヘッド(必要経費)と考えていいでしょう。
ファイルシステムは残りの領域を小さな固定サイズのセグメントに分割します。Linux ではこれらのセグメントを ブロック と呼びます。[1]
ファイルシステムがディレクトリやファイルを使用できるようにするわけですから、上記のトレードオフは安いものと言えるでしょう。
また、一つの普遍的なファイルシステムしか機能しないのではありません。図D-3 で示すように、ディスクドライブは書き込み可能な多くのファイルシステムのどれか一つを使えます。想像できるように、異なるファイルシステム間では互換性がないという傾向があります。つまり、ひとつの OS があるファイルシステム(あるいはいくつかの関連ファイルシステムタイプ)に対応していても、他のファイルシステムには対応しないかもしれません。ただし、これは絶対的なものではありません。例えば、 Red Hat Enterprise Linux は広範囲のファイルシステム(他の OS でも一般的に使用されている多数のファイルシステムを含む)をサポートしており、異なるファイルシステム間のデータ交換を容易にします。
もちろん、ディスクファイルに書き込むのは始めの一歩に過ぎません。このプロセスの目標は実際にデータを 保存 して 取り出す ことです。何らかのデータが書き込まれたドライブについて見てみましょう。
図D-4 が示すように、以前は空だったブロックがいまはデータを格納しています。ただし、この図からでは、このドライブに正確にはいくつのファイルが存在するのか判断することはできません。各ファイルは少なくとも 1 つのブロックを使用し、なかには複数のブロックを使用するファイルもあるため、ファイルは 1 つかもしれないし、多数のファイルがあるかもしれません。データが書き込まれたブロックが必ずしも隣接する必要がないことに注意してください。つまり、未使用ブロックと使用済みブロックが点在するかもしれません。この点在の状態は、フラグメンテーション(断片化) と呼ばれています。既存のパーティションサイズを変更するときにフラグメンテーションの操作が必要になることがあります。
多くのコンピュータ関連技術と同じように、ディスクドライブは導入されてから常に変化し続けています。つまり、より大きくなっています。サイズではなく、情報保存の容量が大きくなっているのです。そしてこの容量増加がディスクドライブの使用方法を根本的に変化させてきました。
ディスクドライブの内容が飛躍的に増大するにつれて、その領域のすべてをひとつの大きな塊にしておくのは良いやり方かどうか疑問視されるようになりました。このような考え方は幾つかの問題によって引き出されました。ある問題は論理的であり、あるものは技術的なものでした。論理的な見地からすると、適当なサイズを越えた場合に、大容量ドライブから与えられる追加領域によってさらに散らかされてしまうのではという問題です。また技術的な面からすると、一定容量を越えるものをサポートするようには設計されていないファイルシステムがあるという問題です。あるいは、ファイルシステムが大容量の大規模デバイスをサポートできたとしても、ファイルを追跡するファイルシステムによって強いられるオーバーヘッドは途方もないものになってしまうでしょう。
この問題に対する解決案はドライブを パーティション に分割することでした。各パーティションが個々のディスクのようであれば、それぞれにアクセスが可能になります。これは、パーティションテーブル を追加することによって実現されました。
![]() | 注記 |
|---|---|
ここで示す図ではパーティションテーブルが実際のディスクドライブから離れていますが、本来の状況を正確に表している訳ではありません。実際には、パーティションテーブルはそのディスクの先頭部分となる、他のファイルシステムまたはユーザーデータの前に格納されています。但し、わかりやすくするために図では別々に表示します。 |
図D-5 が示すように、パーティションテーブルは 4 セクション、または 4 つの プライマリ パーティションに分かれています。プライマリパーティションはハードドライブ上にあるパーティションで、論理ドライブ(またはセクション)は 1 つしか持てません。各セクションには 1 つのパーティションを定義するために必要な情報が格納されています。つまりパーティションテーブルで定義できるのは 4 パーティション以下です。
各パーティションテーブルのエントリ(登記項目)はパーティションに関する重要な特徴を含んでいます。
ディスク上のパーティションの開始点と終了点
パーティションが「アクティブ」かどうか
パーティションのタイプ
これらの特長について詳しく見てみましょう。開始点と終了点によって実際のパーティションサイズとディスク上の物理的な位置が定義されます。「アクティブ」フラグは幾つかの OS のブートローダーによって使用されます。つまり、「アクティブ」に設定されたパーティションに含まれる OS がブートすることになります。
パーティションのタイプについては少々混乱を招くかもしれません。タイプとは予測されたパーティションの用途を識別する番号です。この表現では曖昧に響くかもしれませんが、それはパーティションの意味がやや曖昧だからです。数種の OS はパーティションタイプを使い分けることで特殊なファイルシステムタイプを表現するとか、フラグを付けて一定の OS に関連しているパーティションを区別とか、起動可能な OS を含んでいるパーティション表示とか、さらにはその 3 つの組合せなどの目的で使用します。
ここまでくると、これだけの複雑なものをどうやって使用するのか不思議に思われるでしょう。例として、図D-6 を参照してください。
多くの場合には、ディスク全体にわたるひとつのパーティションがあります。これはパーティション以前に使用されていた基本的な方法です。パーティションテーブルではエントリがひとつだけ使用されており、そのエントリはパーティションの先頭を示しています。
このパーティションには「DOS」というラベルを付けています。これは 表D-1 のリストにある幾つかのパーティションタイプのひとつですが、ここでの説明には適切です。
表D-1 に、一般的(及びあまり知られていない)パーティションタイプとその 16 進数の数値の一覧を示します。
| パーティションタイプ | 値 | パーティションタイプ | 値 |
|---|---|---|---|
| 空白 | 00 | Novell Netware 386 | 65 |
| DOS 12-ビット FAT | 01 | PIC/IX | 75 |
| XENIX root | 02 | Old MINIX | 80 |
| XENIX usr | 03 | Linux/MINUX | 81 |
| DOS 16-ビット <=32M | 04 | Linux swap | 82 |
| Extended | 05 | Linux native | 83 |
| DOS 16-ビット >=32 | 06 | Linux extended | 85 |
| OS/2 HPFS | 07 | Amoeba | 93 |
| AIX | 08 | Amoeba BBT | 94 |
| AIX bootable | 09 | BSD/386 | a5 |
| OS/2 Boot Manager | 0a | OpenBSD | a6 |
| Win95 FAT32 | 0b | NEXTSTEP | a7 |
| Win95 FAT32 (LBA) | 0c | BSDI fs | b7 |
| Win95 FAT16 (LBA) | 0e | BSDI swap | b8 |
| Win95 Extended (LBA) | 0f | Syrinx | c7 |
| Venix 80286 | 40 | CP/M | db |
| Novell | 51 | DOS access | e1 |
| PPC PReP ブート | 41 | DOS R/O | e3 |
| GNU HURD | 63 | DOS secondary | f2 |
| Novell Netware 286 | 64 | BBT | ff |
表 D-1. パーティションタイプ
もちろん、4 つのパーティションでは不十分であることに気が付くでしょう。ディスクドライブはどんどん大きくなるわけで、4 つの適切なサイズのパーティションを設定した後でもまだディスク領域が余るようになって来ています。したがってより多くのパーティションを作成する何らかの手段が必要になります。
そこで拡張パーティションの登場です。表D-1 を見て気が付いたかも知れませんが、「Extended」と言うパーティションタイプがあります。これが拡張パーティションのことで拡張操作の中心となります。
パーティションを作成して「Extended」に設定すると拡張パーティションテーブルが作成されます。本質的に、拡張パーティションは独立したディスクドライブのようなものです — つまり、拡張パーティションは 1 つまたは複数のパーティション(ここでは 4 つの プライマリパーティション に対して、論理パーティション と呼ぶ)を指し示すパーティションテーブルを持っています。論理パーティション群は拡張パーティションの中に完全に内包されます。図D-7 は、1 つのプライマリパーティションと 2 つの論理パーティションを含む拡張パーティションを持つディスクドライブを示しています(パーティションが作成されていない空白もあります)。
この図が示すように、プライマリパーティションと論理パーティションには違いがあります — プライマリーパーティションは 4 つしかできませんが、論理パーティションにはその制限がありません。しかし、Linux によるパーティションへのアクセスの仕方を考慮すると、1 つのディスクドライブに 12 個を越える論理パーティションを定義するのは避けてください。
ここまでパーティションの一般論を説明しましたので、この知識を利用して Red Hat Enterprise Linux をインストールする方法を考えてみましょう。
次に、ハードディスクのパーティションを作り直す際に考えられる状況をいくつか示します。
パーティションが作成されてない空き領域がある
未使用のパーティションがある
使用中のパーティションの中に空き領域がある
各シナリオを順番に検討しましょう。
![]() | 注記 |
|---|---|
次の図は理解しやすいように単純化されています。実際に Red Hat Enterprise Linux をインストールするときに遭遇するようなパーティションのレイアウトを正確に反映しているわけではないことに注意してください。 |
この状態では、既に定義されているパーティションではハードディスク全体を占めていず、定義されていない割り当てのない状態の領域が残されています。図D-8 は、この状態を表しています。
図D-8 では、1 は領域が割り当てられていない未定義のパーティションを示し、2 は割り当てられた領域で定義済みのパーティションを示します。
考えてみると未使用のハードディスクもこのカテゴリに分類されます。唯一の違いは 全ての 領域が、定義済みのどの領域部分にもなっていないということです。
どちらの場合でも、必要なパーティションを未使用の領域から作成することができます。しかし、このシナリオはとても単純ですが、ほとんどあり得ません (Red Hat Enterprise Linux 用に新しいディスクを購入した場合は別ですが)。プリインストールされた OS のほとんどは、ディスクドライブ上の利用可能な領域をすべて使用するように設定されています (項D.1.4.3 を参照)。
次にもうすこし一般的な状況を考えましょう。
この場合は、おそらく使用するつもりのない1つまたは複数のパーティションがある状況でしょう。多分、以前に他の OS を少し使用していて、その OS 専用にしていたパーティションが不要になったという状態です。図D-9 ではその状態を示しています。
図D-9 では、1 は未使用のパーティションを示し、2 は Linux 用に未使用パーティションの再割り当てをするところ示します。
このような状況にある場合は、未使用のパーティションに割り当てられている領域を使用することができます。まず、そのパーティションを削除してから、そこに適切な Linux パーティションを作成します。インストール中に手動で未使用のパーティションを削除し、新規のパーティションを作成することができます。
これが最も一般的な状況です。ただし、最も扱いにくい状況でもあります。最も大きな問題は、たとえ十分な空き領域がある場合でも、それがすでに使用中のパーティションに割り当てられているということです。ソフトウェアがプリインストールされているコンピュータを購入した場合、たいていはハードディスク上に OS とデータを格納した大きなパーティションがあります。
システムに新しくハードディスクドライブを追加する以外に、2 つの選択肢があります。
大きなパーティションを削除して、いくつかの小さなパーティションを作成します。想像されるように従来のパーティションに格納されていたデータはすべて失われます。つまり、完全なバックアップを行うことが必要です。パーティションを削除する前に、後で後悔しないよう、バックアップを 2 部作成し、検証機能(ソフトウェアがあれば)を使用します。パーティションを削除する 前 に、バックアップデータが読み込めるか試してみます。
![]() | 注意 |
|---|---|
そのパーティションに何かのタイプの OS がインストールされていた場合は、その OS も再インストールする必要があります。OS をプリインストールして販売されているコンピュータには、オリジナル OS を再インストールするための CD-ROM が含まれていない場合があるので注意してください。自分のシステムがこれに該当するか、オリジナルパーティションとその中の OS を削除する 前 に必ず確認してください。 |
既存のオペレーティングシステム用に以前より小さめのパーティションを作成したら、任意のソフトウェアの再インストール、データの復元、Red Hat Enterprise Linux のインストール続行などができます。これを行なった状況は、図D-10 に示されています。
図D-10では、1 は「前」、2 は「後」を示します。
![]() | 注意 |
|---|---|
図D-10 で示すように、適切なバックアップを作成しておかないと、元のパーティション内に存在していたデータはすべて失われます。 |
ある種のプログラムを使用して一見不可能と思えることを行ないます。パーティションに含まれるファイルを失わずに、その大きなパーティションを小さくします。多くの人の間でこの手段は信頼性があり、問題が無いと考えられています。この神技を実行するためにどのようなソフトウェアを使用するのでしょうか? 市場にはディスク管理ソフトウェア製品がいくつかあります。自分の状況に最も適した製品を見つけるために少し調査をした方がよいでしょう。
パーティションの再編成は比較的簡単で、いくつかの手順を経て削除しないまま実行できます。
既存データの圧縮とバックアップ
既存パーティションのサイズ変更
新規パーティション(群)の作成
各ステップをもう少し詳しく見てみましょう
図D-11 が示すように、まず最初のステップは既存パーティションに含まれるデータを圧縮することです。その理由は、パーティションの後部の利用可能空き領域が最大になるようにデータを詰め込んで整理しなおすためです。
図D-11 で、1 は「前」を示し、2 は「後」を示します。
このステップは非常に重要です。このステップを実行しないと、データが存在する場所によっては希望通りにパーティションのサイズを変更できなくなります。色々な理由で移動できないデータがあることも留意してください。そのような場合(新しいパーティションサイズも厳密に制限されます)には、ディスクのパーティションを削除して作り直すことを強いられることがあります。
図D-12 に実際のサイズ変更のプロセスを示します。実際のサイズ変更操作の結果は、使用するソフトウェアによって異なります。ほとんどの場合では新しく解放した領域を使用することで、元のパーティションと同じタイプの未フォーマットパーティションが作成されます。
図D-12 で、1 は「前」を示し、2 は「後」を示します。
重要なことは、サイズ変更用ソフトウェアが、新たに解放された領域をどうするのかを理解することです。そうすれば適切なステップを実行することができます。図に示した事例では、新しくできた DOS パーティションを削除して、適当な Linux パーティション(群)を作成するのが最も適しているようです。
上記のステップから推測できるように、新規のパーティションを作成する必要があるかもしれないし、ないかもしれません。ただし、サイズ変更用のソフトウェアが Linux を認識するものでない限り、サイズ変更のプロセス中に作成されたパーティションを削除する必要があるかもしれません。これを実行した状況が 図D-13 で示されています。
図D-13 で、1 は「前」を示し、2 は「後」を示します。
![]() | 注記 |
|---|---|
以下の情報は x86 ベースのコンピュータのみに関連します。 |
弊社のお客様のために、parted ユーティリティを提供しています。これは無償で入手できるプログラムであり、パーティションのサイズを変更することができます。
parted を使ってハードドライブのパーティションを作成し直す場合、ディスクストレージについてよく理解していること、コンピュータデータのバックアップを作成することが重要です。コンピュータ上の重要なデータはすべてコピーを 2 部作成してください。このコピーはリムーバブルメディア(テープ、CD-ROM、フロッピーなど)にしてください。また、作業に入る前に、必ず、作成したコピーを読み込むことができるか確認してください。
parted を使用することにした場合は、parted の実行後に 2 つ のパーティションが残ることに注意してください。1 つはサイズを変更した古いパーティションで、もう一つは新たに解放された領域から parted が作成したパーティションです。その領域を利用して Red Hat Enterprise Linux をインストールすることが目的でしたら、次のいずれかの方法で新たに作成されたパーティションを削除する必要があります。現在の OS の下でパーティション作業ユーティリティを使用して削除するか、インストール中のパーティション設定時に削除します。
Linux がディスクパーティションを表現する際には文字と数字の組合せを使用しますが、これは特にハードディスクやパーティションを 「C ドライブ」の様に表すことに慣れている人々にとっては混乱のもとになるかもしれません。DOS や Windows の世界では、以下の様にしてパーティションに名前が付けられています。
各パーティションのタイプがチェックされ、DOS/Windows で読み取れるかどうか調べられます。
パーティションのタイプが互換性を持つものであれば、「ドライブ文字」が割り当てられます。ハードディスクドライブの文字は「C」から始まり、ラベルを付けるパーティションの数により、次の文字へ進みます。
このドライブ文字で、パーティションとそのパーティションの中のファイルシステムを参照することができるようになります。
Red Hat Enterprise Linux は他の OS で使用されるアプローチよりも柔軟で、より多くの情報を伝える命名体系を使用しています。命名体系はファイルベースであり、/dev/xxyN のような形式のファイルを使用します。
以下にこの命名体系の解読方法を示します。
これはディレクトリの名前です。すべてのデバイスファイルが格納されています。パーティションはハードディスク上に存在し、ハードディスクはデバイスであるため、すべてのパーティションを表すファイル群は、/dev/ ディレクトリ内に格納されます。
パーティション名の最初の 2 文字は、そのパーティションが存在するデバイスのタイプを示します。通常見かけるのは、hd (IDE ディスク)、または sd (SCSI ディスク)です。
この文字は、パーティションがどのデバイス上にあるのかを示します。例えば、/dev/hda (先頭の IDE ハードディスク) または /dev/sdb (2 番目の SCSI ディスク)などです。
最後の番号がパーティションを表します。最初の 4 つ(プライマリまたは拡張)のパーティションには 1 から 4 までの番号が割り当てられます。論理パーティションは 5 から始まります。例えば、/dev/hda3 は 3 番目のプライマリまたは拡張パーティションで、先頭の IDE ハードディスク上にあります。/dev/sdb6 は 2 番目のパーティションで、2 番目の SCSI ハードディスク上にあります。
![]() | 注記 |
|---|---|
この命名規則の中にはパーティションタイプに依存する部分はありません。DOS/Windows とは異なり、Red Hat Enterprise Linux では すべての パーティションを識別することができます。もちろん、Red Hat Enterprise Linux があらゆるタイプのパーティション上のデータにアクセスできるわけではありませんが、多くの場合、他の OS 専用のパーティション上のデータにアクセスすることができます。 |
この情報を覚えておいてください。Red Hat Enterprise Linux に必要なパーティションを設定しているときに便利です。
Red Hat Enterprise Linux パーティションが他の OS によって使用するパーティションとハードディスクを共有する状況でも、ほとんどの場合は何も問題はありません。ただし、Linux と他の OS の特定の組み合わせについては、特別に注意が必要です。
Linux を始めて使用される多くの人々に取って混乱を招きやすい事柄のひとつは、どの様に Linux がパーティションを使い、アクセスするかと言う問題です。これは DOS/Windows の中では比較的簡単なことです。各パーティションは「ドライブ文字」を持っており、この「ドライブ文字」を使用して関連するパーティション上のファイルやディレクトリを参照します。
これは Linux がパーティションを取り扱う方法、実際には、一般にディスクという記憶媒体を取り扱う方法とはまったく異なっています。主な違いは、さまざまなパーティションが、単一のファイル群とディレクトリ群をサポートする為に必要な記憶媒体の一部を形成するために使用されることです。これは マウント として知られる処理を通じて、パーティションとディレクトリを関連づけることによって行われます。パーティションをマウントすることで指定されたディレクトリ (マウントポイント と呼ばれます)を通じてその記憶媒体が利用可能になります。
例えば、パーティション /dev/hda5 が /usr/ 上にマウントされているすると、/usr/ 配下のすべてのファイルとディレクトリが物理的に /dev/hda5 上に存在すると言う意味になります。したがって、ファイル /usr/share/doc/FAQ/txt/Linux-FAQ は /dev/hda5 に格納されますが、ファイル /etc/X11/gdm/Sessions/Gnome はそこには格納されません。
この例で続けて行くと、/usr/ の下にある1つまたはそれ以上のディレクトリを他のパーティション用のマウントポイントにもすることができます。例えば、あるパーティション (/dev/hda7 とする)を /usr/local/ にマウントしたとすると、これは /usr/local/man/whatis が /dev/hda7 上に存在して /dev/hda5 上ではないと言う意味になります。
Red Hat Enterprise Linux インストールの準備のこの段階で、新しい OS で使用するパーティションの数とサイズについて少々配慮する必要があります。「パーティションの数」の問題は Linux コミュニティで活発な意見が交換されていますが、未だに解決の糸口が見えないようです。パーティションの数は意見の数と同じくらいに多く考えられますので、そのうち適切な数が見つかるとしておくのが無難でしょう。
これを理解して頂いた上で、とくに必要がなければ、少なくとも次のパーティションを作成することをおすすめします。swap、/boot/ (または Itanium システムの場合、/boot/efi/ パーティション)、、Itanium システムの場合、/var/ パーティション、、/ (root)。
詳細については 項4.16.4 を参照してください。
| [1] | 図とは異なり、ブロックのサイズは 本当に 極小単位で固定されています。平均的なディスクドライブは百万単位のブロックを持っていることを覚えておいてください。ここではわかりやすいように、説明と図の細かな矛盾は無視してください。 |