ハンドブック:パート/インストール/ディスク
直接 Handbook:Parts 名前空間(このページです!)またはそのサブページの指示に従わないでください。Handbook:Parts は他のハンドブックの中に文章をトランスクルードするために使われるメタハンドブックです。完全なインストール手順については、ハンドブックのリスト内のアーキテクチャに特化したハンドブックを使ってください。
ブロックデバイスの概要
ブロックデバイス
Gentoo Linuxの、そしてLinux一般の、ブロックデバイス、パーティション、Linuxファイルシステムを含めた、ディスクやファイルシステム中心の考え方について詳しく見てみましょう。ディスクの入出力とファイルシステムについて理解することで、インストールのためのパーティションとファイルシステムを構築できるようになります。
まずはブロックデバイスについて見ていきます。SCSIドライブやシリアルATAドライブは両方とも/dev/sdaや/dev/sdb、/dev/sdcなどのようなデバイスハンドルとしてラベル付されます。更にモダンなマシンでは、PCI ExpressベースのNVMeソリッドステートディスクは、/dev/nvme0n1、/dev/nvme0n2などのようなデバイスハンドルを持ちます。
下の表は、各種のブロックデバイスがシステム上のどこにあるかを判断するのに役立つでしょう:
デバイスの種類 | デフォルトのデバイスハンドル | 編集者メモと、考慮すべき点 |
---|---|---|
SATA、SAS、SCSI、または USB フラッシュメモリ | /dev/sda | 2007 年頃から現在までに製造されたハードウェアで見られます。このデバイスハンドルはおそらく Linux 上でもっともよく使用されているものでしょう。この種のデバイスは SATA バス、SCSI、USB バスを介してブロックストレージとして接続されます。例えば、最初の SATA デバイス上の最初のパーティションは /dev/sda1 という名前になります。 |
NVM Express (NVMe) | /dev/nvme0n1 | ソリッドステートテクノロジとして最新の NVMe ドライブは PCI Express バスに接続され、一般市場でもっとも高速な転送速度を持っています。2014 年頃以降のシステムは NVMe ハードウェアのサポートを備えているかもしれません。最初の NVMe デバイスの最初のパーティションは /dev/nvme0n1p1 という名前になります。 |
MMC、eMMC、および SD カード | /dev/mmcblk0 | embedded MMC デバイス、SD カード、そして他の種類のメモリーカードはデータ用のストレージとして有用です。つまり、多くのシステムはこれらの種類のデバイスからのブートを許可していないかもしれません。これらのデバイスに Linux をインストールして常用するのはおすすめできません。それらの設計目標である、ファイルの交換用に使うものと考えてください。短期バックアップとして使用すると便利かもしれません。 |
上のブロックデバイスは、ディスクへの抽象的なインターフェースを表しています。ユーザープログラムはこれらのブロックデバイスを用いて、デバイスが SATA、SCSI、もしくは他のものであるかどうかを心配することなしにディスクと通信することができます。プログラムは容易にディスク上の記憶領域を、ランダムアクセスできる 4096 バイト (4K) ごとの連続領域としてアドレッシングできます。
Introduction to block devices
Block devices
Placeholder for introduction to block devices specific to that architecture
Designing a partition scheme
Placeholder for designing a partition scheme specific to that architecture
ファイルシステムを作成する
はじめに
パーティションが作成できたら、その上にファイルシステムを作成します。次の節ではLinuxがサポートする各種ファイルシステムを紹介します。どのファイルシステムを使うかをすでに決めているなら、パーティションにファイルシステムを適用するへ進みましょう。そうでなければ、次の節を読んで利用可能なファイルシステムについて知るのがよいでしょう。
ファイルシステム
Linux は多くのファイルシステムをサポートしていますが、それらの多くは特定の目的をもって配備するのが賢明なものです。特定のファイルシステムのみが amd64 アーキテクチャ上で安定して動作するとされています - 重要なパーティションに実験的なファイルシステムを選択するときは、事前にファイルシステムのサポート状況を十分に知っておくことを推奨します。ext4 はすべてのプラットフォームで、すべての目的で推奨されるファイルシステムです。以下は、網羅的ではないリストです
- btrfs
- スナップショット、チェックサムによる自己修復、透過的圧縮、サブボリューム、RAIDの統合など、多くの先進機能を提供する次世代のファイルシステムです。 深刻な問題への対処がより新しい LTS カーネルブランチのリリースにしか含まれていないので、5.4.y より前のカーネルを btrfs と実運用するのは安全性の保証がありません。さらに古いカーネルブランチではファイルシステム破損の問題はよくあることで、4.4.y より古いものは特に危険で破損しやすいです。古い (5.4.y より前の) カーネルでは、圧縮が有効化されているとより破損が発生しやすいです。RAID 5/6 とクオータグループは、btrfs のすべてのバージョンで安全ではありません。さらに btrfs では内部断片化 (空き領域が DATA + SYSTEM チャンクにピン留めされているが、METADATA チャンクが必要としている) のために、df が空き領域を報告したのに ENOSPC でファイルシステムの操作に失敗するという、直感に反することが起きることがあります。加えて、a single 4K reference to a 128M extent inside btrfs は、空き領域が存在するが割り当てには利用できないということを引き起こすことがあります。これも df が空き領域を報告するのに btrfs は ENOSPC を返す原因になり得ます。sys-fs/btrfsmaintenance をインストールして定期的に実行するスクリプトを構成することで、btrfs をリバランスして ENOSPC 問題の可能性を減らすことができますが、空き領域が存在するのに ENOSPC のリスクは消えはしないでしょう。ENOSPC が発生するかは用途によります。運用中の ENOSPC のリスクが許容できない場合は、別のものを使うべきです。btrfs を使うなら、問題が発覚している構成を避けることを確実にしてください。ENOSPC は例外として、最新のカーネルブランチに存在する問題についての情報は btrfs wiki status page で確認できます。
- 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+木ベースのファイルシステムで、様々な条件で良いパフォーマンスが出ます。
- XFS
- メタデータジャーナリングのあるファイルシステムで、堅牢な機能セットを持ち、スケーラビリティに最適化されています。XFSはどうやら、様々なハードウェアの問題に対してはあまり寛大ではないようですが、継続的に新しい機能を取り入れるようにアップグレードしてきています。
- VFAT
- 別名FAT32。Linuxでサポートされていますが、標準的なUNIXパーミッションの設定をサポートしていません。ほとんど、他のOS(Microsoft WindowsまたはApple macOS)との相互運用性/交換のために使われていますが、いくつかのシステムブートローダーファームウェア(たとえばUEFI)でも必要になります。UEFIシステムを使用している場合は、システムをブートするためにはVFATでフォーマットされたEFIシステムパーティションが必要になるでしょう。
- NTFS
- この "New Technology" ファイルシステムは、Windows NT 3.1以降のMicrosoft Windowsのフラッグシップファイルシステムです。VFATと同様、BSDやLinuxが正しく動作するために必要なUNIXパーミッション設定や拡張属性を保持しないため、ほとんどの場合ルートファイルシステムとして使うべきではありません。Microsoft Windowsとの相互運用/交換のためにのみ使うべきです(のみの強調に注意してください)。
パーティションにファイルシステムを適用する
パーティションまたはボリュームの上にファイルシステムを作成するには、ファイルシステムごとに異なるユーザースペースのユーティリティが利用可能です。下表でファイルシステムの名前をクリックすると、それぞれに追加の情報が得られます:
ファイルシステム | 作成コマンド | Minimal CD にある? | パッケージ |
---|---|---|---|
btrfs | mkfs.btrfs | はい | sys-fs/btrfs-progs |
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 |
例えば、パーティション構造例の通りに、ルートパーティション()を ext4 として設定するには、次のコマンドが使えます:
root #
mkfs.ext4
ext4 を (8 GiB 未満の) 小さいパーティションに使用するときは、十分な inode 数を確保できるように適切なオプションを指定してファイルシステムを作成する必要があります。これは、各ファイルシステム毎に、以下のコマンドのうちのひとつを使用することで行えます:
root #
mkfs.ext4 -T small /dev/<device>
上のコマンドは通常では、「inodeあたりのバイト数」を16kBから4kBに減らすので、ファイルシステムに4倍のinode数を確保できます。
それでは、新しく作成したパーティション(または論理ボリューム)にファイルシステムを作成しましょう。
スワップパーティションを有効にする
mkswapはスワップパーティションを初期化するために使われるコマンドです:
root #
mkswap
スワップパーティションを有効化するには、swaponを使います:
root #
swapon
上述のコマンドで、スワップを作成して有効化しましょう。
ルートパーティションのマウント
非 Gentoo インストールメディアを利用している場合、次を実行してマウントポイントを作成する必要があります:
root #
mkdir --parents /mnt/gentoo
パーティションが初期化され、ファイルシステムを格納したので、それらのパーティションをマウントする時です。 mount コマンドを使用しますが、作成されたすべてのパーティションに必要なマウントディレクトリを作成することを忘れないでください。例として、 rootパーティションをマウントします。
root #
mount /mnt/gentoo
もし/tmp/を別のパーティションに置く必要があるなら、マウントしたあと権限の変更を忘れずに行ってください:
root #
chmod 1777 /mnt/gentoo/tmp
このあと解説の中で、proc ファイルシステム(仮想的なカーネルとのインターフェース)が、他のカーネル擬似ファイルシステムと同様にマウントされますが、まず最初は、Gentooインストールファイルをインストールします。