【Linux】fdiskコマンドの使い方|パーティションの確認・作成・削除方法を解説

Linux

どーも!marusukeです!

この記事では、Linuxでディスクのパーティションを管理するfdiskコマンドについて解説します。

この記事で分かることは次のとおりです。

  • パーティション情報を確認する方法
  • 新しいパーティションを作成する方法
  • パーティションを削除する方法
  • GPTとMBRの違い
  • fdiskを使う際の注意点

注意

パーティション操作を誤ると、ディスク内のデータを失う可能性があります。重要なデータをバックアップし、操作対象のデバイス名を十分に確認してから実行してください。

fdiskコマンドとは

fdisk [オプション] デバイス

fdiskは、ディスクのパーティションテーブルを確認・作成・変更・削除するためのコマンドです。

現在のfdiskは、主に次のパーティションテーブルに対応しています。

  • GPT
  • MBR(DOS)
  • BSD
  • Sun
  • SGI

以前はMBR用のツールとして扱われることが多くありましたが、現在のfdiskはGPTにも対応しています。

一般的な新しいPCやUEFI環境では、特別な理由がなければGPTを選択するのがおすすめです。

ディスクとパーティションの違い

fdiskを使う前に、デバイス名の違いを確認しておきましょう。

/dev/sdb   ディスク全体
/dev/sdb1  /dev/sdb内の1番目のパーティション
/dev/sdb2  /dev/sdb内の2番目のパーティション

fdiskでパーティションを作成するときは、基本的に/dev/sdb1ではなく、ディスク全体を表す/dev/sdbを指定します。

NVMe SSDでは、次のような名前になります。

/dev/nvme0n1    ディスク全体
/dev/nvme0n1p1  1番目のパーティション

ディスクを確認する

最初にlsblkコマンドで、接続されているディスクを確認します。

lsblk

出力例は次のとおりです。

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0  100G  0 disk
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   99G  0 part /
sdb      8:16   0   20G  0 disk

この例では、/dev/sdaがシステムディスク、/dev/sdbが追加された20GBのディスクです。

以降は、練習用ディスクとして/dev/sdbを使用します。

パーティション情報を表示する

特定のディスクのパーティション情報を表示するには、-lオプションを使用します。

sudo fdisk -l /dev/sdb

すべてのディスクを表示する場合は、デバイスを省略します。

sudo fdisk -l

主な確認項目は次のとおりです。

項目説明
Diskディスク名と容量
Sector size論理・物理セクターサイズ
Disklabel typeパーティションテーブルの種類
Deviceパーティション名
Start / End開始・終了セクター
Sizeパーティション容量
Typeパーティションタイプ

Disklabel typegptならGPT、dosならMBRです。

fdiskを起動する

ディスクのパーティションを操作するには、ディスク全体のデバイス名を指定します。

sudo fdisk /dev/sdb

起動後は対話モードになり、1文字のコマンドを入力して操作します。

主なコマンドは次のとおりです。

コマンド説明
mヘルプを表示
p現在のパーティションテーブルを表示
n新しいパーティションを作成
dパーティションを削除
tパーティションタイプを変更
g新しいGPTパーティションテーブルを作成
o新しいMBRパーティションテーブルを作成
w変更をディスクへ書き込んで終了
q変更を保存せずに終了

wを実行するまでは、通常、変更はディスクへ書き込まれません。操作を間違えた場合は、qで終了してください。

GPTパーティションテーブルを作成する

新しい空のディスクにGPTを作成する場合は、fdiskを起動してgを入力します。

Command (m for help): g
Created a new GPT disklabel.

gを実行すると、新しいパーティションテーブルが作成されます。既存データがあるディスクでは実行しないでください。

現在の状態はpで確認できます。

Command (m for help): p

新しいパーティションを作成する

新しいパーティションを作成するには、nを入力します。

Command (m for help): n

パーティション番号と開始セクターは、通常はデフォルトのままEnterキーを押します。

Partition number (1-128, default 1):
First sector (2048-41943006, default 2048):

