gdiskコマンドの使い方を完全解説!LinuxでGPTパーティションを管理する基本
生徒
「新しいハードディスクをLinuxに接続したのですが、パーティションの設定はどうすればいいですか?」
先生
「最近の大容量ディスクなら、gdiskコマンドを使うのが一般的ですね。GPT(ジーピーティー)という形式でパーティションを管理するためのツールですよ。」
生徒
「fdiskコマンドと何が違うんですか?初心者でも失敗せずに操作できますか?」
先生
「fdiskは古いMBR(エムビーアール)形式向けですが、gdiskは現代の標準であるGPT向けに設計されています。操作感は似ていますが、より安全に大容量データを扱えますよ。基本的な使い方をマスターしましょう。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. gdiskコマンドとは?
gdiskコマンドは、読み方はgdisk(ジーディスク)といい、LinuxシステムにおいてGPT(GUID Partition Table:グローバル一意識別子パーティションテーブル)形式のディスクを操作するための専用ツールです。ハードディスクやSSD(エスエスディー)といった記憶装置(キオクソウチ)の中に、部屋割りのような「仕切り」を作る役割を果たします。
かつてのLinuxではfdisk(エフディスク)が主流でしたが、従来のMBR(マスターブートレコード)形式には「2TB(テラバイト)までの容量制限」や「最大4つの基本パーティションまで」という制約がありました。現代のPC環境では、これらを超える大容量ストレージが当たり前となったため、制限のないGPT形式と、それを操作するgdiskが必要不可欠になっています。
gdiskの大きな特徴は、対話形式で操作を進める点です。コマンドを入力するとプログラムから質問が投げかけられ、それに答える形で設定を進めるため、コマンドを丸暗記する必要がありません。また、書き込み(wコマンド)を実行するまでは実際のディスクには何も反映されないため、初心者でも比較的安心して試行錯誤ができる設計になっています。
2. GPTとMBRの違いを学ぼう
ディスクの管理方式には、大きく分けてMBR(エムビーアール)とGPT(ジーピーティー)の2種類があります。gdiskを使う前に、なぜGPTが推奨されるのか、その歴史と雑学を確認しておきましょう。
MBRは1980年代に登場した古い規格で、設計がシンプルですが現代の技術には追いついていません。一方のGPTは、UEFI(ユーイーエフアイ)という新しいマザーボードの仕組みに合わせて作られた規格です。GPTには以下のようなメリットがあります。
- 容量の壁がない: 2TBを超える巨大なディスクも管理可能です。
- パーティション数の自由度: 標準で128個ものパーティションを作成できます。
- データの堅牢性: パーティション情報がディスクの先頭と末尾に二重に保存されるため、一部が壊れても復旧しやすい構造です。
gdiskはまさに、このGPTの利点を最大限に引き出すために作られたコマンドなのです。もし古いMBR形式のディスクをgdiskで開こうとすると、自動的にGPTへの変換を促してくれる機能も備わっています。
3. ディスク情報の確認方法
まず最初に、自分のコンピュータにどのようなディスクが接続されているかを確認しましょう。gdiskで操作を行うには、対象となるデバイスファイル名(例:/dev/sdbなど)を知る必要があります。これには-lオプションを使用します。
この操作には管理者権限(カンリシャケンゲン)が必要なため、sudoを付けて実行します。読み方はsudo(スードゥー)です。
gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
上記の実行結果に「GPT: present」と表示されていれば、そのディスクは既にGPT形式で管理されていることがわかります。「Found valid GPT」というメッセージは、正常なパーティションテーブルが見つかったことを意味します。
4. gdiskでの対話モードを開始する
特定のディスクを編集したい場合は、デバイス名を指定してコマンドを実行します。ここでは、例として2枚目のディスクである/dev/sdbを操作対象としてみます。操作を間違えるとデータが消える可能性があるため、必ずバックアップを取ってから行いましょう。
gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.8
Command (? for help):
コマンドを実行すると、Command (? for help): という入力待ち状態になります。ここで「?」を入力すると、使用可能な命令の一覧が表示されます。主な命令は以下の通りです。
| コマンド | 意味 | 解説 |
|---|---|---|
| p | 現在のパーティション情報を表示する | |
| n | new | 新しいパーティションを作成する |
| d | delete | 既存のパーティションを削除する |
| t | type | パーティションのタイプ(種類)を変更する |
| w | write | 設定を保存して終了する(取り消し不可) |
| q | quit | 保存せずに終了する(安全) |
5. 新しいパーティションを作成する手順
実際にディスクの中に新しいパーティションを作成してみましょう。対話モードの中で「n」を入力します。初心者が一番戸惑うのは「セクタ数」の指定ですが、基本的にはデフォルト(そのままエンターキー)で問題ありません。
gdisk /dev/sdb
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-41943006, default 2048):
Last sector (2048-41943006, default 41943006) or {+-}size{KMGTP}: +10G
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
この例では、10GB(ギガバイト)のサイズを持つパーティションを作成しました。最後の「Hex code(ヘックスコード)」とは、そのパーティションがどのような目的で使われるかを示すIDです。通常のLinux用データ保存領域であれば、標準の「8300」のままで大丈夫です。もしスワップ領域(メモリ不足を補う場所)を作りたい場合は「8200」を指定します。
6. 設定の確認と書き込み保存
作成したパーティションが正しく設定されているか、保存する前に「p」コマンドで確認しましょう。まだこの段階では、ディスクの物理的な中身は書き換わっていません。文字の打ち間違いやサイズの指定ミスに気づいたら、今のうちに修正可能です。
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Number Start (sector) End (sector) Size Code Name
1 2048 20973567 10.0 GiB 8300 Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
最後に「w」を入力して「Y」を選択すると、初めてディスクに情報が書き込まれます。もし不安になったら「q」を入力すれば、それまでの作業をすべて破棄して安全に終了できます。この「やり直しがきく」という点が、gdiskが初心者におすすめされる理由の一つです。
7. パーティション作成後のフォーマット作業
gdiskでパーティションを作成しただけでは、まだファイルを保存することはできません。家で例えるなら「部屋の壁」を作っただけの状態です。実際に住めるようにするために、床を張る作業、つまり「ファイルシステム」の構築(フォーマット)が必要です。
Linuxで最も一般的な「ext4(イーエックスティーフォー)」形式でフォーマットするには、mkfs.ext4コマンドを使用します。作成したパーティションの名前(今回の例では/dev/sdb1)を指定してください。
mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
これでようやく、OSが認識してデータを書き込める状態になりました。この後はmount(マウント)コマンドを使って、特定のディレクトリに関連付ければ自由に使用できるようになります。
8. トラブルシューティングと注意点
gdiskを使用する際に遭遇しやすいトラブルや注意点について解説します。まず、操作対象のディスクが既に「マウント(使用中)」されている場合は、パーティションの変更ができません。必ずアンマウント(切り離し)してから操作するようにしましょう。
また、間違えてMBR形式のディスクをgdiskで開いてしまった場合、プログラムが「GPTに変換しますか?」と聞いてくることがあります。これは非常に便利な機能ですが、古いOS(Windows XP以前や古いLinux)との互換性がなくなる可能性があるため、システムディスクを操作する場合は注意が必要です。
さらに、パーティションを削除する「d」コマンドは、実行した瞬間にその領域へのアクセス経路を消去します。中身のデータ自体がすぐに消えるわけではありませんが、復旧には高度な技術が必要になるため、「d」を押すときは、表示された番号が本当に消していいものか何度も確認する癖をつけましょう。こうした慎重な姿勢が、ITインフラを支えるエンジニアへの第一歩となります。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxシステムにおけるストレージ管理において、gdisk(ジーディスク)コマンドの習得は非常に重要です。現代のコンピュータ環境では、2TBを超える大容量ハードディスクやSSDが一般的となっており、従来のMBR(マスターブートレコード)形式ではその性能を十分に引き出すことができません。そこで登場するのが、制限のないGPT(GUID Partition Table:グローバル一意識別子パーティションテーブル)形式であり、その操作に特化したツールがgdiskです。
gdiskコマンドの主要なメリットと特徴
gdiskコマンドを使用する最大のメリットは、その安全性と利便性にあります。対話型インターフェースを採用しているため、初心者でも次に何をすべきかガイドを受けながら操作を進めることが可能です。また、以下の特徴を理解しておくことで、より高度なディスク管理が可能になります。
- 大容量対応: 2TB(テラバイト)以上のディスクでも、最大8ZB(ゼタバイト)まで理論上管理可能です。
- 多数のパーティション: 基本パーティションや拡張パーティションの区別なく、標準で128個のパーティションを作成できます。
- データ保護: パーティション情報がディスクの先頭と末尾の両方に保存されるため、データの冗長性が確保されています。
- 形式変換: MBR形式からGPT形式への変換を、データを保持したまま(細心の注意は必要ですが)試みることができます。
実践的なコマンド操作のフロー
実際にLinuxサーバーを構築したり、新しい外付けHDDを増設したりする際は、以下のステップで作業を進めるのが一般的です。gdiskで仕切りを作り、mkfsでフォーマットするという流れを意識しましょう。
sudo gdisk -l /dev/sdbでデバイス情報を確認する。sudo gdisk /dev/sdbで対話モードを開始する。- 「n」コマンドで新しいパーティションを作成する(サイズ指定は
+20Gなど)。 - 「p」コマンドで変更内容に間違いがないか最終確認を行う。
- 「w」コマンドで書き込みを実行し、変更をディスクに反映させる。
sudo mkfs.ext4 /dev/sdb1でファイルシステムを作成(初期化)する。
システム管理者が知っておくべき補足知識
パーティション作成後に忘れてはならないのが、「マウント」という作業です。Linuxでは、作成した領域を特定のディレクトリ(フォルダ)に結びつけることで初めてデータの読み書きが可能になります。また、再起動後も自動で認識させるためには、/etc/fstab という設定ファイルにUUID(一意識別子)を記述する設定が必要です。
さらに、最近ではLVM(論理ボリュームマネージャー)を併用するケースも多いですが、そのベースとなる物理パーティションを作成する際にもgdiskの知識は必須です。Hex code(ヘックスコード)として、LVM用の「8e00」を指定することで、より柔軟な容量管理が可能になります。
このように、gdiskは単なるツールではなく、Linuxのファイルシステム構造を理解するための第一歩です。バックアップの重要性を常に念頭に置きつつ、コマンド一つひとつの意味を理解して、正確なディスク管理を目指しましょう。
生徒
「先生、gdiskコマンドの使い方がよくわかりました!最後に『w』を押すまでは、何度でもやり直せるというのが安心ですね。でも、具体的に自分のパソコンでどのデバイスを指定すればいいか、見分けるコツはありますか?」
先生
「いい質問ですね。デバイス名を確認するには、lsblkコマンドを併用するのがおすすめですよ。木構造で表示されるので、どのディスクにどのパーティションがあるか一目でわかります。例えば、次のような結果になります。」
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
└─sda2 8:2 0 49.4G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part /mnt/data
生徒
「なるほど!sdbがディスク本体で、sdb1がその中のパーティションなんですね。これなら間違えずにgdiskを実行できそうです。あと、パーティションのタイプ(Hex code)って、たくさん種類があるんですか?」
先生
「ええ、たくさんありますよ。gdiskの中で『L』を入力すると一覧が見られます。例えば、Linuxの通常データ用は『8300』、WindowsのNTFS形式なら『0700』、EFIシステムパーティションなら『ef00』といった具合です。基本的にはデフォルトの8300で問題ありませんが、用途に合わせて選べるようになると一人前ですね。」
生徒
「Hex codeまで意識して設定するなんて、プロのエンジニアっぽくてカッコいいですね!ところで、古いパソコンでGPTを使いたい場合はどうすればいいんでしょうか?」
先生
「古いBIOS(バイオス)ベースのパソコンだと、GPTからの起動には少し工夫が必要になります。基本的には、現代のUEFIベースのパソコンであればGPTが最適解です。もしgdiskで操作中に『Protective MBR』という言葉が出てきたら、それは古いソフトがGPTを壊さないように保護している状態なので、正常にGPTとして扱えている証拠ですよ。」
生徒
「保護機能までついているんですね。仕組みがわかると、コマンドを打つのが楽しくなってきました。さっそく、テスト用の仮想マシンでパーティションの分割に挑戦してみます!」
先生
「その意気です!失敗を恐れずに、まずは仮想環境で練習を積み重ねてください。ディスク管理をマスターすれば、サーバー構築の幅がぐっと広がりますよ。頑張ってくださいね。」