12-LPIC「level1」

LPIC|level 1【パーティションとファイルシステム】

目標

  • パーティションについて理解する
  • ファイルシステムについて理解する
  • ジャーナリングファイルシステムについて理解する

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

パーティションとファイルシステムについては、次の記事も参考にしてください。

Virtual Box & Linux(Part.21)| Linux リソースの利用(1)| 現役エンジニア&プログラミングスクール講師Linuxのパーティションについて記事にしています。「デバイスドライバ」「デバイスファイル」「パーティション」「ファイルシステム」について扱っています。...

パーティション

パーティションの概要

パーティション(Partition)とは、ハードディスクやSSDなどのストレージデバイスを論理的に分割する仕組みのことです。ストレージ全体を1つの大きな領域として使うのではなく、用途ごとに分けることで、データの管理やOSの運用がしやすくなります。

パーティションを分ける理由

パーティションを分割する理由には次のものがあります。

  • システムとデータを分けることで、OSが壊れてもデータを保護できる
  • 複数のOS(例:WindowsとLinux)を共存させるため
  • バックアップや復旧をしやすくするため
  • ファイルシステムを使い分けるため(例:ext4、xfsなど)

Linuxでの基本的なパーティション構成

Linuxのインストール時に、次のようなパーティションを作成するのが一般的です。

パーティション用途解説
/ (ルート)システム全体OSやアプリケーションが入る基本領域
/homeユーザーデータ各ユーザーのデータを保存(分けるとアップグレード時に便利)
swap仮想メモリRAMが足りない時に使われる補助的な領域
/bootブートローダーLinuxの起動に必要なファイルを保存

パーティション管理コマンドの概要

Linuxでディスクのパーティションを管理するには、いくつかのCLI(コマンドラインインタフェース)ツールが用意されています。代表的なものは以下の3つです。

コマンド対応パーティション形式特徴
fdiskMBR古くからある標準的ツールです。MBR専用です。
gdiskGPTGPT専用のパーティション編集ツールです。
partedMBR・GPT 両対応柔軟性が高くスクリプト処理にも対応しています。変更が即時反映される点では注意が必要です。

fdiskコマンド(MBR専用)

fdiskはMBR(Master Boot Record)形式のディスクに対してパーティションの作成・削除などを行うツールです。代表的な操作例は次の通りです。

sudo fdisk /dev/sdX

※ /dev/sdX は対象ディスク(例:/dev/sda)

この操作は対話形式で進みます。対話形式で利用する主なサブコマンドは以下の通りです。

  • m ヘルプを表示
  • p パーティション一覧を表示
  • n 新しいパーティションを作成
  • d パーティションを削除
  • w 変更を保存して終了
  • q 変更を保存せずに終了

wで書き込むまで変更は反映されません。

gdiskコマンド(GPT専用)

gdiskは、GPT(GUID Partition Table)形式のディスク専用のパーティション編集ツールで、fdiskに似た操作感を持っています。代表的な操作例は次の通りです。

sudo gdisk /dev/sdX

操作はfdiskと似ています。主なサブコマンドは次の通りです。(fdiskと共通)

  • p パーティション一覧を表示
  • n 新しいパーティションを作成
  • d パーティションを削除
  • w 変更を保存して終了
  • q 変更を保存せずに終了

GPT形式の大容量ディスクに対応しています。

partedコマンド(MBR/GPT 両対応)

partedはMBRにもGPTにも対応したパーティション編集ツールで、スクリプトや自動処理に向いている柔軟な設計です。

sudo parted /dev/sdX

または、コマンドを一行で使うことも可能です。

sudo parted /dev/sdX mklabel gpt

partedの主なサブコマンドは次の通りです。

  • mklabel パーティションテーブルを新しく作成(例:msdos, gpt)
  • mkpart 新しいパーティションを作成(種類や範囲を指定)
  • rm パーティションを削除
  • print パーティションの現在の状態を表示
  • quit partedを終了する

partedは操作ごとに即時反映されます。確認せずに実行するとディスクを壊す恐れがあるため、慎重に操作する必要があります。また、GPTを使いたい場合は、最初に mklabel gpt を使ってGPT形式に初期化する必要があります。

partedコマンドでの操作例

GPTパーティションテーブルの作成

sudo parted /dev/sdX mklabel gpt

パーティションの作成(例:ext4用、開始1MiB、終了512MiB)

sudo parted /dev/sdX mkpart primary ext4 1MiB 512MiB

現在のパーティションを表示

sudo parted /dev/sdX print

ファイルシステム

ファイルシステムの概要

