[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 次のページ ]

Debian GNU/Linux 3.0 のインストール (Intel x86)
第 6 章 - Debian でのパーティション分割


メニューの ``ハードディスクのパーティションを切る'' という項目を選ぶと、 パーティション分割可能なディスクの一覧が表示され、 パーティション分割ソフトウェアが実行できます。 ここでは ``Linux native'' (type 83) のディスクパーティションを 少なくとも 1 つ作成しなければなりません。 また最低 1 つは ``Linux swap'' (type 82) パーティションを作成したほうが良いでしょう。


6.1 Debian のパーティションとそのサイズを決める

必要最小限の構成でも、GNU/Linux は自身のために 少なくとも 1 つのパーティションを必要とします。 オペレーティングシステム全体、アプリケーション、 個人ファイルは 1 つのパーティションに収めることが可能です。 多くの人はこれと別にスワップパーティションも必要だと思っているようですが、 これは厳密には正しくありません。 「スワップ」とはオペレーティングシステムが用いる メモリの一時退避用空間で、これを用いると システムはディスク装置を「仮想メモリ」として使えるようになります。 スワップを独立したパーティションに割り当てると、 Linux からの利用がずっと効率的になります。 Linux は普通のファイルを無理矢理スワップとして 利用することもできますが、これはお勧めできません。

とはいえ大抵の人は、この最低限必要な数よりは多くのパーティションを GNU/Linux に割り当てます。 ファイルシステムをいくつかのより小さなパーティションに 分割する理由は 2 つあります。 1 つめは安全性です。もし偶然に何かがファイルシステムを破壊したとしても、 一般的にその影響を被るのは 1 つのパーティションだけです。 そのため、システムの一部を (注意深く保持しておいたバックアップと) 置き換えるだけですみます。少なくとも、 いわゆる「ルートパーティション」は別にすることを考慮しましょう。 ここにはシステムの最も基本的な構成部分が収められており、 もし他のパーティションに破損が生じたとしても、 Linux を起動してシステムを補修できます。 システムをゼロから再インストールしなければ ならないようなトラブルが防げるのです。

2 つめの理由は、一般的にビジネスで使う際により重要になってくるものですが、 これはコンピュータの利用方法にかなり依存します。 何かが制御不可能になり、ディスクスペースを消費し始めたとします。 もしそのプロセスがルート特権を得てしまえば (システムは一般ユーザが使用できないディスク領域をある程度確保しています)、 気付いたときにはディスクスペースがなくなってしまっていることになるでしょう。 OS はスワップスペースの他にも、 さまざまな作業に実ファイルを利用する必要があるので、 これは問題の原因になります。 このようなことは、ローカルシステム以外の原因で生じることさえあります。 例えばスパムメールをたくさん受け取ると、 パーティションは簡単に溢れてしまうかもしれません。 複数のパーティションを用いて、 このような問題の多くからシステムを保護するのです。 もう一度電子メールの例を取り上げるならば、/var/spool/mail に独自のパーティションを割り当てれば、スパムメールを取り込んでも、 システムの大半は問題なく動作するでしょう。

たくさんのパーティションを利用する際に、唯一不利な点となるのは、 あらかじめどのようなパーティションが必要となるかを予測するのが、 ほとんどの場合は難しいことです。 用意したパーティションが小さすぎると、 システムを再インストールしたり、 容量の足りないパーティションからしょっちゅうファイルを移動して、 スペースを空けたりしなければならないでしょう。 一方あまりに大きなパーティションを用意すれば、 他で利用できるスペースを浪費しかねません。 近頃はディスクも安価になったとはいえ、お金を無駄に使う必要はないでしょう?


6.2 ディレクトリツリー

ディレクトリとファイルの名前について、Debian GNU/Linux は Filesystem Hierarchy Standard に従っています。この標準を用いると、ユーザやプログラムは、 ファイルやディレクトリの場所を予想しやすくなります。 根っこ (ルート=root) にあるディレクトリは、単にスラッシュ / で表されます。ルートのレベルには、 Debian システムでは必ず以下のようなディレクトリが含まれます。

            bin       基本的なコマンドバイナリ
            boot      ブートローダのスタティックなファイル
            dev       デバイスファイル
            etc       ホスト固有のシステム設定
            home      ユーザのホームディレクトリ
            lib       基本的な共有ライブラリとカーネルモジュール
            mnt       ファイルシステムを一時的にマウントするためのポイント
            proc      システム情報を含む仮想ディレクトリ
            root      root ユーザのホームディレクトリ
            sbin      基本的なシステムバイナリ
            tmp       一時ファイル用
            usr       第 2 階層
            var       可変データ
            opt       アドオンアプリケーションソフトウェアパッケージ

