2.6. ディスク領域の割り当て
戻る〓 | 第2章 FreeBSD のインストール | 〓次へ

## 2.6. ディスク領域の割り当て

次のメニューでは、ディスク領域を割り当てる方法を選択します。

図2.10 パーティション分割の選択

bsdinstall では、ディスク領域の割り当てのために 4 つの方法が用意されています。

- `Auto (UFS)` によるパーティションの分割では、 `UFS` ファイルシステムを使ってディスクパーティションを自動的に分割します。

- `Manual` によるパーティションの分割は、 高度な知識を持つユーザ向けで、 メニューオプションからカスタマイズしたパーティションを作成できます。

- `Shell` では、シェルプロンプトを起動し、 高度な知識を持つユーザが、 gpart(8), fdisk(8), bsdlabel(8) のようなコマンドラインのプログラムを実行して、 カスタマイズしたパーティションを作成できます。

- `Auto (ZFS)` によるパーティションの分割では、 root-on-ZFS システムを構築します。 GELI 暗号に対応した ブート環境 を構築することもできます。

この章では、 ディスクパーティションをレイアウトする際の検討事項を説明します。 その後、各パーティションの作成方法について説明します。

### 2.6.1. パーティションレイアウトのデザイン

ファイルシステムのレイアウトを行う際には、 ハードディスクの外周部は内周部よりもデータ転送が速いということを思い出してください。 これに従えば、 小さくて激しくアクセスされるファイルシステムを外周付近に、 `/usr` のようなより大きなパーティションはディスクの内側に配置すべきでしょう。 そのため、パーティションを作成する際には、`/`、 スワップ、`/var`, `/usr` のような順で作ってゆくのがよいでしょう。

`/var` パーティションのサイズは、 あなたが計算機をどのように使おうとしているかを反映します。 このパーティションには主としてメールボックスやログファイル、 プリンタスプールが置かれます。 メールボックスとログファイルは、 システムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長する可能性があります。 概して、ほとんどのユーザは、`/var` にギガバイト以上の空き容量を必要とはしないでしょう。

### 注記:

時には、たくさんのディスク容量が `/var/tmp` に必要になるときがあります。 新しいソフトウェアをインストールする際、 package のツールは、package の一時的なコピーを `/var/tmp` 以下に展開します。 `/var/tmp` 以下に十分なディスク容量が用意されていないと、 Firefox や LibreOffice のような、 大きなソフトウェア package のインストールが、 困難になることがあります。

`/usr` パーティションには、 FreeBSD Ports Collection およびシステムのソースコードを含む、 システムをサポートするのに必要な多くのファイル群が置かれます。 このパーティションには、 少なくとも 2 ギガバイトの容量を用意することをおすすめします。

パーティションのサイズを考える時、 必要量を念頭に置いてください。 別のパーティションには潤沢にスペースが余っているのに、 あるパーティションでスペースが足らないままというのは、 フラストレーションがたまるものです。

経験からスワップパーティションのサイズは物理メモリ (RAM) の 2 倍というのが一般的です。 RAM の少ないシステムでは、 もっとスワップを増した方が性能がよくなります。 スワップが少なすぎる設定は、 あなたが後にメモリを増設したときに問題を起すばかりではなく、 VM ページスキャニングコードの能率を落します。

複数の SCSI ディスクや異なるコントローラで操作される複数の IDE ディスクを持つ大規模なシステムでは、 それぞれのドライブ (4 台まで) にスワップを設定することを推奨します。 各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 カーネルは任意のサイズを扱うことができますが、 内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 スワップパーティションをほぼ同一のサイズにしておくことで、 カーネルはスワップスペースを最適なかたちでディスクをまたいでストライプさせることができます。 あなたが通常スワップをたくさん使わないとしても、 多くのスワップサイズを用意しておくと良いでしょう。 プログラムが暴走しても再起動させられる前に回復することが容易になります。

システムを適切にパーティション化することで、 小さいが書き込みの激しいパーティションによって引き起こされるフラグメント化を、 読み出し専門のパーティションにまで波及させずにすみます。 また、書き込みの激しいパーティションをディスクの周辺部に配置することで、 I/O パフォーマンスを増大させることができます。 大きなパーティション内の I/O パフォーマンスもまた必要とされているでしょうが、 ディスク周辺部へ移動させたとしても、 `/var` を周辺部に移動させることによって大きな効果が得られたのとは対照的に、 意味のあるパフォーマンスの増加は見込めないでしょう。

### 2.6.2. UFS を用いた Guided によるパーティションの分割

この方法を選択すると、 メニューには利用可能なディスクが表示されます。 複数のディスクが接続されている場合には、 FreeBSD をインストールするディスクを選択してください。

図2.11 複数のディスクから選択する