ファイルシステムとは、データをディスク上に整理して保存・管理するための仕組みです。ファイルやディレクトリの構造、アクセス権限、使用可能な容量、速度、信頼性などに影響を与えるため、用途に応じたファイルシステムを選択することが重要です。

主なファイルシステムの種類と特徴(Linux編)

ファイルシステム特徴主な用途
ext4・Linuxの標準的なファイルシステム
・高い安定性と互換性
・ジャーナリング機能あり
デスクトップ・サーバー問わず広く利用
xfs・大容量ファイル・パーティションに強い
・高いパフォーマンス(特に書き込み)
・拡張に強いが縮小はできない
大規模サーバーやファイルサーバー向け
btrfs・スナップショット、圧縮、RAID対応など高機能
・ZFSに似た設計だが、開発中の機能も多い
開発用途やスナップショットが必要な環境
FAT32 / exFAT・Windows互換性が高い
・FAT32は4GB制限あり、exFATは制限緩和版
USBメモリ・SDカードなどでのデータ共有
NTFS・Windowsの標準ファイルシステム
・Linuxからの読み書きも可能(ntfs-3gなど)
Windowsとのデュアルブートや共有ディスク

ファイルシステムの選び方

  • ext4:一般的に利用されるファイルシステムです。
  • xfs:大量のログ・大容量ファイルを扱うサーバーなどに最適です。
  • btrfs:スナップショットによるバックアップや複雑な構成が必要な場合に利用します。
  • FAT32 / exFAT:他OSと共有するUSBドライブなどで利用します。
  • NTFS:Windowsと併用する環境で利用します。

ファイルシステムの作成コマンド例(mkfs)

パーティションを作成した後、その領域にファイルシステムを作成するには mkfs コマンドを使います。

ext4ファイルシステムを作成

sudo mkfs.ext4 /dev/sdX1

xfsファイルシステムを作成

sudo mkfs.xfs /dev/sdX1

btrfsファイルシステムを作成

sudo mkfs.btrfs /dev/sdX1

/dev/sdX1 の部分は、パーティションの名前に置き換えてください。

ジャーナリングファイルシステム

ジャーナリングファイルシステムの概要

ジャーナリングファイルシステムとは、ファイルやディレクトリの変更を実行する前に「ジャーナル(ログ)」に記録しておくことで、システム障害(例:電源断、クラッシュ)からの復旧を早く・安全に行えるようにしたファイルシステムです。

ジャーナリングファイルシステムの必要性

従来のファイルシステムでは、予期しないシャットダウン時に、ファイル構造が壊れたり整合性が失われたりするリスクがありました。これに対して、ジャーナリングによって、変更内容を一時的にログに記録するため、障害発生後でもログをもとにシステムの整合性を素早く復元できます。

ジャーナリングファイルシステムの仕組み(処理の流れ)

  1. ファイルシステムへの変更要求が来る
  2. まずその変更を「ジャーナル」に記録(まだ本体は書き換えない)
  3. ジャーナルへの記録が成功したら、本体のファイルシステムに変更を適用
  4. 完了したらジャーナルを消去(または無効化)

ジャーナルの記録方式(モード)

ジャーナリングには主に以下の3つのモードがあります。

  • Writeback(書き戻し)…パフォーマンスを重視するならWriteback
    ジャーナルにはメタデータのみ記録。パフォーマンス重視。
    ⇒ 多少のデータ喪失リスクあり
  • Ordered(順序付き)…バランスを重視するならOrdered
    データの書き込みとメタデータのジャーナル記録の順序を保証。
    ⇒ Linuxのext3で一般的な方式。安全性と速度のバランス
  • Journal(完全ジャーナル)…安全性重視ならJournal
    データもメタデータもジャーナルに記録。最も安全だが遅い
モードジャーナルに記録する内容書き込み順序保証パフォーマンス安全性・整合性
Writebackメタデータのみ保証しない◎(高速)△(不完全)
Orderedメタデータのみ保証する
Journalメタデータ+データ完全保証△(遅い)◎(完全)

代表的なジャーナリングファイルシステム

代表的なジャーナリングファイルシステムには次のものがあります。

名前主な用途・特徴
ext3/ext4Linuxで広く使われる。ext4は高速・信頼性向上
NTFSWindowsで使われる。セキュリティ機能も豊富
XFS大規模システム向け。高速なジャーナリング
APFSAppleのmacOS/iOSで使用。スナップショット対応

ジャーナリングファイルシステムのメリットとデメリット

  • メリット
    • システムクラッシュ後の復旧が高速
    • ファイルシステムの一貫性が保たれる
    • 管理者の手間が減る
  • デメリット
    • パフォーマンスに若干の影響あり
    • SSDの寿命に影響を与える可能性(書き込み回数が増える)

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST