コンテンツにスキップ

7. パーティションとファイルシステム

7.1. ハードディスクとその関連規格

7.1.1. Linuxにおけるハードディスクの利用方法

Linuxでハードディスクを使用するには以下のステップを行う必要がある。

  1. 電源OFFの状態で、ハードディスクをシステムに物理的に接続
  2. 追加したハードディスクのデバイスファイルが作成されていることを確認
  3. ハードディスクにパーティションを切る(fdiskコマンド)
  4. 各パーティションにおいてext3ファイルシステムを作成(mke2fsコマンド)
  5. ファイルシステムのマウント(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コマンド

ブロックデバイスを一覧するコマンド。

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

MBRセクターとパーティションで構成される。 特徴は以下の通り。

  • 基本パーティションと拡張パーティションといった2種類のみを作成可能
  • 最大4つのパーティションが作成可能
  • MBRディスクの最大容量の制限が2TB

GPT

GPT(GUIDパーティションテーブル)はMBRより新しい規格。 UEFIをサポートする。

GPT

保護MBRとプライマリーGPTヘッダ、パーティションエントリで構成される。 特徴は以下の通り。

  • 基本的には無制限なパーティションが作成可能
  • windowsではパーティションを最大128個作成可能
  • 拡張パーティション、論理パーティションがない
  • MBRディスクより安全性と信頼性が高い

7.3. ルートファイルシステム

ルートファイルシステムは/を含むファイルシステムのこと。 Linuxシステムを構築する際は複数のパーティションを用意し/var, /homeなどのディレクトリは別のパーティションを割り当ててマウントするのが一般的となる。なおこの場合は/var/homeなどは独立したファイルシステムとなる。

なお必ずルートファイルシステムに置く必要のあるディレクトリは以下の通り。

  • /bin ... システムに必要なコマンド、プログラム。一般ユーザー用
  • /sbin ... システムに必要なコマンド、プログラム。管理者用
  • /etc ... システムの設定ファイル群
  • /lib ... 共有ライブラリ
  • /dev ... デバイスファイル

7.4. パーティション管理のコマンド

7.4.1. fdiskコマンド

パーティションの作成、削除、変更、情報表示等ができるコマンド。

fdisk <オプション> <デバイスファイル>

情報表示

-lオプションで現在のパーティションテーブルの状態を表示する。

fdisk -l /dev/sda

対話形式でパーティションの管理を行う

パーティションの作成、削除、変更、情報表示のためには、fdiskコマンドを使用する。

fdisk /dev/sda
操作コマンド 説明
m 使用可能なサブコマンドの一覧表示
p 現在のパーティションテーブルの表示
n 新しいパーティションテーブルの作成
d 既存のパーティションテーブルの削除
l 設定可能なパーティションタイプの一覧表示
a ブートフラグをオン、またはオフにする
t パーティションタイプの設定、変更
w パーティションテーブルの変更を保存して終了
q パーティションテーブルの変更を保存せずに終了

7.4.2. gdiskコマンド

GPTを使用してパーティションの作成、削除、変更、情報表示等ができるコマンド。

gdisk <オプション> <デバイスファイル>

情報表示

-lオプションで現在のパーティションテーブルの状態を表示する。

gdisk -l /dev/sda

対話形式でパーティションの管理を行う

パーティションの作成、削除、変更、情報表示のためには、gdiskコマンドを使用する。

gdisk /dev/sda
操作コマンド 説明
l パーティションタイプを一覧表示する
n パーティションを作成する
d パーティションを作成する
p パーティションテーブルを作成する
t パーティションタイプを変更する
w パーティションテーブルの変更を保存して終了する
q パーティションテーブルの変更を保存しないで終了する
? ヘルプメニューを表示する。

7.4.3. partedコマンド

MBR,GPT両対応したパーティションの作成、削除、変更、情報表示等ができるコマンド。

parted <オプション> <デバイスファイル>

情報表示

-lオプションで現在のパーティションテーブルの状態を表示する。

parted -l /dev/sda

対話形式でパーティションの管理を行う

パーティションの作成、削除、変更、情報表示のためには、paretdコマンドを使用する。

parted /dev/sda
操作コマンド 説明
mklabel ラベル 新しいラベルを作成する。2TB以上のディスクの場合は「gpt」を指定してGPT、それ以下の場合は「msdos」を指定してMBRにパーティション構成を
格納する。loop/bsd/macなども使用できる。
--- ---
mkpart パーティションタイプ開始場所,終了場所 パーティションタイプはprimary(基本パーティション)、extend(拡張パーティション)、logicalを指定する。
指定した開始から終了までの領域でパーティションを作成する
(例:0MBから150MB、0%から15%などのように指定する)
mkfs 番号 ファイルシステム 指定したパーティション番号に指定したファイルシステムを作成する。ファイルシステムにはfat16/fat32/ext2/linux-swapなどが選択できる。
それ以上のファイルシステムは別コマンドを利用する必要がある
print パーティション情報を表示する
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. ファイルシステムのマウント

マウントはあるパーティションとあるディレクトリを関連づける作業のこと。 パーティションにファイルシステムを作成した後、マウントを行う必要がある。

恒常的なマウント設定

恒常的なマウントを行うためには以下の手順でマウントを行う必要がある。

  1. /etc/fstabファイルの編集
  2. mountコマンドの実行、または再起動(init 6)の実行

/etc/fstabの書き方

/etc/fstabファイルは以下のように記述される。

/dev/sda5  /home  ext4  defaults  1  2

左から順に以下意味となる。

  1. マウントするデバイスファイル名
  2. マウントポイント
  3. ファイルシステムの種類(ext2,xfsなど)
  4. マウントオプション(async, auto, defaults, exex, noexecなど)
  5. dumpコマンドによるアップデート対象かどうかの指定(0:バックアップ必要なし、1:バックアップ必要あり)

mountコマンド

ファイルシステムのマウントを行うコマンド。

mount /dev/sda6 /home3

unmountコマンド

現在マウントされているファイルシステムをアンマウントするコマンド。

unmount  /dev/sda6 /home3

7.5.3. ファイルシステムの確認コマンド

dfコマンド

ファイルシステムの空き容量やinodeの使用状況が確認できるコマンド。 ファイルシステムの空き容量の表示ができる。

df <オプション> <デバイス名/ディレクトリ>
オプション 説明
-i inodeの使用状況を表示
-h 容量を単位(MBやGB)で表示
-k 容量をKB単位で表示
-m 容量をMB単位で表示

duコマンド

ディレクトリやファイルの容量を表示するコマンド。 ディレクトリ内のファイルが使用している容量を表示できる。

du <オプション> <デバイス名/ディレクトリ>
オプション 説明
-a ディレクトリだけでなく、ファイル容量も表示
-c 合計容量も同時に表示
-h 容量を単位(MBやGB)に変換して表示
-k 容量をKB単位で表示
-m 容量をMB単位で表示
-s 指定したファイルやディレクトリのみの合計を表示
-S サブディレクトリ内の容量を含まずに合計を表示

7.5.4. ファイルシステムの作成と修復のコマンド

mkfsコマンド

パーティション上にファイルシステムを作成するコマンド。

mkfs -t ext4 <デバイス名>

mke2fsコマンド

パーティション上にファイルシステムを作成するコマンド。 ext2, ext3, ext4ファイルシステムを作成する場合に利用する。 デフォルトではext2を作成する。

mke2fs -t ext4 <デバイス名>
オプション 説明
-t ファイルシステムタイプ ファイルシステムの種類を指定する
-j ext3ファイルシステムを作成する
-c 実行前に不良ブロックを検査する

mkswapコマンド

パーティション上にスワップ領域作成するコマンド。

mkswap /dev/sda7

fsckコマンド

ファイルシステムの整合性チェックと障害箇所の修復ができるコマンド。 システム障害によりファイルシステムに障害が発生した場合に使用する。

fsck <オプション> <デバイス名>
オプション 説明
-t ファイルシステムの種類の指定 ( ext2、ext3、xfsなど )
-a 自動的に修復を実行
-r 対話的に修復を実行
-A /etc/fstab に記述されている全てのファイルシステムの検査
-N 実際には修復を行わず、コマンドが実行する内容を表示

e2fsckコマンド

ext2、ext3、ext4のファイルシステムでファイルシステムの整合性チェックと障害箇所の修復ができるコマンド。

e2fsck <オプション> <デバイス名>
オプション 説明
-c 不良ブロックの検査
-p 全ての不良ブロックを自動的に修復
-v 詳細情報を表示
-y 全ての問い合わせに対して、自動的に「yes」と回答
-n 全ての問い合わせに対して、自動的に「 no 」と回答

tune2fsコマンド

ext2,ext3.ext4ファイルシステムの様々なパラメーターを設定するコマンド。

tune2fs <オプション> <デバイス名>
オプション 説明
-c 回数 e2fsckコマンドでファイルシステムのチェックを行うまでの最大マウント回数を指定
-i 時間[d,m,w] e2fsckコマンドでファイルシステムのチェックを行うまでの最大時間間隔を指定。時間のみまたはdを付けると「日」、mを付けると「月」、wを付けると「週」
-j ext2をext3ファイルシステムに変換
-L ラベル名 ファイルシステムのボリュームラベルを設定