以下の一覧は、ディレクトリやパーティションについて 重要となる考え方を説明したものです。


6.3 PC ディスクの制限

PC の BIOS は、 一般にディスクパーティションに余分な制限を追加することになります。 1 つのドライブに作成できる「基本」および「論理」 パーティションの個数に制限があることもその一つです。 さらに、1994 年から 1998 年の間の BIOS には、 BIOS がドライブのどの場所を起動できるか、についても制限があります。 より詳細な情報については、 Linux Partition HOWTOPhoenix BIOS FAQ をご覧になっていただくとして、 この節では、一般によくある状況下で役立つ概要を簡単に紹介します。

「基本」パーティションは、PC ディスクに元々あった パーティションの仕組みです。 しかし、その個数はたった 4 つに限られています。 このような制限を乗り越えるため、 「拡張」および「論理」パーティションが考案されました。 基本パーティションの 1 つを拡張パーティションとして設定すると、 そのパーティションの全領域を、 いくつかの論理パーティションにさらに分割することができます。 ひとつの拡張パーティションには、論理パーティションを 60 個まで作成できます。 ただし、1 つのディスクに作成できる拡張パーティションは 1 つだけです。

Linux におけるドライブあたりのパーティション数の制限は、 SCSI ディスクの場合 15 個まで (基本パーティション 3 個と論理パーティション 12 個)、 IDE ディスクの場合は 63 個まで (基本パーティション 3 個と論理パーティション 60 個) です。 ただし通常の Debian GNU/Linux システムでは、 パーティション用に 20 のデバイスしか用意していないので、 20 以上のパーティションを持つディスクにインストールするには、 まず最初にそれらのパーティション用のデバイスを自分で作成する必要があります。

大きな IDE ディスクを使う場合に、そのディスクが LBA アドレスやオーバーレイドライバ (ハードディスクメーカーから提供されることがあります) を使っていなければ、ブートパーティション (カーネルイメージが置かれるパーティション) はハードドライブの先頭から 1024 シリンダ以内に置かなければなりません (BIOS 変換がないと、だいたい 524 メガバイトです)。

1995-98 あたり (メーカーによって異なります) 以降に製造され、 ``Enhanced Disk Drive Support Specification'' をサポートしている BIOS には、この制限は当てはまりません。 Lilo (Linux ローダ) と Debian の代替ローダ mbr とは、カーネルをディスクから RAM に読み込む際に、 いずれも BIOS を利用しなければなりません。 BIOS の int 0x13 ラージディスクアクセス拡張が利用できるなら そちらが利用されますが、 できない場合は旧式のアクセスインターフェースが利用されます。 そして後者では 1023 シリンダまでしかアクセスできません。 なお、一度 Linux が起動してしまえば、 Linux は ディスクアクセスに BIOS を利用しませんから、 お使いの BIOS が何であれ、この制限を気にする必要はありません。

大きなディスクをお持ちの場合は、 シリンダ変換機構を使う必要があるかもしれません。 これは BIOS の設定プログラムの LBA (Logical Block Addressing) とか CHS 変換モード (``Large'') といった項目から設定できるでしょう。 大きなディスクに関する問題についての詳細な情報については、 Large Disk HOWTO をご覧ください。 なお、シリンダ変換機構を使う場合は、 ブートパーティションを 変換後の 第 1024 番シリンダより前に収めなければなりません。

お勧めは、起動用の小さなパーティション (5-10MB あれば充分です) をディスクの先頭に作成し、 残りの領域にお好みに合わせて他のパーティションを作成することです。 このブートパーティションは、Linux カーネルが収められる /boot ディレクトリ にマウントしなければなりません。 この設定なら、LBA や ラージディスク CHS 変換を利用していたとしても、 また、お使いの BIOS がラージディスクアクセス拡張をサポートしていたとしても、 いずれのシステムでも問題ないでしょう。


6.4 お勧めするパーティションルール

新規ユーザの人や、Debian マシンを個人で使う人、家庭で使うシステム、 その他ユーザ 1 人で使うようなマシンには、 / パーティションひとつ (とスワップ) で済ますのが 恐らくもっとも簡単で、素直なやり方でしょう。 しかし大きなディスク (20GB) ではこれだと問題が起きるかもしれません。 ext2 の動作に関する制限から、ひとつのパーティションに 6GB 程度より大きなサイズをあてがうのは避けたほうが良いでしょう。

マルチユーザシステムでは、/usr, /var, /tmp, /home をそれぞれ / パーティションとは別の 独立したパーティションにするのが良いでしょう。

Debian のディストリビューションには含まれていないプログラムを たくさんインストールするつもりがあるなら、 /usr/local パーティションが必要となるかもしれません。 またメールサーバとして利用するなら、 /var/spool/mail を別のパーティションにする 必要があるかもしれません。 /tmp に 独自のパーティション (例えば 20 から 50MB くらい) を割り当てるのも、 多くの場合は良い考えです。 たくさんのユーザアカウントを抱えるサーバを設置するなら、 独立した大きな /home パーティションを用意することも、大抵は良い考えです。 このように、利用法に応じて、 パーティション配置の状況はコンピュータによってさまざまです。

とても複雑なシステムのためには、 Multi Disk HOWTO をご覧になるとよいでしょう。 こちらには、ISP やサーバの管理者の関心を持つような事柄の多くが、 詳細な情報として含まれています。

スワップスペースの問題に関しては、さまざまな見方があります。 大雑把ながらも悪くないやり方は、 搭載しているシステムメモリと同じ容量のスワップを用意することです。 ただし多くの場合は 16MB 以下にすべきではありません。 もちろんこのルールにも例外はあります。 例えば 256MB ほどの RAM を積んだマシンで、 10000 変数の連立方程式を解こうとするならば、 1GB (もしくはそれ以上) のスワップを必要とするでしょう。

32-bit のアーキテクチャ (i386, m68k, 32-bit SPARC, PowerPC) におけるスワップパーティションの最大サイズは 2GB です (Alpha と SPARC64 では実質的に無限と言えるほど大きなサイズを使えます)。 これはほとんどの場合において充分な大きさであるはずです。 しかし、もしこれ以上の大きさのスワップ領域が必要なら、 別のディスク (あるいは「スピンドル」) にスワップ領域を分散したり、 また可能ならば、SCSI や IDE の別々のチャンネルに スワップ領域を分散したりするよう試みるべきでしょう。 このようにすると、カーネルは複数のスワップ領域を バランス良く使おうとするので性能が向上します。

一例として、著者の 1 人の自宅用マシンを紹介しましょう。 このマシンは 32MB の RAM と /dev/hda に 1.7GB IDE の ハードディスクを搭載しています。 /dev/hda1 には別の OS 用に 500MB のパーティションがあります (それほど使うわけではないので 200MB 程度にするべきでした)。 /dev/hda3 を 32MB のスワップパーティションとして使用し、 残り (約 1.2GB の /dev/hda2) を、 Linux パーティションにしています。

もっと例を見たい方は、 Partitioning Strategies をご覧ください。システムのインストールが完了した後に 入れることになるであろう各タスク (task) の占める領域については タスクに必要なディスク容量, 第 11.4 節 を調べてください。


6.5 Linux におけるデバイス名

Linux におけるディスクおよびパーティションの命名法は、 他のオペレーティングシステムとは異なっています。 パーティションを作成したりマウントしたりする際には、 Linux がどのようなディスク名を用いるのか知っておく必要があります。 以下は基本的な命名法の仕組みです。

各ディスクのパーティションは、 ディスク名に十進数を付け加えることで表します。 例えば ``sda1'' と ``sda2'' は、 それぞれシステムの第 1 SCSI ディスクドライブの第 1, 第 2 パーティションを表します。

実際にありそうな例を挙げてみましょう。 2 つの SCSI ディスクを持つシステムで、 一方の SCSI アドレスが 2、もう一方の SCSI アドレスが 4 だとします。 最初のディスク (アドレス 2) は ``sda''、 2 つ目のディスクは ``sdb'' と名付けられます。 もし ``sda'' ドライブに 3 つのパーティションがあるなら、 それらは ``sda1'', ``sda2'', ``sda3'' と名付けられます。 ``sdb'' ディスクとそのパーティションについても同様です。

2 つの SCSI ホストバスアダプタ (コントローラ) があると、 ドライブの順序が混乱するかもしれないので注意してください。 ドライブのモデルや容量を知っているなら、 ブートメッセージに注目するのが最も良い解決策でしょう。

