fdiskコマンドの使い方を完全ガイド!Linuxのパーティション管理とディスク操作の基本
生徒
「Linux(リナックス)で新しいハードディスクを増設したんですけど、そのままでは使えないって本当ですか?」
先生
「そうですね。新しいストレージ(記憶装置:キオクソウチ)を使うには、まず『パーティション(分割:ブンカツ)』という区切りを作る必要があります。」
生徒
「パーティション……?難しそうですね。どうやって操作すればいいんでしょうか。」
先生
「Linuxにはfdisk(エフディスク)という便利なコマンドがあります。これを使えば、初心者の方でもディスクの中身を確認したり、新しく区切りを作ったりできますよ。」
生徒
「fdiskコマンドですね!難しそうですが、やり方を教えてください!」
先生
「もちろんです。操作ミスをするとデータが消えることもあるので、慎重に進める必要がありますが、基本をマスターすれば怖くありません。一緒に学んでいきましょう!」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. fdiskコマンドとは?
fdisk(読み方はエフディスク)は、Linux(リナックス)システムにおいてハードディスクやSSDなどのストレージデバイスのパーティションを管理するためのコマンドです。パーティションとは、1つの物理的なディスクを仮想的に複数の部屋に分ける仕組みのことです。
例えば、1TB(テラバイト)のハードディスクを「システム用」と「データ保存用」の2つの部屋に分けて使うといった操作が、このfdiskコマンドで行えます。Windows(ウィンドウズ)でいうところの「ディスク管理」ツールを、文字だけのコマンド操作(CUI:シーユーアイ)で行うものだと考えると分かりやすいでしょう。
歴史的には非常に古くからある標準的なツールで、多くのエンジニアに愛用されています。最近ではGPT(ジーピーティー)という新しい形式に対応したgdisk(ジーディスク)なども登場していますが、MBR(エムビーアール)形式の管理や、ちょっとした確認作業には今でもfdiskが欠かせません。
2. パーティションとMBRの仕組みを知ろう
fdiskを使いこなすために、まずはパーティション(分割:ブンカツ)とMBR(マスターブートレコード)という用語を理解しておきましょう。これらはディスク管理の基礎となる概念です。
昔から使われているMBR(エムビーアール)形式では、1つのディスクに作成できる「基本パーティション」は最大で4個までという制限があります。もし5個以上の部屋を作りたい場合は、1つを「拡張パーティション(カクチョウパーティション)」として設定し、その中に「論理パーティション(ロンリパーティション)」を作成するという工夫が必要です。
最近の2TBを超えるような大容量ディスクでは、GPT(読み方はジーピーティー)という形式が主流になっていますが、fdiskも最新のバージョンであればGPTに対応しています。初心者の方は「ディスクを使いやすく小分けにする作業」がパーティション作成だと覚えておけば間違いありません。
3. ディスクの一覧を表示して確認する
まずは、自分のパソコンにどのようなディスクが接続されているかを確認してみましょう。この操作はシステム全体の情報を読み取るため、管理者権限(root:ルート)が必要です。
-lオプション(リストオプション)を付けることで、現在認識されているストレージの一覧が表示されます。SDカードやUSBメモリを指した時にも、このコマンドでどこに認識されたかを確認できます。
fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8a1b2c3d
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 41943039 41940992 20G 83 Linux
実行結果の/dev/sda(読み方はデブ・エスディーエー)というのが1番目のディスクを指しています。その下にある/dev/sda1は、そのディスク内の1番目のパーティションという意味です。まずはこの画面で、操作したい対象のデバイス名を確認するのが第一歩です。
4. 特定のデバイスを対話モードで操作する
fdiskの最大の特徴は、対話モード(会話のように命令を入力する形式)で操作を進める点です。コマンドの後にデバイス名を指定して実行すると、専用の入力待ち状態になります。
例えば、2番目のディスクである/dev/sdbを操作したい場合は以下のように入力します。なお、ここからは設定を変更する可能性があるため、必ず重要なデータが入っていないことを確認してください。
fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
Command (m for help):という表示が出たら、準備完了です。ここで特定のアルファベットを入力することで、パーティションの作成や削除を行います。mを入力すると、使える命令(ヘルプ)が一覧で表示されるので安心してください。
5. パーティションを新規作成する手順
新しいパーティションを作成するには、対話モードの中でn(new:ニュー)を入力します。その後、パーティションの番号や開始位置、終了位置(サイズ)を聞かれますが、基本的にはエンターキーを押してデフォルト(標準設定)のまま進めれば、ディスクの空き容量を最大限に使った設定になります。
サイズを指定したいときは「+10G」のように入力することで、10GB(ギガバイト)の容量を割り当てることが可能です。以下の例では、新しくパーティションを作成する流れを再現しています。
fdisk /dev/sdb
(対話モード開始)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): (Enterを押す)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +5G
Created a new partition 1 of type 'Linux' and of size 5 GiB.
これで、メモリ上に「5GBの新しいパーティションを作る」という計画が作成されました。まだこの段階では実際のハードディスクには書き込まれていないのがfdiskの優しいところです。
6. パーティション情報を削除する方法
間違えて作成してしまった場合や、古い設定を消したい場合はd(delete:デリート)コマンドを使います。パーティションが複数ある場合は「どの番号を消しますか?」と聞かれるので、慎重に数字を選んでください。
削除操作を行うと、その領域にあるデータへのアクセスができなくなります。中身が空の新品のディスクで練習するのが一番安全です。
fdisk /dev/sdb
Command (m for help): p
(現在のリストを表示して確認)
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 10487807 10485760 5G 83 Linux
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
このように、対話モードの中でp(print:プリント)を使って現在の状況をこまめに確認しながら進めるのが、初心者が失敗しないコツです。
7. 変更を保存して終了する「w」と保存せずに抜ける「q」
ここまでの操作は、実はまだ「下書き」の状態です。最後にその下書きを本物のディスクに書き込むか、あるいは無かったことにするかを決める必要があります。これが一番重要なポイントです!
・w(write:ライト): 変更を保存して終了します。これを押すとディスクが書き換えられます。
・q(quit:クイット): 保存せずに終了します。操作を間違えたと思ったら迷わずqを押しましょう。
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
wを押してコマンドが終了すると、ようやく新しいパーティションがシステムに反映されます。これでLinux OSが新しい区切りを認識できるようになりました。
8. 作成した後に必要な「フォーマット」について
パーティションを作成しただけでは、まだファイルを保存することはできません。家で例えるなら「部屋の壁を作っただけ」の状態です。次に、床を貼って家具を置ける状態にする「フォーマット(初期化:ショキカ)」という作業が必要です。
Linuxでは主にmkfs(読み方はメイク・ファイルシステム)というコマンドを使ってフォーマットを行います。例えば、先ほど作った/dev/sdb1を、Linux標準のext4(イーエックスティーフォー)形式にするには以下のようにします。
mkfs -t ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: a1b2c3d4-e5f6-4a5b-b6c7-d8e9f0a1b2c3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
この作業が終わると、ようやくmount(マウント)コマンドを使ってファイルを保存できる準備が整います。fdiskは、これら一連のストレージ管理の「最初の一歩」となる非常に重要なツールなのです。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxシステムにおけるストレージ管理の登竜門とも言えるfdiskコマンドについて、その役割から具体的な操作手順、そして仕上げのフォーマットまでを詳しく解説してきました。本記事を通じて、物理的なハードディスクやSSDを仮想的な「パーティション」という単位で区切り、OSが利用可能な状態にするまでの一連の流れがイメージできたのではないでしょうか。
fdisk操作の重要ポイントをおさらい
fdiskを安全かつ確実に使いこなすために、特に意識しておくべきポイントは以下の3点です。
- 管理者権限(sudo)が必須: ディスク構成の変更はシステム全体に影響するため、常に
rootユーザーまたはsudoでの実行が必要です。 - 対話モードの利点を活かす:
pコマンドで現在の状況を何度も確認し、計画を立てながら進めましょう。 - 「w」を押すまでは変更されない: 操作ミスに気づいたら、迷わず
qで終了してやり直す勇気が大切です。
実務で役立つ!パーティション情報の確認コマンド
サーバーのメンテナンスやトラブルシューティングの際、真っ先に実行するのが「現状把握」です。以下のコマンドは、システムに接続されているすべてのストレージデバイスとパーティションの構成を一覧表示する、現場で最も多用されるコマンドです。
# システム全体のディスク情報を詳細に表示する
sudo fdisk -l
この出力結果から、どのデバイス(例:/dev/sdb)がどれくらいの容量(例:100GiB)を持っているのか、また現在どのようなパーティションID(例:83 Linux)が割り当てられているのかを正確に読み取ることが、プロのインフラエンジニアへの第一歩となります。
さらに高度な管理へ:GPTとgdisk
本記事では伝統的なMBR形式を中心に解説しましたが、2TBを超える現代の大容量ストレージではGPT(GUIDパーティションテーブル)形式が標準となっています。最新のLinuxカーネルに含まれるfdiskであればGPTも扱えますが、GPT専用のツールとしてgdiskが存在することも覚えておくと良いでしょう。操作体系はfdiskと非常に似ているため、今回の学習内容が無駄になることはありません。
パーティション作成後の自動マウント設定
fdiskでパーティションを作り、mkfsでフォーマットした後は、システム起動時に自動的にその領域が使えるよう/etc/fstabという設定ファイルを編集するのが一般的です。これを忘れると、再起動のたびに手動でmountコマンドを打つ必要が出てしまいます。
# 例:/etc/fstab に追記する際の内容イメージ
# デバイス名 マウント先 形式 オプション ダンプ チェック
/dev/sdb1 /mnt/data ext4 defaults 0 2
生徒:
「先生、ありがとうございました!fdiskって聞くと、黒い画面に文字がいっぱい出てきて怖いイメージでしたが、一つひとつの命令の意味が分かると、パズルのように組み立てていく感覚で面白いですね。」
先生:
「その通りです!特に『w(書き込み)』を押すまでは、何度間違えてもやり直せるという点が安心材料ですよね。実際にディスクの中身が変わるのは最後だけですから。」
生徒:
「はい、途中で怖くなったらqで逃げればいいんだと思うと、思い切って操作できました。あと、パーティションを作っただけじゃなくて、最後にmkfsでフォーマットしないとファイルが置けないというのも、大きな発見でした。」
先生:
「素晴らしい気づきです。家を建てるのに、まず土地を区切る(パーティション)のがfdisk、その区切った場所に床や壁を作って住めるようにする(ファイルシステム作成)のがmkfsという役割分担ですね。」
生徒:
「とても分かりやすい例えです!これで新しいハードディスクをサーバーに追加する作業も、自信を持ってできそうです。次は大容量ディスク向けのGPTについても、自分で調べて挑戦してみようと思います。」
先生:
「その意気です!Linuxのストレージ管理は奥が深いですが、基本はすべて今回のfdiskに詰まっています。ぜひ実機や仮想環境で、何度も手を動かして練習してみてくださいね。失敗こそが最大の学びになりますから!」
生徒:
「ありがとうございます!これからもLinuxマスターを目指して頑張ります!」