Linuxを日常的に使う実験ブログ

Linuxで使えるパーティション管理ツールの比較

 2022-07-09

 2022-08-07

 Linux全般

こんにちは。今回のテーマは「Linuxで使えるパーティション管理ツールの比較」です。Linuxをインストールする前に必ずと言っていいほど行うストレージのパーティショニングですが、このパーティショニングを行うための管理ツールはたくさんあります。しかし、fdiskやcfdisk, gdiskなど似たような名前のツールが多いのに機能や操作体系が異なっていて少しゴチャゴチャとしています。今回はパーティション管理ツールを紹介しながら整理してみたいと思います。

はじめに

パーティショニングテーブルについて

パーティションとはハードディスクの記憶容量を理論的に分割した個々の部分を指しますが、このパーティションをどのようなルールに則って配置するかによっていくつかの形式があります。ディスクラベルとも呼ばれます(詳細は後述)。Linuxを使う上で知っておきたいパーティションテーブルはMBR(Master Boot Record)とGPT(GUID Patition table)です。ざっくりとですが、起動にBIOSシステムを使用する場合はMBR、UEFIシステムを使用する場合はGPTの組み合わせで使用することが多いと思います(例外もあり得ます)。GPTはMBRを置き換えることを意図しており、新しいスタイルですので、筆者としてはGPTを推奨しますが、BIOSしか使えない古いマシンにLinuxをインストールするなどの場合にはMBRを選択するほうがブートローダのインストールなどは楽になります。

パーティションテーブルとディスクラベル

パーティションテーブルとほぼ同じ意味として使われいる言葉にディスクラベルという言葉があります。いずれの言葉もMBRやGPTなどの種別を指すものとして使われているようです。例えばArchwikiではパーティションテーブルを使用していますし、sfdiskのマニュアル内ではディスクラベルとパーティションテーブルは同じ意味の言葉として混同して使われています。GNU Partedのコマンドでもmklabelとmktableは同じ機能を有するコマンドとして提供され、ヘルプ画面の説明も

create new disklabel (partition table)

と記載されています。本稿では記述を統一するためArchwiki方式に倣いパーティションテーブルで記述します。

CUI/TUIツール

fdisk

fdiskは対話型のパーティショニングツールです。sfdisk同様にlibfdiskを利用したフロントエンドです。コマンドによる対話形式でパーティショニングをすることができ、書き込み実行するまでは実際にストレージに書き込まれることはないので安心して作業を進めることができます。従来は主にMBR用のツールとして使われる場面が多かったですが、近年ではGPTにも対応しておりGPTのパーティションテーブルの作成も問題なくできます。尚、ArchwikiにはfdiskはMBR用、gdiskはGPT用のユーティリティである旨の記載があります。

項目説明
対応パーティションテーブルMBR, GPT, Sun, SGI, BSD
操作体系対話モードのコマンド入力
パーティションテーブル作成可能
ディスクへの書き込み書き込み実行まで反映されない
主な用途新規パーティションテーブル作成やパーティションの追加、削除、容量変更など

fdisk画面

fdisk画面

cfdisk

cfdiskはfdiskのTUI版と言う感じのツールです。対話型というよりはncursesベースで作成された画面を操作することでパーティショニングの設定やストレージの状態を確認することが出来るツールです。fdiskと同様に書き込みを実行するまではストレージに変更が反映されることがないため、失敗を恐れず変更をすることができます。

項目説明
対応パーティションテーブルMBR, GPT, Sun, SGI, BSD
操作体系ncursesのTUI画面上での操作
パーティションテーブル作成-z オプションで作成可能
ディスクへの書き込み書き込み実行まで反映されない
主な用途パーティションの編集(削除や追加、容量変更)

※記事作成時にパーティションテーブル作成不可と記載しましたが、-zオプションで作成可能である点を見落としていましたので修正いたしました。

cfdisk画面

cfdisk画面

sfdisk

sfdiskはlibfdisk系のスクリプト指向のツールです。fdisk互換のスクリプトを使用してパーティションの操作を行うことができます。スクリプトを指定しないと対話型のツールとしても使用することができますが、スクリプトの書き方を知らないと使いこなすのは難しいと思います。本稿では詳細なコマンドの説明は省略します。sfdiskに興味のある方はman page of SFDISKを参考にしてください。個人的な意見ですが初心者にはあまり向かないツールだと思います。

項目説明
対応パーティションテーブルMBR, GPT, SUN, SGI (*1)
操作体系スクリプトの読み込み、対話モードでの操作
パーティションテーブル作成可能
ディスクへの書き込み対話モードでは書き込み実行で反映
主な用途新規パーティションテーブル作成やパーティションの編集など

(*1) Ver 2.26の場合

sfdisk画面

sfdisk画面

gdisk

GPT向けのパーティショニングツールとして登場した対話型のツールです。GPT fdiskの略からgdiskと名付けています。新たなストレージGPTでパーティショニングを行う予定であればgdiskを選択するのが良いと思います。