10GiBのパーティションを作成する場合は、終了位置に+10Gを指定します。

Last sector, +/-sectors or +/-size{K,M,G,T,P}: +10G

作成結果を確認します。

Command (m for help): p

問題がなければ、wで保存します。

Command (m for help): w

出力例:

The partition table has been altered.
Syncing disks.

これで、通常は/dev/sdb1というパーティションが作成されます。

パーティションを削除する

パーティションを削除するには、対話モードでdを入力します。

Command (m for help): d

複数のパーティションがある場合は、削除する番号を指定します。

Partition number (1,2, default 2): 2

pで結果を確認します。

Command (m for help): p

問題がなければwで保存します。

Command (m for help): w

パーティションを削除すると、その領域内のファイルへ通常の方法でアクセスできなくなります。デバイス名を必ず確認してください。

ファイルシステムを作成する

パーティションを作成しただけでは、通常はファイルを保存できません。

ext4ファイルシステムを作成する場合は、次のコマンドを実行します。

sudo mkfs.ext4 /dev/sdb1

この操作を実行すると、対象パーティション内の既存データは失われます。

パーティションをマウントする

マウント先のディレクトリを作成します。

sudo mkdir -p /mnt/data

作成したパーティションをマウントします。

sudo mount /dev/sdb1 /mnt/data

マウントできたことを確認します。

lsblk

または、次のコマンドでも確認できます。

df -h /mnt/data

💡 実は、このfdiskでのパーティション操作を「手を動かして練習」しようとすると、WSL2には操作できる空きディスクが無いという壁にぶつかります。

じゃあLinux学習はどこまでWSL2でできて、どこからVPS(本物のサーバー)が必要なのか? LPICのレベル別に整理しました。
Linux学習環境の作り方|WSL2とVPSの使い分け

fdiskの主なオプション

オプション説明
-l, --listパーティションテーブルを一覧表示
-x, --list-details詳細情報を表示
-b, --sector-sizeセクターサイズを指定
-o, --output表示する列を指定
--bytes容量をバイト単位で表示
-h, --helpヘルプを表示
-V, --versionバージョンを表示

通常の確認や作成では、主に-lを使用します。

利用できるオプションは、環境のバージョンによって異なる場合があります。次のコマンドでも確認できます。

fdisk --help

fdiskを使う際の注意点

操作するデバイス名を確認する

/dev/sda/dev/sdbを間違えると、システムや重要なデータを破壊する可能性があります。

操作前には、必ず次のコマンドで確認してください。

lsblk
sudo fdisk -l

使用中のディスクを操作しない

マウント中のパーティションや、システムが使用しているディスクの変更は避けてください。

必要に応じて、対象のパーティションをアンマウントします。

sudo umount /dev/sdb1

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

fdiskが操作するのは、ディスク上のパーティションテーブルです。

ext4やXFSなどのファイルシステムを拡張・縮小する操作とは異なります。既存パーティションのサイズ変更では、ファイルシステム側の操作も必要です。

特に縮小は手順を誤るとデータを失うため、十分な知識がない状態では行わないでください。

自動処理にはsfdiskを検討する

fdiskは人が対話形式で操作することを主な目的としています。

スクリプトからパーティションを作成する場合は、sfdiskなどの利用を検討しましょう。

まとめ

fdiskは、Linuxでパーティションテーブルを管理するためのコマンドです。

基本的な操作の流れは次のとおりです。

  1. lsblkで対象ディスクを確認する
  2. fdisk -lでパーティション情報を確認する
  3. fdisk /dev/sdbで対話モードを開始する
  4. ndでパーティションを操作する
  5. pで変更内容を確認する
  6. wで変更を保存する
  7. 必要に応じてファイルシステムを作成してマウントする

fdiskは便利な一方、操作を誤るとデータを失う可能性があります。必ずバックアップを取り、対象ディスクを確認してから実行しましょう。

参考リンク

コメント

タイトルとURLをコピーしました