Gentoo Logo

[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


4. ディスクの準備

目次:

4.a. ブロックデバイス入門

ブロックデバイス

Linuxファイルシステム、パーティション、ブロックデバイスを含めて、Gentoo LinuxとLinux全般でのディスクに適している側面を詳しく見て行きましょう。 そして、ディスクとファイルシステムの一部始終を理解してもらった上で、Gentoo Linuxのインストールの為にパーティションとファイルシステムのセットアップの手順を案内します。

初めに、ブロックデバイスを紹介します。 おそらく最も有名なブロックデバイスはLinux上で1番目のドライブ、すなわち/dev/sdaでしょう。 SCASIもしくはシリアルATAドライブは両方とも/dev/sd*という名前が付けられます。 カーネルで新しいlibataフレームワークを使用していれば、IDEドライブさえ/dev/sd*という名前が付けられます。 もし古いデバイスフレームワークを使用していたら、1番目のIDEドライブは/dev/hdaになるでしょう。

上記のブロックデバイスはディスクへの抽象的インターフェイスを表しています。 ユーザープログラムはドライブがIDEやSCSIもしくは他のどんなものかどうかを気にすること無く、ディスクと情報をやりとりするためにブロックデバイスを使用できます。 プログラムは簡単にディスク上の記憶領域をランダムアクセス可能な512Mバイトごとの連続したブロックとしてアドレスを指定できます。

パーティション

Linuxシステムを格納するのにディスクの全体を使用することは理論上可能ですが、実際にはほとんどそうはされません。代わりにディスク全体のブロックデバイスはもっと扱いやすいブロックデバイスにより小さく分割されます。x86システムではこれら分割されたものをパーティションと呼びます。

パーティションは以下の3つのタイプに分けられます。 基本拡張そして論理です。

基本パーティションはMBR(マスターブートレコード)にその情報が格納されているパーティションです。MBRはとても小さい(512バイト)ので、4つの基本パーティションだけが定義できます。(例えば、/dev/sda1から/dev/sda4)です。

拡張パーティションはより多くのパーティションが含まれた特殊な基本パーティションです。(これは拡張パーティションは4つの基本パーティションの1つで無ければならないということです)。こういったパーティションは元々あった訳ではありません。しかし4つのパーティションでは少なすぎるので、下位互換性を損なうこと無く構成仕様を拡張する為に生まれたものです。

論理パーティションは拡張パーティション内のパーティションです。これらの定義はMBRの中ではなく、拡張パーティション内で宣言されています。

高度な記憶領域

x86のインストールCDではEVMSとLVM2のサポートを提供します。EVMSやLVM2ではパーティション設定の柔軟性が増します。このインストールハンドブックでは、"通常"のパーティションに焦点を当てますが、EVMSとLVM2もサポートされていることを知っておくのも良いことです。

4.b. パーティション構成を計画する

通常のパーティション構成

もしシステムのパーティション構成を編集するのに興味が無ければ、このハンドブックを通して使っているパーティション構成を使用できます。

パーティション ファイルシステム サイズ 種別
/dev/sda1 ext2 32M ブートパーティション
/dev/sda2 (swap) 512M スワップパーティション
/dev/sda3 ext3 残りのディスク領域 ルートパーティション

もしパーティション(もしくは論理ボリューム)がどれぐらいのサイズにすればいいのか、どれだけの数のパーティション(もしくはボリューム)かにすべきかを知りたいのならば読み進んでください。そうでなければ、今からパーティション作成にfdiskを使うを読みながら、ディスクのパーティション作成作業を進めてください。

パーティション数とその大きさ

パーティションの数は環境に大きく依存します。例えば、多数のユーザーがいるのならセキュリテイを強めバックアップを容易にする為に多分/homeを別にしたいでしょう。もしメールサーバーとして稼働させる為にGentooをインストールしようとしているのなら、全てのメールは /var内に保存されるので/varは別にすべきでしょう。ファイルシステムの良い選択はパフォーマンスを最大限にするでしょう。ゲームサーバーではほとんどのゲームサーバーパッケージが/optにインストールされるので、そこは別にされます。理由は/homeをセキュリティとバックアップの為に別にするのと同じようなものです。/usrは絶対に大きく取らなければならないです。大部分のアプリケーションが含まれるだけでなく、Portageツリーだけで、保存されるソースは別にしても500MB程度は取られます。

こういったように、どういうシステムにしたいのかにかなり依存します。分割されたパーティションまたはボリュームには以下の利点があります。

  • それぞれのパーティションまたはボリュームに最適なパフォーマンスを上げるファイルシステムを選択できます。
  • パーティションを分けておくと、あるゾンビプロセスがパーティションまたはボリュームにデータを書き込み続けてシステム全体の空き容量を使い果たすのを防ぐことができます。
  • 必要ならば、並行した複数のチェックを行えるのでファイルシステムのチェック時間を減らせます。(この利点は複数のパーティションでよりも複数のディスクでより有効ですが)。
  • セキュリティは読込専用、nosuid(setuidビットは無視されます)、noexec(実行ビットは無視されます)等でいくつかのパーティションをマウントすることで増大します。

しかし、複数のパーティションには一つ大きな欠点があります。 正しく設定しないと、空き容量がかなりあるパーティションと空き容量の無いパーティションのあるシステムになってしまうでしょう。また、SCSIとSATAでは15個迄というパーティション数の制限があります。

パーティション設定例として、ラップトップのデモ機(ウェブサーバー、メールサーバー、gnome等を含む)として使われている20GBのディスクを見ていただききましょう。

コード表示 2.1: ファイルシステム使用例

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda5     ext3    509M  132M  351M  28% /
/dev/sda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/sda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/sda8     ext3   1011M  483M  477M  51% /opt
/dev/sda9     ext3    2.0G  607M  1.3G  32% /var
/dev/sda1     ext2     51M   17M   31M  36% /boot
/dev/sda6     swap    516M   12M  504M   2% <not mounted>
(将来使用のための未パーティション領域: 2 GB)

/usrはここでかなりの量(83%使用)を占めていますが、一旦全てのソフトがインストールされると /usrはそんなに増えて行きません。/varに数ギガバイトのディスク容量を割り当てるのは多過ぎる様に思われますが、Portageシステムではパッケージをコンパイルするのに、標準でこのパーティションを使用する事を心に留めておいて下さい。もし/varを1GBのようなもっと適当なサイズにしておきたい場合は、OpenOfficeのような巨大なパッケージをコンパイルするのに十分な空き容量のあるパーティションを指すように、/etc/make.confPORTAGE_TMPDIRの値を変える必要があります。

4.c. パーティション作成にfdiskを使う

以下の部分では先に紹介した例のパーティション設定の作成方法を説明します。

パーティション 種別
/dev/sda1 ブートパーティション
/dev/sda2 スワップパーティション
/dev/sda3 ルートパーティション

パーティションの割当てを自分の望むように変更してください。

現在のパーティションの割当てを見る

fdiskはディスクをパーティションに分割するのに高機能かつ普及しているツールです。 さあfdiskを実行しましょう。(例では/dev/sdaを使っています)。

コード表示 3.1: fdiskを起動する

# fdisk /dev/sda

fdiskを起動すると、下記の様なプロンプトが出ます。

コード表示 3.2: fdiskプロンプト

Command (m for help): 

現在のディスクのパーティション情報を表示するにはpを入力します。

コード表示 3.3: パーティション情報例

Command (m for help): p

Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        14    105808+  83  Linux
/dev/sda2            15        49    264600   82  Linux swap
/dev/sda3            50        70    158760   83  Linux
/dev/sda4            71      2184  15981840    5  Extended
/dev/sda5            71       209   1050808+  83  Linux
/dev/sda6           210       348   1050808+  83  Linux
/dev/sda7           349       626   2101648+  83  Linux
/dev/sda8           627       904   2101648+  83  Linux
/dev/sda9           905      2184   9676768+  83  Linux

Command (m for help): 

このディスクの例では7つのLinuxファイルシステム("Linux"と表示されてた各パーテイション)とスワップ("Linux swap"と表示されたパーテイション)で構成するように設定されています。

全てのパーティションを削除する

最初に現在の全てのパーティションをディスクから削除します。dを入力するとパーティションを削除します。例えば、現在の/dev/sda1を削除するには、以下のようにします。

コード表示 3.4: パーティションを削除する

Command (m for help): d
Partition number (1-4): 1

パーティションの削除準備ができました。これでpと入力してもパーティションは表示されませんが、変更が保存されるまで実際には削除されません。もし間違えてしまって変更を保存せずに取消たいときはすぐにqと入力し、エンターキーを押してください。これでパーティションは削除されません。

さあ、これでシステム上の全パーティションを削除したい!と思っているでしょう?パーティションを表示するのにpを、 削除するのにdとパーティション番号を繰り返し入力してください。最後にパーティションテーブルに何も無くなれば終了です。

コード表示 3.5: 空のパーティションテーブル

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

さて今はメモリー上のパーティション構成は空になりました。パーティションを作成する準備が整いました。先程検討したように、通常のパーティション構成を使うことにしましょう。同じパーティション構成にしたくなければ、当然ですがこのハンドブックの例の通りにしてはいけません。もちろん同じパーティション構成にしたくなければ、厳密に案内にならわないでください。

ブートパーティションを作成する

最初に小さなブートパーティションを作成します。新しいパーティションを作成するにはnと入力します。そして基本パーティションを選択するのにpと入力するのに続き、1番目の基本パーティションを選択するのに1と入力します。最初のシリンダーが表示されると、エンターキーを押してください。最後のシリンダーが表示されたら、32Mバイトサイズののパーティションを作成するのに+32Mと入力し、ブート可能(bootable)フラグをセットしてください。

コード表示 3.6: ブートパーティションを作成する

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (エンターキーを押す)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

さて、pと入力すれば以下のパーティションテーブル表示が見られるはずです。

コード表示 3.7: 作成されたブートパーティション

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1          1        14    105808+  83  Linux

このパーティションをブート可能にする必要があります。このパーティションにブート可能フラグを付加するにはaと入力します。もう一度pを入力すると、"Boot"欄に*が付いているのがわかるでしょう。

スワップパーティションを作成する

さあスワップパーティションを作成しましょう。この作業のためには、新規パーティションを作成するのにn、基本パーティションを選択するのにpを入力します. そして2番目の基本パーティション、この例では/dev/sda2を作成するのに2と入力します。最初のシリンダーが表示されると、エンターキーを押してください。最後のシリンダーが表示されたら、512Mバイトサイズののパーティションを作成するのに+512Mと入力してください。この作業の後、パーティションタイプを設定するのにtと入力します。先程作成したパーティションを選択するのに2と入力して、このパーティションタイプを"Linux Swap"にする為に82と入力します。これらの手順が完了後、pを入力すれば下記のようなパーティションテーブルが表示されるはずです。

コード表示 3.8: スワップパーティション作成後のパーティションテーブル

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1 *        1        14    105808+  83  Linux
/dev/sda2         15        81    506520   82  Linux swap

ルートパーティションを作成する

最後にルートパーティションを作成しましょう。この作業のためには、新規パーティションを作成するのにn、基本パーティションを選択するのにpを入力します. そして3番目の基本パーティション、この例では/dev/sda3を作成するのに3と入力します。最初のシリンダーが表示されると、エンターキーを押してください。最後のシリンダーが表示されたら、ディスクの残りの空き容量を確保する為にエンターキーを押します。これらの手順が完了後、pを入力すれば下記のようなパーティションテーブルが表示されるはずです。

コード表示 3.9: ルートパーティション作成後のパーティションテーブル

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1 *        1        14    105808+  83  Linux
/dev/sda2         15        81    506520   82  Linux swap
/dev/sda3         82      3876  28690200   83  Linux

パーティションの割当てを保存する

パーティションの割当てを保存して、fdiskを終了するにはwを入力します。

コード表示 3.10: 保存してfdiskを終了する

Command (m for help): w

これでパーティションが作成されましたので、ファイルシステムの作成に進むことができます。

4.d. ファイルシステムを作成する

はじめに

さてパーティションが作成されましたので、それぞれにファイルシステムを作成するときが来ました。 もしファイルシステムを選ぶことに興味がなくて、このハンドブックのデフォルトのものを使うことで満足ならば、パーティションにファイルシステムを適用するに進んでください。そうでなければ利用可能なファイルシステムに関して知るために読み進めてください...。

Filesystems

Linuxカーネルでは様々なファイルシステムをサポートしています。 ここではLinuxシステムの多くで共通して使われているext2、ext3、ReiserFS、XFS、JFSについて説明します。

ext2は実証済みで真のLinuxファイルシステムですがメタデータジャーナリングを持ちません。 これは起動時の定期のext2ファイルシステムのチェックにかなりの時間が掛かることもあるということです。 現在、整合性のチェックをとても早く終わらせることのできる次世代のジャーナリングファイルシステムの選択肢があります。 そのために一般的には非ジャーナリングファイルシステムより好まれています。 ジャーナリングファイルシステムはファイルシステムの不整合状態の発生やシステム起動時の大幅な遅延を防ぎます。

ext3はext2ファイルシステムのジャーナル化バージョンです。 full data及びordered dataジャーナリングの様に優れたジャーナリングモードに加えて、素早い回復のためのメタデータジャーナルを提供します。 ほぼすべての状況下で高いパフォーマンスを上げることができるHtreeインデックスを使用しています。 要するにext3は素晴らしいファイルシステムだということです。 ext3はすべての目的、すべてのプラットフォームに推奨されるファイルシステムです。

JFSはIBMの高性能なジャーナリングファイルシステムです。 JFSは軽くて速くて信頼できるB+treeに基づくファイルシステムで、様々な状況下で良いパフォーマンスを上げます。

ReiserFSはB+treeに基づくジャーナル付きのファイルシステムです。 全般的に高パフォーマンスであり、特により多くのCPUサイクルを犠牲にしてたくさんの小さなファイルを扱うようなときに顕著です。 ReiserFSは他のファイルシステムと比べるとあまりメンテナンスされていないようです。

XFSは堅牢という特徴を持ち、拡張性に最適化されたメタデータジャーナリングを持つファイルシステムです。 XFSは様々なハードウェアの問題にあまり寛容ではないようです。

パーティションにファイルシステムを適用する

パーティションやボリュームにファイルシステムを作成するには、それぞれのファイルシステムに合った利用可能なツールがあります。

ファイルシステム 作成コマンド
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

例えば、 ブートパーティション(この例では/dev/sda1)をext2に、ルートパーティション(この例では/dev/sda3)をext3(今回の例として)にするには、以下の様にします。

コード表示 4.1: パーティションにファイルシステムを適用する

# mke2fs /dev/sda1
# mke2fs -j /dev/sda3

さあ新しく作成されたパーティション(もしくは論理ボリューム)にファイルシステムを作成しましょう。

スワップパーティションを有効にする

mkswapはスワップパーティションを初期化するのに使うコマンドです。

コード表示 4.2: スワップパーティションを初期化する

# mkswap /dev/sda2

スワップパーティションを有効にするにはswaponを使用します。

コード表示 4.3: スワップパーティションを有効にする

# swapon /dev/sda2

上記のコマンドでスワップを作成して有効にしましょう。

4.e. マウント

さてパーティションが初期化されてファイルシステムが収まったので、それらのパーティションをマウントするときが来ました。mountというコマンドを使います。作成したそれぞれのパーティション用にマウントに必要なディレクトリを作成するのを忘れないでください。例ではルートとブートパーティションをマウントします。

コード表示 5.1: パーティションをマウントする

# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot

注意: もし/tmpを別のパーティションとして置きたいのであれば、マウント後にパーミッションを変更するのを忘れないでください。: chmod 1777 /mnt/gentoo/tmp。これは/var/tmpも同様です。

procファイルシステム(カーネルとの仮想インターフェイス)も/procにマウントする必要があります。しかし、最初にパーティション上に色々なファイルを置く必要があります。

Gentooインストールファイルをインストールするに進みましょう。


[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


印刷

全てを見る

更新日 2009年 1月 9日

このドキュメントのオリジナルバージョン の更新日は2009年 10月 4日

要約: Gentooをインストールするためには、必要なパーティションを作らなくてはなりません。 この章では、これから使用できるようにディスクをパーティションで区切る方法を説明します。

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

おぎうち やすお
翻訳

わただ ゆうすけ
翻訳

せーいち
翻訳

五十嵐 正尚
翻訳

武田 洋之
翻訳

村上 誠
翻訳

小林 弘樹
翻訳

真藤 直観
翻訳

萩原 佳明
翻訳

松葉
翻訳

中野 正智
翻訳

飴谷 茂寛
翻訳

村上 卓
翻訳

田中 裕也
翻訳

増田 昌也
翻訳

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.