This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

ディスクの準備

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Installation/Disks and the translation is 100% complete.
AMD64 ハンドブック
インストール
インストールについて
メディアの選択
ネットワーク設定
ディスクの準備
stage3のインストール
Gentooベースシステムのインストール
カーネルの設定
システムの設定
ツールのインストール
ブートローダの設定
締めくくり
Gentooの操作
Portageについて
USEフラグ
Portageの機能
Initスクリプトシステム
環境変数
Portageの操作
ファイルとディレクトリ
変数
ソフトウェアブランチの併用
追加ツール
カスタムPortageツリー
高度な機能
ネットワーク設定
はじめに
高度な設定
モジュール式ネットワーク
無線
機能の追加
動的な管理


ブロックデバイスの概要

ブロックデバイス

Gentoo Linuxの、そしてLinux一般の、Linuxファイルシステム、パーティション、ブロックデバイスを含めた、ディスク中心の考え方について詳しく見てみましょう。ディスクの入出力とファイルシステムについて理解することで、Gentoo Linuxインストールのためのパーティションとファイルシステムを構築できるようになります。

まずはブロックデバイスについて見ていきます。最も有名なブロックデバイスはおそらく、Linuxシステム上で1番目のドライブを表す、/dev/sdaでしょう。SCSIとSerial ATAドライブは/dev/sd*と名付けられます。より新しいlibataフレームワークがカーネルに組み込まれていれば、IDEデバイスも/dev/sd*と名付けられます。古いデバイスフレームワークを使っていれば、1番目のIDEドライブは/dev/hdaになるでしょう。

上のブロックデバイスは、ディスクへの抽象的なインターフェースを表しています。ユーザープログラムはこれらのブロックデバイスを用いて、デバイスがIDE、SCSI、もしくは他のものであるかどうかを心配することなしにディスクと通信することができます。プログラムは容易にディスク上の記憶領域を、ランダムアクセスできる512バイトごとの連続領域としてアドレッシングできます。


パーティションテーブル

Linuxシステムを入れるために、(btrfs RAIDを作成した場合のように)生の、パーティショニングをしていないディスクを使うことも理論上は可能です。しかし実際にはそんなことはめったにせず、ディスク全体のブロックデバイスをより小さく扱いやすいブロックデバイスに分けて使います。amd64システムでは、この分けられたブロックデバイスのことをパーティションと呼びます。現在主流なパーティショニング技術は、MBRとGPTの2つがあります。

MBR

MBR (Master Boot Record)構成は、パーティションの識別子として、32ビットで、開始セクタとパーティションのセクタ数を使い、3種類のパーティションタイプ(プライマリ、拡張、論理)を持っています。プライマリパーティションは、ディスク先頭のとても小さい領域(ふつうは512バイト)にあるMBRの中に、その情報が格納されます。この小ささのために、たった4つのプライマリパーティションしか使うことができません(例えば/dev/sda1から/dev/sda4まで)。

より多くのパーティションを使うために、プライマリパーティションのうちのひとつを拡張パーティションとしてマークすることができます。拡張パーティションは複数の論理パーティションを格納することができます(パーティションの中にパーティションが存在することになります)。

Important
まだほとんどのマザーボードメーカーがサポートしてはいるものの、パーティションテーブルは既に過去のものと考えられます。2010年以前のハードウェアを扱っているのでない限り、GUID パーティションテーブル を使ってディスクをパーティショニングする方が良いでしょう。MBR を使って作業を続ける必要がある読者は以下のことを認識しておいてください:
  • 2010年以降のほとんどのマザーボードは MBR を過去の(サポートはされているが理想的でない)ブートモードとみなします。
  • 32ビットの識別子を使用しているため、マスターブートレコードのパーティショニングテーブルは2TiBを超えるサイズのディスクを扱えません。
  • 拡張パーティションを作成しない限り、MBR は最大で4つまでのパーティションしかサポートしません。
  • MBR のセットアップでは MBR のバックアップは一切提供されないので、アプリケーションやユーザーが MBR を上書きしてしまうとすべてのパーティション情報が失われます。

ハンドブックの著者たちは、可能であればいつでも、Gentoo をインストールするためには GPT を使うことを提案します。

GPT

GPT (GUID Partition Table)構成は、パーティションの識別子として64ビットの値を使います。パーティション情報を格納する領域はMBRの512バイトよりもずっと大きいため、パーティション数の制限はないようなものです。さらに、パーティションサイズの上限ももっと大きく設定されています(およそ8ZiB、そう、ゼタバイトです)。

オペレーティングシステムとファームウェアの間のソフトウェアインターフェースが(BIOSではなく)UEFIならば、MBRでは互換性の問題が発生するので、GPTはほぼ必須となります。

GPTはまたチェックサムと冗長性も備えています。具体的にはヘッダやパーティションテーブルのエラーを検出するCRC32チェックサムや、ディスクの末尾にバックアップのGPTを持っています。もしディスク先頭にあるプライマリGPTに損害があっても、バックアップのGPTを使って回復できます。

GPTとMBRのどちらにすべきか

上の記述から、GPTが常に推奨されるアプローチだと思われたかもしれません。ただし、いくつか注意点があります。

BIOSベースのコンピュータでGPTを使うことはできますが、Microsoft Windowsとデュアルブートを組むことはできません。Microsoft WindowsはGPTパーティションラベルを検出すると、UEFIモードで起動しようとするからです。

BIOS/CSM/レガシーモードでブートするように設定されたマザーボードファームウェアでは、GPTディスクからブートする際に問題が発生するかもしれません。その場合には、保護MBRパーティションにブートフラグもしくはアクティブフラグと呼ばれるフラグを付加することで、この問題を回避できるかもしれません。fdisk-t dosオプションを付けると、強制的にMBRフォーマットとしてパーティションテーブルを読み込みます。

fdiskを起動して、aキーを使ってフラグを立ててください。1を押して最初のパーティションを選択し、wキーを押してディスクに変更を反映させ、fdiskアプリケーションを終了してください。

user $fdisk -t dos /dev/sda
Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

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

UEFIを使う

オペレーティングシステムを起動するのに(BIOSではなく)UEFIを使うシステムにGentooをインストールするときは、EFIシステムパーティションを作成することが重要です。この手順については後述のpartedの説明でも述べます。

ESPはFAT系列のファイルシステム(Linuxシステムではvfatと表示することもあります)である必要があります。UEFI specification では、UEFIファームウェアは FAT12、16、32 を認識すると書かれている一方で、ESP には FAT32 を推奨しています。ESP を FAT32 としてフォーマットしておきましょう:

root #mkfs.fat -F 32 /dev/sda2
重要
ESPがFAT系列のファイルシステムを使っていないと、UEFIファームウェアはブートローダー (かLinuxカーネル) を見つけられず、おそらくシステムをブートすることができません!

高度なストレージ

btrfs RAID

上で述べた通り、btrfsは複数のデバイスを跨いでファイルシステムを作成することができます。このようにして作成されたbtrfsファイルシステムは、raid0、raid1、raid10、raid5、raid6モードで動作することができます。RAIDモードの5と6はかなり改善されましたが、まだ不安定と考えられています。複数のデバイスからなるファイルシステムを作成した後でも、新しいデバイスを作成したり、古いデバイスを消去したりといったことがわずかなコマンドでできます。他のファイルシステムでは初心者には難しいことでも、btrfsファイルシステムではかなり改善されています。

ext4ファイルシステムはbtrfsファイルシステムに変換できます。これはGentooを安定かつよくテストされたファイルシステムにインストールしたい場合に有益です。また実験的にbtrfsを使う時のように、新しいファイルシステムを徐々に学ぶときにも役立つでしょう。

LVM

amd64インストールCDは Logical Volume Manager (LVM) サポートを提供しています。LVMのパーティション構造は、ストレージのより柔軟な管理を可能にします。この後の説明では「ふつう」のパーティションに焦点を当てていますが、LVMが好ましい場合は、それがサポートされていることを知っておいて損はないでしょう。詳細は LVM の記事をご覧ください。興味を持たれた方へ: 本ガイドはLVMをサポートしていないことにご注意ください。

デフォルトのパーティション構成

これよりこのハンドブックでは、シンプルな例として以下のパーティション構造を使います。

