7. パーティションとファイルシステム
7.1. ハードディスクとその関連規格
7.1.1. Linuxにおけるハードディスクの利用方法
Linuxでハードディスクを使用するには以下のステップを行う必要がある。
- 電源OFFの状態で、ハードディスクをシステムに物理的に接続
- 追加したハードディスクのデバイスファイルが作成されていることを確認
- ハードディスクにパーティションを切る(
fdisk
コマンド) - 各パーティションにおいてext3ファイルシステムを作成(
mke2fs
コマンド) - ファイルシステムのマウント(
mount
コマンド)
7.1.2. ハードディスクの接続規格
HDDの接続規格には以下のようにある。
HDDの接続規格 | 説明 |
---|---|
SATA (Serial ATA) | 現在主流の規格。IDEよりもデータ転送速度が速い。 |
IDE (Integraded Drive Electronics) | SATAが出てくる前まで主流だった規格。 |
SAS (Serial Attached SCSI) | SATAより高速・高信頼性のある企画。サーバ用に使用される。 |
SCSI (Small Computer System Interface) | さまざまな周辺機器を接続する一般的な規格。高速、高価でありSCSIカードが必要。 |
USB (Universal Serial Bus) | USBポートを持つ外付けのHDDを接続する際に使用される規格。 |
7.1.3. デバイスファイル
起動中にハードディスクを新しく検出すると、検出されたデバイスを操作するためのデバイスファイルが/dev
ディレクトリに自動的に追加される。
デバイスの命名規則は以下の通り。
デバイスファイル | 説明 |
---|---|
/dev/hda | プライマリのマスターに接続したHDD |
/dev/hdb | プライマリのスレーブに接続したHDD |
/dev/hdc | セカンダリのマスターに接続したHDD |
/dev/hdd | セカンダリのスレーブに接続したHDD |
/dev/sda | 1番目のSCSI/SATA/USBに接続したHDD |
/dev/sdb | 2番目のSCSI/SATA/USBに接続したHDD |
/dev/sdc | 3番目のSCSI/SATA/USBに接続したHDD |
/dev/sdd | 4番目のSCSI/SATA/USBに接続したHDD |
/dev/sr0 | 1番目のCD/DVDドライブ |
/dev/st0 | 1番目のテープドライブ |
lsblkコマンド
ブロックデバイスを一覧するコマンド。
7.2. パーティションの種類
7.2.1. パーティションとは
パーティションは1台のディスクドライブを分割する論理的な区画のこと。 パーティションごとに異なるファイルシステムを作成することが可能。
パーティションには基本パーティション、拡張パーティション、論理パーティションの種類がある。
基本パーティション
基本パーティションはディスクに最大4つまで作れることができるパーティション。
ディスク/dev/sda
に対して/dev/sda1
-/dev/sda4
と命名される。
MBRのうち64バイト(16x4)はこの情報に充てられ、ファイルシステムが格納される。
拡張パーティション
拡張パーティションは基本パーティションの1つを拡張パーティションにしたもので、ファイルシステムではなく論理パーティションが格納される。 基本パーティションのうち1つのみしか拡張パーティションとして使用できない。
論理パーティション
論理パーティションは拡張パーティション内に作成されたパーティションのこと。 デバイスファイルの命名測は必ず5番から始まる。
7.2.2. UEFIベースのシステム分割
UEFIでは拡張パーティション、論理パーティションは存在しない。
7.2.3. パーティションに分割するメリット
パーティション分割のメリットは以下の通り。
- 障害による被害をパーティション内に限定させる
- 空き容量が足りなくなった場合の影響を少なくする
- ログであふれた場合など
7.2.4. パーティション形式のMBRとGPT
MBRとGPTはパーティション形式。
MBR | GPT | |
---|---|---|
ハードディスク制限 | 2GB | - |
基本パーティション | 4個 | 128 |
MBR
MBR(Master Boot Record)は1983年にIBM PC DOS 2.0に初発表された古いディスクタイプのこと。 BIOSをサポートする。
MBRセクターとパーティションで構成される。 特徴は以下の通り。
- 基本パーティションと拡張パーティションといった2種類のみを作成可能
- 最大4つのパーティションが作成可能
- MBRディスクの最大容量の制限が2TB
GPT
GPT(GUIDパーティションテーブル)はMBRより新しい規格。 UEFIをサポートする。
保護MBRとプライマリーGPTヘッダ、パーティションエントリで構成される。 特徴は以下の通り。
- 基本的には無制限なパーティションが作成可能
- windowsではパーティションを最大128個作成可能
- 拡張パーティション、論理パーティションがない
- MBRディスクより安全性と信頼性が高い
7.3. ルートファイルシステム
ルートファイルシステムは/
を含むファイルシステムのこと。
Linuxシステムを構築する際は複数のパーティションを用意し/var
, /home
などのディレクトリは別のパーティションを割り当ててマウントするのが一般的となる。なおこの場合は/var
や/home
などは独立したファイルシステムとなる。
なお必ずルートファイルシステムに置く必要のあるディレクトリは以下の通り。
/bin
... システムに必要なコマンド、プログラム。一般ユーザー用/sbin
... システムに必要なコマンド、プログラム。管理者用/etc
... システムの設定ファイル群/lib
... 共有ライブラリ/dev
... デバイスファイル
7.4. パーティション管理のコマンド
7.4.1. fdiskコマンド
パーティションの作成、削除、変更、情報表示等ができるコマンド。
情報表示
-l
オプションで現在のパーティションテーブルの状態を表示する。
対話形式でパーティションの管理を行う
パーティションの作成、削除、変更、情報表示のためには、fdiskコマンドを使用する。
操作コマンド | 説明 |
---|---|
m | 使用可能なサブコマンドの一覧表示 |
p | 現在のパーティションテーブルの表示 |
n | 新しいパーティションテーブルの作成 |
d | 既存のパーティションテーブルの削除 |
l | 設定可能なパーティションタイプの一覧表示 |
a | ブートフラグをオン、またはオフにする |
t | パーティションタイプの設定、変更 |
w | パーティションテーブルの変更を保存して終了 |
q | パーティションテーブルの変更を保存せずに終了 |
7.4.2. gdiskコマンド
GPTを使用してパーティションの作成、削除、変更、情報表示等ができるコマンド。
情報表示
-l
オプションで現在のパーティションテーブルの状態を表示する。
対話形式でパーティションの管理を行う
パーティションの作成、削除、変更、情報表示のためには、gdiskコマンドを使用する。
操作コマンド | 説明 |
---|---|
l | パーティションタイプを一覧表示する |
n | パーティションを作成する |
d | パーティションを作成する |
p | パーティションテーブルを作成する |
t | パーティションタイプを変更する |
w | パーティションテーブルの変更を保存して終了する |
q | パーティションテーブルの変更を保存しないで終了する |
? | ヘルプメニューを表示する。 |
7.4.3. partedコマンド
MBR,GPT両対応したパーティションの作成、削除、変更、情報表示等ができるコマンド。
情報表示
-l
オプションで現在のパーティションテーブルの状態を表示する。
対話形式でパーティションの管理を行う
パーティションの作成、削除、変更、情報表示のためには、paretdコマンドを使用する。
操作コマンド | 説明 |
---|---|
mklabel ラベル | 新しいラベルを作成する。2TB以上のディスクの場合は「gpt」を指定してGPT、それ以下の場合は「msdos」を指定してMBRにパーティション構成を 格納する。loop/bsd/macなども使用できる。 |
--- | --- |
mkpart パーティションタイプ開始場所,終了場所 | パーティションタイプはprimary(基本パーティション)、extend(拡張パーティション)、logicalを指定する。 指定した開始から終了までの領域でパーティションを作成する (例:0MBから150MB、0%から15%などのように指定する) |
mkfs 番号 ファイルシステム | 指定したパーティション番号に指定したファイルシステムを作成する。ファイルシステムにはfat16/fat32/ext2/linux-swapなどが選択できる。 それ以上のファイルシステムは別コマンドを利用する必要がある |
パーティション情報を表示する | |
quit | partedを終了する |
resize パーティション番号開始 終了 | 指定した番号のパーティションを開始、終了で指定する領域にサイズ変更する。ファイルシステムが既に作られている必要がある |
rm パーティション番号 | 指定した番号のパーティションを削除する |
select デバイス | 指定したデバイスを対象に扱う |
unit 単位 | デフォルトのサイズ単位を指定する。TB/TiB/GB/GiB/MB/MiBなどを指定できる |
set パーティション番号 フラグ 状態 | 指定したフラグを設定する。フラグは「boot」、「root」、「swap」など、状態を「on」「off」を指定する |
help | 利用できるコマンドを表示する |
7.5. ファイルシステム
7.5.1. ファイルシステムとは
ファイルシステムはパーティション上に作成されるもので、ファイルシステムの作成によりファイルが保存できるようになる。 ファイルシステムは以下要素で構成される。
- ファイルの中身情報
- inode(Indexノード)
- ファイルの属性
- 管理データ
7.5.2. ファイルシステムの種類
ファイルシステムは以下のようなものがある。
Linux向けのファイルシステム
ファイルシステム | 説明 |
---|---|
ext2 | 標準 |
ext3 | ext2機能+ジャーナリング機能 |
ext4 | ext3+拡張機能 |
UNIX系OSから移植されたファイルシステム
ファイルシステム | 説明 |
---|---|
XFS | SGI社が開発。ジャーナリング機能あり |
JFS | IBM社が開発。ジャーナリング機能あり |
その他のファイルシステム
ファイルシステム | 説明 |
---|---|
Brtfs | 高機能なファイルシステム |
iso9660 | CD-ROMのファイルシステム |
msdos | MS-DOSのファイルシステム |
vfat | SDカードや古いwindowsのファイルシステム |
exFAT | FAT後継規格でフラッシュメモリ向けのファイルシステム |
7.5.3. ファイルシステムのマウント
マウントはあるパーティションとあるディレクトリを関連づける作業のこと。 パーティションにファイルシステムを作成した後、マウントを行う必要がある。
恒常的なマウント設定
恒常的なマウントを行うためには以下の手順でマウントを行う必要がある。
/etc/fstab
ファイルの編集mount
コマンドの実行、または再起動(init 6)の実行
/etc/fstabの書き方
/etc/fstab
ファイルは以下のように記述される。
左から順に以下意味となる。
- マウントするデバイスファイル名
- マウントポイント
- ファイルシステムの種類(ext2,xfsなど)
- マウントオプション(async, auto, defaults, exex, noexecなど)
- dumpコマンドによるアップデート対象かどうかの指定(0:バックアップ必要なし、1:バックアップ必要あり)
mountコマンド
ファイルシステムのマウントを行うコマンド。
unmountコマンド
現在マウントされているファイルシステムをアンマウントするコマンド。
7.5.3. ファイルシステムの確認コマンド
dfコマンド
ファイルシステムの空き容量やinodeの使用状況が確認できるコマンド。 ファイルシステムの空き容量の表示ができる。
オプション | 説明 |
---|---|
-i | inodeの使用状況を表示 |
-h | 容量を単位(MBやGB)で表示 |
-k | 容量をKB単位で表示 |
-m | 容量をMB単位で表示 |
duコマンド
ディレクトリやファイルの容量を表示するコマンド。 ディレクトリ内のファイルが使用している容量を表示できる。
オプション | 説明 |
---|---|
-a | ディレクトリだけでなく、ファイル容量も表示 |
-c | 合計容量も同時に表示 |
-h | 容量を単位(MBやGB)に変換して表示 |
-k | 容量をKB単位で表示 |
-m | 容量をMB単位で表示 |
-s | 指定したファイルやディレクトリのみの合計を表示 |
-S | サブディレクトリ内の容量を含まずに合計を表示 |
7.5.4. ファイルシステムの作成と修復のコマンド
mkfsコマンド
パーティション上にファイルシステムを作成するコマンド。
mke2fsコマンド
パーティション上にファイルシステムを作成するコマンド。 ext2, ext3, ext4ファイルシステムを作成する場合に利用する。 デフォルトではext2を作成する。
オプション | 説明 |
---|---|
-t ファイルシステムタイプ | ファイルシステムの種類を指定する |
-j | ext3ファイルシステムを作成する |
-c | 実行前に不良ブロックを検査する |
mkswapコマンド
パーティション上にスワップ領域作成するコマンド。
fsckコマンド
ファイルシステムの整合性チェックと障害箇所の修復ができるコマンド。 システム障害によりファイルシステムに障害が発生した場合に使用する。
オプション | 説明 |
---|---|
-t | ファイルシステムの種類の指定 ( ext2、ext3、xfsなど ) |
-a | 自動的に修復を実行 |
-r | 対話的に修復を実行 |
-A | /etc/fstab に記述されている全てのファイルシステムの検査 |
-N | 実際には修復を行わず、コマンドが実行する内容を表示 |
e2fsckコマンド
ext2、ext3、ext4のファイルシステムでファイルシステムの整合性チェックと障害箇所の修復ができるコマンド。
オプション | 説明 |
---|---|
-c | 不良ブロックの検査 |
-p | 全ての不良ブロックを自動的に修復 |
-v | 詳細情報を表示 |
-y | 全ての問い合わせに対して、自動的に「yes」と回答 |
-n | 全ての問い合わせに対して、自動的に「 no 」と回答 |
tune2fsコマンド
ext2,ext3.ext4ファイルシステムの様々なパラメーターを設定するコマンド。
オプション | 説明 |
---|---|
-c 回数 | e2fsckコマンドでファイルシステムのチェックを行うまでの最大マウント回数を指定 |
-i 時間[d,m,w] | e2fsckコマンドでファイルシステムのチェックを行うまでの最大時間間隔を指定。時間のみまたはdを付けると「日」、mを付けると「月」、wを付けると「週」 |
-j | ext2をext3ファイルシステムに変換 |
-L ラベル名 | ファイルシステムのボリュームラベルを設定 |