項目説明
対応パーティションテーブルGPT
操作体系対話モードのコマンド入力
パーティションテーブル作成GPTのみ可能
ディスクへの書き込み書き込み実行まで反映されない
主な用途GPTパーティションテーブル作成やパーティション編集

gdisk画面

gdisk画面

cgdisk

cgdiskとgdiskの関係は名前の通り、cfdiskとfdiskの関係と似ています。操作体系はcfdiskに酷似しており、基本的にキーボードの矢印キーで操作可能です。cfdiskと同様に新規のパーティションテーブルの作成などはできず、GPTのパーティション領域の削除や追加と行った基本的な操作が可能です。予め作成されたGPTに対する操作であれば、cgdiskは初心者でも扱える手軽なツールとして選択肢に入ると思います。

項目説明
対応パーティションテーブルGPT
操作体系ncursesのTUI画面上での操作
パーティションテーブル作成不可
ディスクへの書き込み書き込み実行まで反映されない
主な用途GPTパーティションの削除や追加、容量変更

cgdisk画面

cgdisk画面

sgdisk

コマンド操作によってGPTパーティションテーブルの操作を行うためのツールです。パーティションの追加や削除といった基本的な操作もできますが、主な用途としてはGPT <-> MBRの変換だと思います。

項目説明
対応パーティションテーブルGPT
操作体系コマンド入力
パーティションテーブル作成可能
ディスクへの書き込みコマンド実行時に即時反映
主な用途GPTとMBRの変換

GNU Parted (parted)

個人的には使い勝手があまり良いとは思わないのですが、十徳ナイフのように一つで色々出来るツールです。libpartedライブラリを利用したコマンドラインフロントエンドであり、多くのパーティションテーブルに対応しています。fdisk系のツールと異なり、設定を行う毎にハードディスクに書き込みが行われ不可逆な処理となること点が少し初心者には難しいかも知れません。しかし出来ることが多く、細かい設定が出来るため、partedが使えると他のツールは覚えなくとも良いと思えるぐらい応用が利きます。

項目説明
対応パーティションテーブルaix, amiga, bsd, dvh, gpt, loop, mac, msdos(MBR), pc98, sun
操作体系コマンドラインモード、対話モードがある
パーティションテーブル作成可能
ディスクへの書き込みコマンド入力時に反映
主な用途パーティションテーブルの作成、パーティションの追加や削除、容量変更など

GNU Parted画面

GNU Parted画面

GUIツール

GPaterd

前述のGNU PartedのGTK系のGUIフロントエンドです。最近はGUIでのインストールが一般的になったため、多くのディストリビューションではインストールメディアの標準パーティショニングツールとしてGPatedが導入されています。インストーラからGPaterdを起動する場合もあります。もはやGUIパーティショニングツールのデファクトとも言えるGPaterdですので、使ったことがある方も多いかと思います。特徴はGUIでパーティショニングを視覚的に捉えながら行える点だと思います。これらのメリットは前述のCUI/TUIのツールでは得られないメリットです。マウス操作で直感的にパーティショニングしたいという方にはぴったりですね。

項目説明
対応パーティションテーブルaix, amiga, bsd, dvh, gpt, loop, mac, msdos(MBR), pc98, sun
操作体系マウスによる直感的な操作
パーティションテーブル作成可能
ディスクへの書き込み書き込み実行時に反映
主な用途パーティションテーブルの作成、パーティションの追加や削除、容量変更など

GParted画面

GParted画面

KDE Partition Manager

GPartedがGTK系のGUIフロントエンドであったのに対して、KDE Partition ManagerはGNU PartedのQt系のGUIフロントエンドです。基本的にできるこはGNU PartedやGPartedと代わりありません。KDEユーザーやQt系のアプリケーションを好んで使う方にとっては見た目の統一感からKDE Partition managerを選択する方も多いと思います。またKDEが標準デスクトップとなっているディストリビューションには標準のパーティショニングツールとして採用されている可能性も高く、操作に慣れておくと便利かも知れませんね。

項目説明
対応パーティションテーブルaix, amiga, bsd, dvh, gpt, loop, mac, msdos(MBR), pc98, sun
操作体系マウスによる直感的な操作
パーティションテーブル作成可能
ディスクへの書き込み書き込み実行時に反映
主な用途パーティションテーブルの作成、パーティションの追加や削除、容量変更など

最後に

Linuxのパーティショニングツール、たくさんありましたね。一度整理してみたいと思っていたので自分のためにも今回記事化してみました。日常ではあまりお世話になるツールではないかも知れませんが、特徴を知って使い分けられると便利かなと思います。本稿が何かのお役に立てると幸いです。

※本記事の内容は執筆時のものであり、アプリケーションの仕様変更などで本記事内容と乖離が生じる場合があります。ご了承ください。