ディスクを選択したら、次のメニューでは、 ディスクのすべてにインストールを行うか、 または空き容量にパーティションを作成してインストールを行うかを設定します。 [ Entire Disk ] を選択すると、 一般的なパーティションレイアウトが自動的に作成されます。 [ Partition ] を選択すると、 ディスクの使用していない領域にパーティションレイアウトを作成します。

図2.12 Entire Disk または Partition の選択

[ Entire Disk ] を選択すると、 bsdinstall は、 ディスクの内容が消去されることを確認するダイアログを表示します。

図2.13 確認

次のメニューでは、 パーティションスキームタイプの一覧が表示されます。 amd64 コンピュータでは、通常 GPT が最も適切な選択となります。 GPT に対応していないような古いコンピュータでは、 MBR を使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられるものです。 表2.1「パーティションスキーム」 に詳細があります。

図2.14 パーティションスキームの選択

パーティションのレイアウトを作成したら、 インストールの条件を満たしているかどうかを深く確認してください。 [ Revert ] を選択すると、 パーティションをオリジナルの値にリセットします。 また、[ Auto ] を選択すると、 FreeBSD パーティションを自動的に作成します。 パーティションを手動で作成、変更、削除することもできます。 正しくパーティションを作成出来たら、 [ Finish ] を選択し、 インストールを進めてください。

図2.15 作成されたパーティションの確認

ディスクを一度設定すると、次のメニューは、 選択したハードドライブをフォーマットする前に、 設定を変更する最後のチャンスです。 もし変更が必要であれば、 [ Back ] を選択してメインのパーティションエディタまで戻ってください。 [ Revert & Exit ] を選択すると、 ハードドライブへの変更なしにインストールを終了します。 インストールプロセスを開始するのには、 [ Commit ] を選択してしてください。

図2.16 最後の確認

「配布ファイルのダウンロード」 に進んで、インストールプロセスを続けてください。

### 2.6.3. Manual によるパーティションの分割

この方法を選択すると、 パーティションエディタが起動します。

図2.17 Manual によるパーティションの分割

インストール先のドライブ (この例では `ada0`) を選び、 [ Create ] を選択すると、 利用可能なパーティションスキームの一覧が表示されます。

図2.18 手動でパーティションを作成する

amd64 コンピュータでは、通常 GPT が最も適切な選択となります。 GPT に対応していないような古いコンピュータでは、 MBR を使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられるものです。

表2.1 パーティションスキーム

省略形 | 説明
--- | ---
APM | PowerPC® で使われている Apple Partition Map
BSD | MBR を用いない BSD ラベル。 BSD 以外のディスクユーティリティは認識しないため、しばしば dangerously dedicated mode と呼ばれます。
GPT | GUID Partition Table (http://en.wikipedia.org/wiki/GUID_Partition_Table)
MBR | Master Boot Record (http://en.wikipedia.org/wiki/Master_boot_record)
VTOC8 | Volume Table Of Contents。 Sun SPARC64 および UltraSPARC コンピュータで使われます。

パーティションスキームを選択して作成した後で、 もう一度 [ Create ] を選択すると、 パーティションが作成されます。Tab キーを使ってカーソルをフィールド間で移動できます。

図2.19 手動でパーティションを作成する

標準の FreeBSD GPT のインストールでは、 少なくとも 3 つのパーティションが使われます。

- `freebsd-boot` - FreeBSD ブートコードを含んでいます。

- `freebsd-ufs` - FreeBSD UFS ファイルシステム。

- `freebsd-zfs` - FreeBSD ZFS ファイルシステム。 詳細については、 ( The Z File System (ZFS)) をご覧ください。

- `freebsd-swap` - FreeBSD スワップ空間。

利用可能な GPT パーティションタイプについては、gpart(8) をご覧ください。

複数のファイルシステムのパーティションを作成できます。 `/`, `/var`, `/tmp` そして `/usr` といった伝統的なパーティション分割のレイアウトを好む人もいます。 レイアウトの例が 例2.1「伝統的なファイルシステムのパーティションを作成する。」 にあります。

`Size` には、 K (キロバイト)、 M (メガバイト)、 G (ギガバイト) といった通常の省略形を使用出来ます。

### ヒント:

セクタを適切に配置することで、 最良のパフォーマンスを得ることができます。 また、パーティションサイズを 4K バイトの偶数倍にすると、 512 バイトまたは 4K バイトのセクタでドライブが配置しやすくなります。 一般的に、 4K の偶数倍の場所からパーティションが開始するように設定する簡単な方法は、 1M または 1G の偶数倍のパーティションサイズを用いることです。 ただし、例外があります。 freebsd-boot パーティションは、 ブートコードの制限により 512K 以下である必要があります。

ファイルシステムを持つパーティションでは、 `Mountpoint` が必要となります。 1 つの UFS パーティションだけを作成したのであれば、 マウントポイントは `/` となります。

`Label` は作成したパーティションを認識するための名前です。 ドライブ名や番号は、 ドライブが別のコントローラやポートに接続されると変わることがありますが、 パーティションラベルは変わりません。 `/etc/fstab` のようなファイルの中で、 ドライブ名やパーティション番号ではなく、ラベルを参照することにより、 システムがハードウェアの変更に対して、より寛容になります。 GPT ラベルは、 ディスクが接続されると `/dev/gpt/` に現れます。他のパーティションスキームでは別のラベルとなり、 `/dev/` 以下の異なるディレクトリにラベルが現れます。

### ヒント:

名前の衝突を避けるため、 各パーティションには、一意的な名前使ってください。 コンピュータ名、使用、位置情報を表す単語をラベルに追加できます。 たとえば、`lab` という名前のコンピュータの UFS の root パーティションには、 `labroot` または `rootfs-lab` といった名前を使ってください。

例2.1 伝統的なファイルシステムのパーティションを作成する。

伝統的なパーティションレイアウト (`/`, `/var`, `/tmp` および `/usr` ディレクトリが各パーティションの別のファイルシステム) を作成するには、 GPT パーティションスキームを作成し、 その後、示されているようにパーティションを作成してください。 示されているパーティションサイズは 20G のディスク用です。 ディスクにより多くの容量があれば、swap または `/var` パーティションを大きく取ると良いでしょう。 ここで示されているラベルには、 `example` を意味する `ex` が付けられていますが、 実際には上で説明したように、 これとは別のユニークなラベルをつけてください。

FreeBSD の `gptboot` は、 デフォルトでは最初に見つかった UFS パーティションが、 `/` パーティションであることを前提としています。

パーティションタイプ | サイズ | マウントポイント | ラベル
--- | --- | --- | ---
`freebsd-boot` | `512K` | 〓 | 〓
`freebsd-ufs` | `2G` | `/` | `exrootfs`
`freebsd-swap` | `4G` | 〓 | `exswap`
`freebsd-ufs` | `2G` | `/var` | `exvarfs`
`freebsd-ufs` | `1G` | `/tmp` | `extmpfs`
`freebsd-ufs` | デフォルト (ディスクの残りのすべての容量) | `/usr` | `exusrfs`

カスタムパーティションを作成したら、 [ Finish ] を選択して 「配布ファイルのダウンロード」 に進み、インストールを先に進めてください。

### 2.6.4. Root-on-ZFS を用いた Guided によるパーティションの作成

このパーティションの分割モードは、 ディスクのすべての領域に対して機能するので、 ディスク上にあるすべての内容が消去されます。 メインの ZFS 設定メニューには、 プールの作成をコントロールする数多くのオプションが用意されています。

図2.20 ZFS パーティションメニュー

このメニューで選択できるオプションは以下の通りです。

- `Install` - 選択したオプションでインストールを進めます。

- `Pool Type/Disks` - プールを構成する `Pool Type` およびディスクについて設定します。 ZFS の自動インストーラは、 現時点で、ストライプモードを除き、 単一のトップレベルの仮想デバイスの作成のみに対応しています。 より複雑なプールを作成するには、 「シェルモードによるパーティションの作成」 で説明されている方法で作成してください。

- `Rescan Devices` - 利用可能なディスクの一覧を再表示します。

- `Disk Info` - Disk Info メニューを使って各ディスクを調べることができます。 パーティションテーブルやそれ以外のデバイスモデルナンバーおよびシリアルナンバーといった情報も、 可能であれば調べることができます。

- `Pool Name` - pool の名前を設定します。 デフォルトの名前は zroot です。

- `Force 4K Sectors?` - 4K セクタを使用するようにします。 インストーラは、デフォルトで 4K の境界に整列するようにパーティションを自動的に作成し、 ZFS が 4K セクタを使用するようにします。 これは 512 バイトセクタのディスクでも安全で、 512 バイトのディスク上に作成されたプールが将来的に 4K セクタのディスクを追加できるようにしておくことには、 ストレージ容量の追加や壊れたディスクの交換時に恩恵があります。 有効にするか無効にするかを選択して Enter キーを押してください。

- `Encrypt Disks?` - GELI を使ってディスクを暗号化できます。 ディスクの暗号化の詳細については、 geli によるディスクの暗号化 をご覧ください。 Enter キーを押して、 暗号化を有効にするか無効にするかを選択してください。

- `Partition Scheme` - パーティションスキームを選択します。 ほとんどの場合において、GPT が推奨されます。 別のスキームを選択する場合には、 Enter キーを押してください。

- `Swap Size` - スワップ容量を設定します。

- `Mirror Swap?` - スワップ領域をディスク間でミラー化します。 スワップ領域をミラー化すると、クラッシュダンプを取得できないので、 注意してください。 Enter キーを押して有効/無効を設定してください。

- `Encrypt Swap?` - スワップ領域を暗号化します。 システムの起動時に一時キーをとともにスワップ領域を暗号化し、 再起動時にキーは破棄されます。 Enter キーを押して有効/無効を設定してください。 詳細については、 swap 領域の暗号化 を参照してください。

T を選択して、`Pool Type` およびプールに対応するディスクを選択してください。

図2.21 ZFS プールタイプ

このメニューで選択可能な `Pool Type` は以下の通りです。

- `stripe` - ストライピングでは、 接続されているすべてのデバイスの最大容量を使用できます。 ただし、冗長性はありません。 一つのディスクが壊れるだけでプールにあるデータは失われてしまい、 取り返しがつきません。

- `mirror` - ミラーリングは各ディスク上にあるすべてのデータの完全なコピーを保存します。 ミラーリングでは、並列にすべてのディスクからデータを読むため、 読み込みのパフォーマンスが向上します。 書き込みのパフォーマンスは、 データが並列にすべてのディスクに書き込まれるため、遅くなります。 1 つを除くすべてのディスクが壊れることを許容します。 このオプションを選択するには、 少なくとも 2 つのディスクを必要とします。

- `raid10` - ストライピングミラー。 最も効率は良いですが、ストレージ容量は少なくなります。 偶数のディスクが必要で、 少なくとも 4 つのディスクが必要です。

- `raidz1` - シングルパリティの RAID。 1 台のディスクの故障に耐えられます。 少なくとも 3 つのディスクが必要です。

- `raidz2` - ダブルパリティの RAID。 同時に 2 台のディスクの故障に耐えられます。 少なくとも 4 つのディスクが必要です。

- `raidz3` - トリプルパリティの RAID。 同時に 3 台のディスクの故障に耐えられます。 少なくとも 5 つのディスクが必要です。

`Pool Type` を選択したら、 利用可能なディスクの一覧が表示されます。 その後、プールを構成するディスクを、1 つまたは複数選択してください。 十分なディスクが選択されているかどうかについて検証が行われます。 もし、問題があるようでしたら、<Change Selection> を選択して、ディスクの一覧に戻ってください。 もしくは、 <Back> を選択して、 `Pool Type` に戻ってください。

図2.22 ディスクの選択
図2.23 問題のある選択

この一覧の中に抜けているディスクがある時や、 インストーラが立ち上がった後にディスクを接続した場合に、 最新の利用可能なディスクの一覧を見るには、 - Rescan Devices を選択してください。

図2.24 Rescan Devices

アクシデントで間違ったディスクを削除してしまわないように、 - Disk Info メニュー選択して、 各ディスクのパーティションテーブル、および、 デバイスモデル番号およびシリアル番号などのさまざまな情報を確認してください。

図2.25 ディスクの解析

N を選択して、 `Pool Name` を設定してください。 希望する名前を入力後、 <OK> を選択して確定するか、 <Cancel> を押して、 デフォルト名のままでメインメニューに戻ってください。

図2.26 Pool Name

S を選択してスワップの容量を設定してください。 必要なスワップ容量を入力し、 <OK> を押して確定するか、 もしくは <Cancel> を押して、 デフォルトの容量のまま、メインメニューに戻ってください。

図2.27 Swap 容量

すべてのオプションに希望する値を設定したら、 メニューの上部にある >>> Install オプションを選択してください。 インストーラは、ZFS プールを作成するための最終確認を行います。 これは、選択したドライブの内容が壊れることをキャンセルする最後の確認の場です。

図2.28 最終確認

GELI ディスク暗号化を有効にしていたら、 ディスクを暗号化するために用いるパスフレーズを 2 度求められます。その後、暗号の初期化が開始します。

図2.29 ディスク暗号化パスワード
図2.30 暗号の初期化

その後のインストールの過程は、通常通りに進みます。 インストールを進めるには、 「配布ファイルのダウンロード」 に進んでください。

### 2.6.5. シェルモードによるパーティションの作成

高度なインストールを行うには、bsdinstall が提供するパーティション分割のメニューは柔軟性にかけることがあります。 高度な技術を持つユーザは、パーティションメニューで Shell オプションを選択することで、 手動でドライブを分割して、ファイルシステムを作成し、 `/tmp/bsdinstall_etc/fstab` を作成し、 `/mnt` 以下にファイルシステムをマウントできます。 以上を実行したら、 `exit` を実行して bsdinstall に戻り、 インストールを続けてください。

戻る〓 | 上に戻る | 〓次へ
2.5. bsdinstall の使用〓 | ホーム | 〓2.7. 配布ファイルのダウンロード

本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。