直感TUIで迷わない!Linuxパーティション操作ツールcfdisk実践ガイド

はじめに

Linuxサーバーのストレージ拡張や新規ディスクの導入時、従来のfdiskにおけるコマンド対話形式に煩雑さを感じるエンジニアは少なくありません。cursesベースの直感的なテキストUI(TUI)を備えたcfdiskを活用すれば、視覚的にパーティション構成を把握しながら安全かつ確実なディスク設計が可能です。本記事では、cfdiskの基礎知識から仮想ディスクイメージを用いた安全な分割演習、さらにはext4ファイルシステムの構築・マウントに至る一連の実務フローを分かりやすく解説します。

パッケージの導入と既存ストレージ構成の事前調査

パーティショニング作業に必要なコアユーティリティを揃えるため、apt-get update -qq && apt-get install -y util-linux parted を実行して関連パッケージをインストールします。

パッケージの更新とutil-linux・partedのインストール

cfdisk は、 curses ライブラリによるメニュー駆動型の画面設計を採用しており、ミスを防ぎつつ効率的なパーティション操作を実現します。
まずは cfdisk --version を投入し、バイナリの導入状態とバージョン番号を確認しておきましょう。
⚙️ [主なコマンドオプション]

-z, --zero : 既存のパーティション情報を読み込まず、クリーンな状態で起動します。
-L, --lock[=mode] : 作業中の競合トラブルを防ぐため、対象デバイスへの排他ロックを制御します。
--color[=when] : コンソール出力時のカラーハイライト表示を設定します。
-V, --version : 導入されているプログラムのバージョン情報を表示します。
-h, --help : 利用可能なオプション群とヘルプメッセージを出力します。

cfdiskのバージョン確認

パーティションを変更する前に、稼働中のブロックデバイス構成とマウント状況を把握する目的で lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS を実行します。
あらかじめ各ドライブの識別名やファイルシステム、マウントポイントを洗い出しておくことで、稼働中のOS領域への誤操作を防ぎ、操作対象となるストレージを的確に特定できます。

lsblkによるストレージデバイスおよびマウント構成の確認

検証用ループバック仮想ディスクイメージの準備

物理ドライブに影響を与えずに安全な環境で操作手順を検証するため、専用ディレクトリを用意して移動します。mkdir -p /tmp/disk-lab && cd /tmp/disk-lab を実行してください。

作業用ディレクトリの作成と移動

実ストレージのデータ破損リスクを完全に排除するため、テスト対象となる1GBのRAWイメージファイルを作成します。ゼロ埋めを行う dd if=/dev/zero of=/tmp/disk-lab/virtual_disk.img bs=1M count=1024 status=progress コマンドを実行します。

ddコマンドを用いた1GB仮想ディスクイメージの作成

生成処理が完了したら、ls -lh /tmp/disk-lab/virtual_disk.img を実行してイメージファイルの容量が意図通り1GBで確保されているかを確かめます。

仮想ディスクファイルのサイズ確認

パーティションテーブルの初期化と領域の分割設定

cfdisk で指定可能な全パラメータや詳細な動作モードを把握するため、cfdisk --help を実行してヘルプ一覧を確認します。

cfdiskのヘルプ画面表示

作成した仮想ディスクにGPTラベルを書き込み、演習用に2つの区画へ切り分けるため、parted -s /tmp/disk-lab/virtual_disk.img mklabel gpt mkpart primary ext4 1MiB 500MiB mkpart primary ext4 500MiB 100% を実行します。

partedコマンドによるGPTテーブル初期化と2分割設定

既存テーブルをクリアして初期状態から認識させる -z フラグを付与し、ターゲットイメージに対する cfdisk の挙動をチェックするため cfdisk -z /tmp/disk-lab/virtual_disk.img --help || true を実行します。

ゼロクリアオプションを指定したcfdiskコマンドの構文検証

設定したパーティションテーブルのレイアウトを検証するため、parted /tmp/disk-lab/virtual_disk.img print を実行します。
出力内容から、GPTスキーム上に約500MBずつの2つの区画が設計通りに割り当てられていることが確認できます。

partedによるパーティション情報の出力確認

ループバックデバイスの接続・ファイルシステム生成とマウント検証

ext4ファイルシステムの構築・管理に不可欠なパッケージを揃えるため、apt-get install -y e2fsprogs を実行します。

e2fsprogsパッケージのインストール

イメージ内の各パーティションをカーネルに独立したブロックデバイスとして認識させるため、-P オプション付きのループバック設定を行います。LOOP_DEV=$(losetup --find --show -P /tmp/disk-lab/virtual_disk.img) && echo "Connected to: $LOOP_DEV" を実行してください。
コンソール出力から、イメージファイルが /dev/loop0 として正しくマッピングされたことが分かります。

ループバックデバイスの割り当てと認識確認

接続されたループデバイスの階層構造とパーティションの検出状態を確かめるため、lsblk ${LOOP_DEV} を実行します。
1GBの仮想ストレージ配下に、先ほど切り分けた2つのブロックデバイス(loop0p1, loop0p2)が正しく認識されていることが確認できます。

lsblkによるループバックパーティション構成の表示

作成した第1パーティションにデータを書き込める状態にするため、mkfs.ext4 -F ${LOOP_DEV}p1 を実行してext4ファイルシステムでフォーマットします。
この処理によってディスク領域にi-nodeやスーパーブロック等の管理領域が初期化されます。

mkfs.ext4による対象パーティションのフォーマット

OSのディレクトリツリー経由でアクセス可能にするため、マウント用のディレクトリを作成してデバイスをマウントします。mkdir -p /mnt/virtual_disk && mount ${LOOP_DEV}p1 /mnt/virtual_disk を実行します。

マウントポイントの作成とファイルシステムのマウント

マウント処理の正常性と利用可能なディスク容量を検証するため、df -h /mnt/virtual_disk を実行します。
指定したマウントポイントへパーティションが期待通りにマウントされ、読み書き可能な状態になっていることが確認できれば作業完了です。

dfコマンドによるマウント状況と容量の最終確認

従来のfdiskに比べて視覚的な操作感に優れるcfdiskは、誤操作のリスクを低減させたい本番サーバー運用でも大きなメリットを発揮します。
Linux環境におけるストレージ増設やパーティションの再設計を行う際は、ぜひ本手順を活用してみてください。