パーティション ファイルシステム サイズ 説明
/dev/sda1 (ブートローダ) 2M BIOSブートパーティション
/dev/sda2 ext2 (またはUEFIを使うならfat32) 128M ブート/EFIシステムパーティション
/dev/sda3 (swap) 512M もしくはそれ以上 スワップパーティション
/dev/sda4 ext4 残りのディスク ルートパーティション

もし、これで十分かつGPTを使う場合は、すぐに標準: ディスクの分割にpartedを使うに進みましょう。MBRにまだ興味があり(まぁ、そういうこともあるでしょう)、かつ上の例のレイアウトを使う場合は別の選択肢: ディスクの分割にfdiskを使うに進んでください。

fdiskpartedは共にパーティショニングのためのユーティリティです。fdiskは有名で、安定した、MBRパーティションレイアウトのためのツールです。一方、partedはGPTパーティションをサポートした、最初のLinuxブロックデバイスの管理ツールの一つでした。fdiskのユーザーインタフェースが好きな人は、partedの代わりにgdisk (GPT fdisk)を使うこともできます。

パーティションの生成方法に進む前に、以降の数セッションでパーティション構造がどのように生成されるのかについて、その詳細を述べ、いくつかの共通した落とし穴について触れておきます。

パーティション構成の設計

How many partitions and how big?

The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MiB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.

It very much depends on what the administrator wants to achieve. Separate partitions or volumes have the following advantages:

  • それぞれのパーティションまたはボリュームに対して、最も性能が高いファイルシステムを選択できます
  • ゾンビプロセスがパーティションまたはボリュームに継続的に書き込みをした場合でも、システム全体の空き領域を使い切ることはありません
  • 必要ならば、複数のチェックを並行して実行することで、ファイルシステムチェックの時間を短縮できます (複数のパーティションよりも複数のディスクの方が効果があります)
  • リードのみ、nosuid(setuidビット無効)、noexec(実行ビット無効)等のマウントオプションによって、セキュリティが向上します

しかし、複数パーティションにはデメリットもあります。もし適切に設定されない場合、あるパーティションが空き領域をたくさん持ち、別のパーティションにはまったく空き領域がなくなるといったことが起こり得ます。特に/usr//var/いった重要なマウントポイントに対して、しばしば管理者は他のブートスクリプトが動作する前にパーティションをマウントするために、initrmfsを使用しなければならなくなるでしょう。これはいつも成り立つというわけではありません。結果はよく変わるのです。

また、 SCSIやSATAでは仕様上の制約により、GPTラベルを使用しない限りは 15個までしかパーティションを作れません。

スワップ領域について

スワップパーティションについて完璧なパーティションサイズというものはありません。スワップ領域の目的は、メインメモリ(RAM)が逼迫した際、カーネルにディスク領域を提供するためにあります。スワップ領域があれば、カーネルは最近最も使われていないメモリ領域をディスクに書き出し(スワップもしくはページアウト)、メモリを開放します。もちろん、もし急にメモリが必要になった場合は、これらのページはメモリに戻す(ページイン)必要があります。これには多少なりとも時間が必要です。(メインメモリと比較してディスクはとても遅いためです)

システムがメモリを大量に消費するアプリケーションを実行しないとき、またシステムが多くの空きメモリを持っているときは、それほど大きいスワップ領域は必要ではありません。しかし、スワップ領域はハイバネーションのときに全メモリを保存するためにも使われます。そのためハイバネーションが必要な場合は、より大きい、最低でもインストールされている全メモリと同程度のサイズのスワップ領域が必要です。


BIOS ブートパーティションとは

BIOS ブートパーティションはとても小さい(1-2 MB)パーティションで、GRUB2 などのブートローダが、与えられた領域(MBR では数百バイト)に収まらず、他の場所に置くこともできないようなデータを置くためのパーティションです。

このパーティションは常に必要ではありませんが、ディスク使用量も大したことはありませんし、パーティショニングの違いに応じて膨大な量のドキュメントを書くことの困難さを考慮して、BIOS ブートパーティションを作成することを推奨します。

正確に言うと、BIOS ブートパーティションが必要なのは、GPT パーティションレイアウトを GRUB2 と併用し、PC/BIOS モードで起動する場合です。EFI/UEFI モードで起動する場合には必要ありません。

デフォルト: ディスクの分割にpartedを使う

この章では、説明中で先に示したパーティションレイアウトの例を使います。