Linux は基本パーティションを、 ドライブ名に 1 から 4 の数字をつけた名前で表します。 例えば、第 1 IDE ドライブの第 1 基本パーティションは /dev/hda1 となります。 論理パーティションは、5 から始まる数字で表され、 このドライブの第 1 論理パーティションは /dev/hda5 になります。 また、拡張パーティションは 論理パーティションを含む基本パーティションのことですが、 これ自体は使用できないことも覚えておいてください。 このことは IDE ディスクにも SCSI ディスクにも当てはまります。


6.6 Debian のパーティション分割プログラム

いろいろな種類のパーティション分割ツールが Debian 開発者によって組み込まれ、 さまざまな形式のハードディスクやコンピュータアーキテクチャで 動作するようになっています。 以下に、このアーキテクチャで使えるプログラムのリストを示します。

fdisk
上級魔術師用の、Linux オリジナルのディスクパーティション作成プログラムです。 fdisk man ページをお読みください。

既にコンピュータに FreeBSD のパーティションが存在する場合は注意が必要です。 インストール用のカーネルはこのパーティションをサポートしていますが、 fdisk の表示方法では名前が異なります (そもそも表示されないかもしれません)。 Linux+FreeBSD HOWTO をご覧になってください。

cfdisk
一般ユーザのための、 操作の容易なフルスクリーン表示ディスクパーティション作成プログラムです。 cfdisk man ページ をお読みください。

cfdisk は FreeBSD パーティションを全く理解しません。 従って、こちらでも、デバイス名が変わってしまうかもしれません。

``ハードディスクのパーティションを切る'' を選択すると、 上記のプログラムの 1 つがデフォルトで実行されます。 もしデフォルトで実行されるプログラムがお望みのものでない場合は、 まずそのディスクパーティション作成プログラムを終了してからシェル (tty2) を起動し、お望みのプログラムの名前を (必要なら引数を添えて) 直接入力してください。 プログラムを終了したら、dbootstrap の ``ハードディスクのパーティションを切る'' という作業段階はとばして、次に進んでください。

ide ディスクに 20 以上のパーティションを作ろうとしている場合は、 21 番目以降のパーティションに対応するデバイスを作成しなければなりません。 適切なデバイスが存在しないと、 パーティションを初期化した後の次のステップが失敗します。 例として、21 番目のパーティションが初期化できるよう、 デバイスを追加するためのコマンド群を示します。 これらは tty2 や ````シェルを実行する'''' から実行できます。

     cd /dev
     mknod hda21 b 3 21 
     chgrp disk hda21
     chmod 660 hda21

ターゲットシステムにも正しいデバイスがないと、 新しいシステムで起動したときに失敗します。 カーネルとモジュールをインストールしたら、 以降を実行してください。

     cd /target/dev
     mknod hda21 b 3 21 
     chgrp disk hda21
     chmod 660 hda21

ブートパーティションを「起動可能 (Bootable)」にマークするのを お忘れなく。


6.7 ``スワップパーティションの初期化と有効化''

ディスクパーティションを 1 つ作成したら、これが次の作業になります。 行う作業を、スワップパーティションの初期化と利用開始・ 初期化済みパーティションの利用開始・ スワップパーティション無しでインストール、 の 3 つの中から選べます。 スワップパーティションの再初期化はいつでも行えますから、 よく分からない場合は ``スワップパーティションの初期化と有効化'' の項目を選んでください。

このメニュー項目を選択すると、まず最初に ``スワップデバイスとして有効化するパーティションを選択してください。'' という見出しのついたダイアログボックスが表示されます。 すでにご自分で設定されたスワップパーティションが、 標準のデバイスとして表示されているはずです。 そうなっていたら、単に Enter を押してください。

初期化を行うとそのパーティション上のデータはすべて破壊されるので、 ここで確認を求めるメッセージが表示されます。 もし問題がないようでしたら ``はい'' を選んでください。 初期化プログラムが実行されると画面が点滅します。

スワップパーティションは作成しておくことを強くお勧めしますが、 システムに 12MB 以上の RAM があれば、 どうしても作成したくない場合はしなくてもかまいません。 その場合はメニューから ``スワップパーティションなしで済ませる'' を選んでください。


6.8 ``Linux パーティションの初期化''

ここでの次の選択項目は ``Linux パーティションの初期化'' のはずです。 もしそうでなければ、 ディスクのパーティションの設定を終了していないか、 あるいはスワップパーティションの選択をしていないかです。

こちらでは Linux パーティションの初期化、 またはすでに初期化された Linux パーティションのマウント、 を行えます。 dbootstrap には、 古いシステムを壊さずにシステムのアップグレードをするような機能が ないことにご注意ください。 システムのアップグレードをしたい場合は、 Debian そのものにアップグレード機能がありますから、 dbootstrap を使う必要はありません。 Debian 3.0 へのアップグレードの手順については、 アップグレードの手引き を読んでください。

逆に、空ではない古いディスクパーティションを使っていて、 その中身をきれいにしたい場合は、 ここでそれらの初期化を行ってください (これによりすべてのファイルが消去されます)。 またさらに、 先の作業で作成したパーティションもすべて初期化してください。 この時点で、初期化せずにマウントしているパーティションがあるとしたら、 考えられる唯一の理由は、 いまのと同じインストールフロッピーを用いて インストール作業の一部を行っていたから、でしょう。

``次'' というメニュー項目を選んで、 / ディスクパーティションの初期化とマウントを行ってください。 最初にマウントや初期化をしたパーティションが / (「ルート」と発音します) としてマウントされます。

ここで ``Pre-2.2 Linux Kernel Compatibility?'' を保つかどうかを 尋ねられます。``いいえ'' と答えると、2.0 カーネルではサポートされていない ファイルシステムの機能をいくつか使うことになりますので、 2.0 以前の Linux カーネルはこのシステムでは動作しなくなります。 2.0 以前の年代物のカーネルはもう使わないことが分かっているなら、 ここで ``いいえ'' と答えることによって、多少の利益を受けることができます。

ここでは不良ブロックをスキャンするかどうかも尋ねられます。 デフォルトではこのスキャンはスキップすることになっています。 この作業は時間がかかりますし、 最近のディスクドライブコントローラは内部で 不良ブロックを検知・処理できるからです。 しかし、自分のディスクドライブの品質についてよく分からない場合や、 やや古いシステムを使っている場合は、 多分不良ブロックスキャンを行っておいた方が良いでしょう。

次に出るプロンプトは、単に確認を求めるものです。 初期化を行うとパーティションの全てのデータが破壊されますので、 ここで本当に作業を行ってよいかどうか尋ねられます。 続いてそのパーティションがルートパーティションとして / にマウントされることが伝えられます。 [4]

/ パーティションをマウントしたあと、 初期化してマウントしたい別のファイルシステムがある場合は、 ``別手順'' メニュー項目を選ぶ必要があります。 これは /boot, /var, /usr などをこの時点で初期化・マウントして、 独立したパーティションにしたい場合に使います。


6.9 ``以前に初期化されたパーティションのマウント''

``Linux パーティションの初期化'', 第 6.8 節 の代わりに ``以前に初期化されたパーティションのマウント'' の作業を行うこともできます。 中断してしまったインストールを再開する場合や、 すでに初期化済みのパーティションをマウントしたい場合は、 こちらの作業を行ってください。

ディスクレスワークステーションにインストールしている場合は、 この時点でリモート NFS サーバからルートパーティションを NFS マウントすべきでしょう。 標準的な NFS の文法にしたがって、つまり サーバの名前か IP アドレス:サーバの共有パス のように NFS サーバへのパスを指定してください。 同様にさらに他のファイルシステムをマウントする必要がある場合には、 この時点で行ってください。

まだ自分のネットワークを ``ネットワークの設定'', 第 7.7 節 の説明の通りに設定していなければ、 NFS インストールを選択するとネットワークを設定するよう促されます。


6.10 dbootstrap がサポートしないパーティションをマウントする

特殊な状況下では、dbootstrap は (ルートにせよ、それ以外にせよ) ある特定のファイルシステムのマウントを行えないかもしれません。 この場合、GNU/Linux の扱いに慣れたユーザであれば、 単に Alt キーと F2 キーを同時に押して tty2 に行き、そこで必要なコマンドを手動で実行すれば、 その問題のパーティションをマウントできます。

新しいシステムのルートパーティションをマウントする場合は、 それは /target にマウントし、 dbootstrap に戻って作業を続けてください (多分 ``パーティションテーブルを見る'' の段階をもう一度実行して、 インストール処理のどの段階にいるのかを dbootstrap に再計算させるといいでしょう)。

ルートではないパーティションの場合は、忘れずに fstab の編集も行って、再起動したときにそのパーティションが マウントされるようにしなければなりません。 このファイル (/target/etc/fstab) を編集するのは、 もちろん dbootstrap がこのファイルを書き出してからにしてください。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 次のページ ]

Debian GNU/Linux 3.0 のインストール (Intel x86)

version 3.0.24, 2002/12/18

Bruce Perens
Sven Rudolph
Igor Grobman
James Treacy
Adam Di Carlo