パーティション 説明
/dev/sda1 BIOS ブートパーティション
/dev/sda2 ブートパーティション
/dev/sda3 スワップパーティション
/dev/sda4 ルートパーティション

パーティションレイアウトはお好みで変更してください。

parted で現在のパーティションレイアウトを表示する

partedはディスクを分割するためのシンプルなインタフェースを持ち、2TB以上の巨大なパーティションをサポートします。partedを起動しましょう(上の例の/dev/sdaを対象とします)。partedに最適なパーティションのアライメントを決めさせるとよいでしょう。

root #parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

アライメントとは、パーティションがディスク上のよく知られた境界から始まることを示し、OSレベルのディスク操作(ディスクからページを集める)が最低限のディスク領域を使えることを保証します。アライメントされていないパーティションでは、OSが1ページのみを必要としていたとしても、2ページにアクセスしなければなりません。

partedがサポートするすべてのオプションを表示するためには、 help とタイプし、リターンキーを押してください。

GPTラベルを適用する

x86もしくはamd64アーキテクチャ上のほとんどのディスクは、msdosラベルを使います。partedを使用してディスクにGPTラベルをつけるためには、mklabel gptを使います。

警告
パーティションタイプを変更すると、ディスクのすべてのパーティションを消去します。ディスク上のすべてのデータは失われます。
(parted)mklabel gpt

MBRレイアウトのディスクを作成する場合は、mklabel msdosを使います。

partedですべてのパーティションを削除する

もし、まだパーティションの全消去を実行してない場合(例えば、mklabelをした場合や、新しくフォーマットされたディスクの場合)は、最初にすべての既存パーティションを削除しましょう。現在のパーティションを確認するためにprintとタイプし、rm <N>とします。ここで<N>は、消去するパーティションの番号を示します。

(parted)rm 2

同様に、使用しない他のパーティションを消去します。ここで失敗は許されません。partedは変更を即座に反映します。(一方fdiskは、変更を保存、もしくはfdiskを終了する前に、それまでの変更を無効にすることができます)

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

では、parted を使って次の設定でパーティションを作成していきましょう:

  • 使用するパーティションタイプ。これは通常はprimaryとなります。もしmsdosパーティションラベルを使う場合、プライマリパーティションは最大4つまでであることに留意してください。
  • パーティションの開始位置。これはMB、GB、…で指定できます。
  • パーティションの終了位置。これはMB、GB、…で指定できます。

最初に、これから使うサイズの単位がメガバイトであることを指定しましょう。(実際、メガバイトは標準的な記述ではMiBと表記されます。しかしこの文書では、もっともよく使われるMBを使います)

(parted)unit mib

まず、2MBのパーティションを作成します。このパーティションはGRUB2ブートローダが使用します。mkpartコマンドを使い、1MBから始まり、3MBで終わるパーティション(2MBのサイズ)を作成します。

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on
(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub

同じやり方でブートパーティション(128MB)、スワップパーティション(この例では512MB)、残りのディスクすべてを占めるルートパーティションを作成します。(このパーティションの終わりは-1で指定します。ディスクの最終端の1MB前で、これは取りうる最大のパーティションです)

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 643
(parted)name 3 swap
(parted)mkpart primary 643 -1
(parted)name 4 rootfs

(BIOSの代わりに)UEFIインタフェースを使う場合、ブートパーティションをEFIシステムパーティションとして設定しなければなりません。partedでは、パーティションにbootオプションを付けることで自動的に設定されます。

(parted)set 2 boot on

最終的に、パーティション構成は以下のようになるでしょう。

(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub
 2       3.00MiB    131MiB   128MiB                boot   boot
 3       131MiB     643MiB   512MiB                swap
 4       643MiB     20479MiB 19836MiB              rootfs
注意
UEFIインストールでは、bootフラグおよびespフラグはブートパーティションに現われます。

quitでpartedを終了します。

別の選択肢: ディスクの分割にfdiskを使う

Note
最近の fdisk は GPT に対応しているはずなのですが、まだいくつかの問題があることが分かっています。以降の説明ではパーティションレイアウトに MBR が使われていると仮定しています。

以降の部分では、fdisk を使って例の通りにパーティションレイアウトを作成する方法を説明します。パーティションレイアウトの例は先にも示した通りです:

パーティション 説明
/dev/sda1 BIOS ブートパーティション
/dev/sda2 ブートパーティション
/dev/sda3 スワップパーティション
/dev/sda4 ルートパーティション

パーティションレイアウトはお好みで変更してください。

現在のパーティションレイアウトを表示する

fdiskは、ディスクをパーティション分割するためのポピュラーでパワフルなツールです。ディスク(我々の例では/dev/sda)に対してfdiskを起動しましょう。

root #fdisk /dev/sda
注意
GPTサポートを有効にするためには、-t gptを追加します。fdiskの最近の開発でデフォルトの動作がMBRから変わる場合、fdiskの出力を注意深く確認することをお勧めします。これ以降、この手順書ではMBRレイアウトを前提とします。

pキーを使えば、現在のディスクのパーティション構成を表示できます。

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

このディスクは7つのLinuxファイルシステム ("Linux" と書かれているパーティションに対応します) と1つのswapパーティション ("Linux swap" と書かれているパーティション) で構成されているようです。

fdisk ですべてのパーティションを削除する

まずは既存のパーティションを全て削除しましょう。パーティションを削除するには d と入力します。例えば /dev/sda1 を削除するにはこのようにします:

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

これで指定したパーティションの削除が予約されました。パーティションの一覧 (p) にはもう現れませんが、変更を保存するまで実際の消去は行われないので、間違えて操作してしまった場合は中止することができます。すぐに q を入力して Enter を押せば、パーティションは削除されません。

p でパーティションの一覧を表示して d とパーティション番号を入力する、という作業を繰り返すと、パーティションテーブルは空っぽになります。

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

さて、メモリ内のパーティションテーブルが空になり、パーティションを作る準備ができました。

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

まずはとても小さな BIOS ブートパーティションを作成します。新規パーティションを作るので n を入力し、p で基本パーティションを選択、1 で最初の基本パーティションを選択しましょう。開始セクタについて聞かれたら、2048 (ブートローダーのために必要です) になっていることを確認して Enter を押しましょう。終了セクタの指定では、2MB のパーティションを作るので +2M と入力します:

注意
セクタ2048から開始するというのは、ブートローダーがこのパーティションを使ってくれない時のための安全装置です。
Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (64-10486533532, default 64): 2048
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M

パーティションを UEFI 用にマークする場合:

Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 4
Changed system type of partition 1 to 4 (BIOS boot)
注意
UEFIでMBRパーティションレイアウトを使うのはお勧めしません。UEFI対応のシステムを使うなら、GPTレイアウトにすべきです。

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

今度は小さなブートパーティションを作成します。新規パーティションを作るので n を入力し、p で基本パーティションを選択、2 で2番目の基本パーティションを選択しましょう。開始セクタはデフォルトのままでいいので、そのまま Enter を押します。終了セクタの指定では、128MB のパーティションを作るので +128M と入力します:

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (5198-10486533532, default 5198): (Hit enter)
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +128M

ここで p を押すと、次のようなパーティション一覧が表示されるはずです:

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         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2             3        14    105808+  83  Linux

パーティションのブート可能フラグを設定するために a を押して 2 を選んでください。もう一度 p を入力してみると、"Boot" 列に * 印がついていますね。

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

スワップパーティションを作成したいので、新規パーティション作成の n を入力し、p で基本パーティションを選択し、 3 で3番目の基本パーティションを選択しましょう。開始セクタの指定ではそのまま Enter を押します。終了セクタの指定では、512MB のパーティションを作るので +512M (もしくはお好みのswap領域のサイズ) と入力します。

ここまでできたら、パーティションタイプを設定するために t と入力し、今作成したパーティション 3 を選択、そしてパーティションタイプ "Linux Swap" を意味する "82" を入力します。

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

最後に、ルートパーティションを作成します。n で新規パーティション作成、 p で基本パーティションを選択、4番目の基本パーティションを作成するために 4 を入力、最初のセクタはそのまま Enter を押します。最後のセクタを聞かれたら、ディスクの空き領域全てをこのパーティションに割り当てたいのでそのまま Enter を押しましょう。これが終わったら、 p で次のようなパーティションテーブルが表示されるはずです:

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         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2   *         3        14    105808+  83  Linux
/dev/sda3            15        81    506520   82  Linux swap
/dev/sda4            82      3876  28690200   83  Linux

パーティションのレイアウトを保存する

このパーティションレイアウトを保存して fdisk を終了するために、w を入力します。

Command (m for help):w

パーティションが作成できたら、今度はそこにファイルシステムを置きます。


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

はじめに

パーティションが作成できたら、その上にファイルシステムを作成します。次の節ではLinuxがサポートする各種ファイルシステムを紹介します。どのファイルシステムを使うかをすでに決めているなら、パーティションにファイルシステムを適用するへ進みましょう。そうでなければ、次の節を読んで利用可能なファイルシステムについて知るのがよいでしょう。

ファイルシステム

利用可能なファイルシステムは複数あります。そのうちいくつかはアーキテクチャamd64上で安定して動作するとされています--重要なパーティションに実験的なファイルシステムを選択するときは、事前にファイルシステムのサポート状況を十分に知っておくことを推奨します。

btrfs
スナップショット、チェックサムによる自己修復、透過的圧縮、サブボリューム、RAIDの統合など、多くの先進機能を提供する次世代のファイルシステムです。いくつかのディストリビューションはこれをすぐに使えるオプションとして提供し始めていますが、未だ製品に使える状態ではありません。ファイルシステムが壊れたという報告はよくあります。開発者はユーザーに、安全のため最新のカーネルバージョンを使うようしきりに促しています。古いカーネルには既知の問題があるからです。この状況は何年も続いており、事態が変わってきたと判断するには早すぎます。問題への修正が古いカーネルにバックポートされることは滅多にありません。このファイルシステムを使う際は十分注意を払うようにしてください。
ext2
試練を受けた本当のLinuxファイルシステムですが、メタデータジャーナリングがないため、起動時に行われる毎回のext2ファイルシステムチェックは時間のかかるものになります。今ではジャーナルの効く新世代の、整合性を非常に素早くチェックできるファイルシステムの選択肢が数多くありますから、一般的にはそちらのほうが、ジャーナルの効かない対抗馬より好まれます。ジャーナルの効くファイルシステムは、システム起動の際たまたまファイルシステムに不整合があった場合の長い遅延を防いでくれます。
ext3
ジャーナルが有効になった ext2 ファイルシステムであり、full data及びordered dataジャーナリングといった強力なジャーナリングモードに加え、高速な修復のためのメタデータジャーナリングをサポートします。HTreeインデックスによって、ほぼすべての状況で高いパフォーマンスが可能になります。簡単にいえば、ext3 はとても優れた信頼できるファイルシステムです。
ext4
もともと ext3 のフォークとして作られた ext4 は、新機能、パフォーマンスの向上と、ディスク上でのフォーマットの適度な変更による、サイズ制限の撤廃を提供します。ボリュームは1EBまで広げることができ、最大のファイルサイズは16TBです。古典的なext2/3のbitmap block割当ての代わりに、ext4 はextentを使い、大きなファイルでのパフォーマンスを向上し、断片化を減らしています。ext4は他にもより洗練されたアロケーションアルゴリズム(遅延割当てと複数ブロック割当て)を提供し、ファイルシステムドライバーに、ディスク上のデータのレイアウトを最適化するより多くの方法を与えています。ext4 は推奨される、全目的、全プラットフォームのファイルシステムです。
f2fs
Flash-Friendly File Systemはもともと、SamsungによってNANDフラッシュメモリで利用するために作られました。2016年Q2現在、このファイルシステムはまだ未熟なものと思われますが、GentooをmicroSDカードやUSBスティックや他のフラッシュベースの記憶装置にインストールする際にはすばらしい選択でしょう。
JFS
IBMの高パフォーマンスジャーナリングファイルシステムです。JFSは軽量、高速かつ信頼できる、B+木ベースのファイルシステムで、様々な条件で良いパフォーマンスが出ます。
ReiserFS
B+木ベースのジャーナルが有効なファイルシステムで、全体的に良いパフォーマンスが出ます。特に、大量の小さなファイルを扱う際は、CPUサイクルを多く消費するものの、高いパフォーマンスを得ることができます。ReiserFSは他のファイルシステムと比べるとあまり保守されていないように思われます。
XFS
メタデータジャーナリングのあるファイルシステムで、堅牢な機能セットを持ち、スケーラビリティに最適化されています。XFSはどうやら、様々なハードウェアの問題に対してはあまり寛大ではないようです。
vfat
別名FAT32。Linuxでサポートされていますが、いかなるパーミッションの設定もサポートされていません。ほとんど、他のOS(主にMicrosoft Windows)との相互運用性のために使われていますが、いくつかのシステムファームウェア(たとえばUEFI)でも必要になります。
NTFS
この "New Technology" ファイルシステムは、Microsoft Windowsのフラッグシップファイルシステムです。上記のvfatと同様、BSDやLinuxが正しく動作するために必要なパーミッション設定や拡張属性を保持しないため、ルートファイルシステムとして使うことはできません。Microsoft Windowsとの相互運用のためにのみ使うべきです(「のみ」の強調に注意してください)。

ext2、ext3、ext4を(8GB以下の)小さいパーティションに使用するときは、十分なinode数を確保できるように適切なオプションを指定してファイルシステムを作成する必要があります。mke2fs (mkfs.ext2)アプリケーションは、「inodeあたりのバイト数」を指定することで、ファイルシステムが持つべきinode数を計算することができます。もっと小さいパーティションでは、計算されたinode数よりも大きい値を設定するとよいでしょう。

ext2では、これは次のコマンドで実行できます:

root #mkfs.ext2 -T small /dev/<device>

ext3とext4では、ジャーナリングを有効にするために-jオプションを追加しましょう:

root #mkfs.ext2 -j -T small /dev/<device>

上のコマンドは通常では、「inodeあたりのバイト数」を16kBから4kBに減らすので、ファイルシステムに4倍のinode数を確保できます。比率を指定することで、さらに細かく調節することもできます:

root #mkfs.ext2 -i <ratio> /dev/<device>

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

パーティションまたはボリュームの上にファイルシステムを作成するには、ファイルシステムごとに異なるユーザースペースのユーティリティが利用可能です。下表でファイルシステムの名前をクリックすると、それぞれに追加の情報が得られます:

ファイルシステム 作成コマンド Minimal CD にある? パッケージ
btrfs mkfs.btrfs はい sys-fs/btrfs-progs
ext2 mkfs.ext2 はい sys-fs/e2fsprogs
ext3 mkfs.ext3 はい sys-fs/e2fsprogs
ext4 mkfs.ext4 はい sys-fs/e2fsprogs
f2fs mkfs.f2fs はい sys-fs/f2fs-tools
jfs mkfs.jfs はい sys-fs/jfsutils
reiserfs mkfs.reiserfs はい sys-fs/reiserfsprogs
xfs mkfs.xfs はい sys-fs/xfsprogs
vfat mkfs.vfat はい sys-fs/dosfstools
NTFS mkfs.ntfs はい sys-fs/ntfs3g

例えば、パーティション構造例の通りに、ブートパーティション(/dev/sda2)をext2に、ルートパーティション(/dev/sda4)をext4に設定するには、次のコマンドが使えます:

root #mkfs.ext2 /dev/sda2
root #mkfs.ext4 /dev/sda4

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

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

mkswapはスワップパーティションを初期化するために使われるコマンドです:

root #mkswap /dev/sda3

スワップパーティションを有効化するには、swaponを使います:

root #swapon /dev/sda3

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

マウント

パーティションが初期化され、ファイルシステムを格納したので、それらのパーティションをマウントする時です。 mount コマンドを使用しますが、作成されたすべてのパーティションに必要なマウントディレクトリを作成することを忘れないでください。例として、 root と boot パーティションをマウントします。

root #mount /dev/sda4 /mnt/gentoo
root #mkdir /mnt/gentoo/boot
root #mount /dev/sda2 /mnt/gentoo/boot
Note
もし/tmp/を別のパーティションに置く必要があるなら、マウントしたあと権限の変更を忘れずに行ってください:
root #chmod 1777 /mnt/gentoo/tmp
/var/tmpについても同様です。

このあと解説の中で、proc ファイルシステム(仮想的なカーネルとのインターフェース)が、他のカーネル擬似ファイルシステムと同様にマウントされますが、まず最初は、Gentooインストールファイルをインストールします。