はじめに#
こんにちは!今回はfdiskコマンドについて解説します。
fdiskはディスクのパーティションを管理・作成・削除するコマンドです。サーバーのセットアップやストレージの初期化など、システム管理者が絶対に覚えておくべき重要なコマンドですね。
新しいディスクを接続したり、既存のパーティションを変更したりするときに活躍します。ただし、データ消失のリスクがあるので、取り扱いには要注意!
fdiskコマンドとは#
fdiskは、ディスクのパーティションテーブルを表示・編集するための外部コマンドです。“format disk"の略で、ディスクの分割管理に使われます。
ディスクを複数のパーティションに分けたり、パーティションのサイズを変更したり、ブートフラグを設定したりできます。MBR(マスターブートレコード)形式のパーティション管理に特化しているため、最近はGPT形式のpartedやgdiskに徐々に置き換わっていますが、まだまだ現役です。
基本構文#
デバイス名は通常/dev/sda、/dev/sdbなどです。パーティション指定(/dev/sda1など)はできません。
主なオプション#
| オプション |
説明 |
-l |
パーティション情報を表示(編集モードに入らない) |
-u |
セクタ単位で表示 |
-c |
DOSモードを無効化 |
-s |
パーティションサイズを表示 |
-v |
バージョン情報を表示 |
使用例#
例1: パーティション一覧を表示#
実行結果:
1
2
3
4
5
6
7
8
9
10
11
|
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VBOX HARDDISK
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: 0x00051177
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99GB 83 Linux
|
全ディスクのパーティション情報を表示します。-lオプションは安全な表示モード。
例2: 特定のディスクのパーティション情報を確認#
実行結果:
1
2
|
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
(詳細なパーティション情報が表示される)
|
特定のディスク(/dev/sda)の情報のみを表示します。
例3: ディスクのサイズを確認#
実行結果:
ディスクの総容量をキロバイト単位で表示します。この例では約100GB。
例4: インタラクティブモードで パーティション管理(新規パーティション作成)#
実行結果:
1
2
3
4
5
6
7
8
9
10
|
Welcome to fdisk (util-linux 2.36.1).
Changes will not be written to disk until explicitly told to.
Command (m for help): m
Generic advice:
q quit without saving changes
w write table to disk and exit
(メニューが表示される)
|
デバイス名のみ指定すると、インタラクティブなエディタモードになります。パーティションの作成・削除・編集ができます。
例5: インタラクティブモードでメニューを表示#
1
2
|
sudo fdisk /dev/sdb
Command (m for help): m
|
実行結果:
1
2
3
4
5
6
7
8
9
|
Help:
d delete a partition
l list known partition types
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition type
w write table to disk and exit
|
主要なコマンド一覧が表示されます。
例6: パーティションテーブルを表示(インタラクティブモード)#
1
2
|
sudo fdisk /dev/sdb
Command (m for help): p
|
実行結果:
1
2
3
4
5
|
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Device Start End Sectors Size Type
/dev/sdb1 2048 104857599 104855552 50G Linux
|
現在のパーティション配置を確認できます。
例7: 新しいパーティションを作成する#
1
2
3
4
5
6
|
sudo fdisk /dev/sdb
Command (m for help): n
Partition number (1-4, default 1): 2
First sector (104857600-104857599, default 104857600):
Last sector ...: +10G
Command (m for help): w
|
実行結果:
1
2
3
|
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
|
新しいパーティションを作成します。nでパーティション追加、wで書き込み。
例8: パーティションを削除する#
1
2
3
4
|
sudo fdisk /dev/sdb
Command (m for help): d
Partition number (1,2, default 2): 2
Command (m for help): w
|
実行結果:
1
2
|
Partition deleted.
The partition table has been altered.
|
パーティションを削除します。dで削除、wで書き込み。
例9: ブートフラグを設定#
1
2
3
4
|
sudo fdisk /dev/sda
Command (m for help): a
Partition number (1,2, default 1): 1
Command (m for help): w
|
実行結果:
1
|
The boot flag has been set to '/dev/sda1'.
|
ブートパーティションを指定します。
例10: パーティションのタイプを変更#
1
2
3
4
|
sudo fdisk /dev/sdb
Command (m for help): t
Partition number (1-4, default 1): 1
Hex code or alias for type (type L to list all): 83
|
実行結果:
1
|
Changed type of partition 'Linux' to 'Linux'.
|
パーティションタイプを変更します。83はLinux標準タイプ。
Tips・注意点#
危険!データが消える#
1
2
|
# ⚠️ 絶対に間違えないで!
sudo fdisk /dev/sda
|
fdiskで誤ったデバイスをいじると、システムが起動しなくなったり、大事なデータが消えたりします。デバイス名をしっかり確認してから実行してください。
変更は即座には反映されない#
1
2
3
4
5
6
7
8
|
# まず確認
sudo fdisk -l /dev/sdb
# インタラクティブモード
sudo fdisk /dev/sdb
# ...編集...
# wで書き込むまで安全
Command (m for help): w
|
wコマンドで明示的に書き込むまでは、変更が保存されません。これは安全な仕様です。
新しいパーティションを使う前に#
1
2
3
4
5
|
# パーティション作成後、ファイルシステムをフォーマット
sudo mkfs.ext4 /dev/sdb1
# マウント
sudo mount /dev/sdb1 /mnt
|
fdiskでパーティションを作成しただけでは、まだ使えません。mkfsでファイルシステムを作成し、mountでマウントして初めて使用可能になります。
GPT形式のディスクはgdiskを使う#
1
2
|
# 最近のディスク(GPT形式)の場合
sudo gdisk /dev/sda
|
fdiskはMBR形式に特化。GPT形式のディスクにはgdiskやpartedを使いましょう。
実践的な使い方#
新しいディスクを初期化する#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 1. ディスク一覧確認
sudo fdisk -l
# 2. インタラクティブモードで編集
sudo fdisk /dev/sdb
# 3. パーティション作成(n)
# 4. 確認(p)
# 5. 書き込み(w)
# 6. ファイルシステム作成
sudo mkfs.ext4 /dev/sdb1
# 7. マウント準備
sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data
|
新しいディスクをシステムに統合するまでの一連の流れです。
デュアルブート環境を設定#
1
2
3
4
5
|
# ブート可能にしたいパーティションを指定
sudo fdisk /dev/sda
Command (m for help): a
Partition number: 1
Command (m for help): w
|
ブートフラグを正しいパーティションに設定することで、デュアルブート環境を構築できます。
ディスク容量を再配分#
1
2
3
4
5
6
7
8
9
|
# 既存パーティションを削除
sudo fdisk /dev/sda
Command (m for help): d
Partition number: 2
# 新しいサイズで再作成
Command (m for help): n
# ...サイズ指定...
Command (m for help): w
|
パーティションを削除・再作成することで容量を再配分できます。ただし、データバックアップは必須!
まとめ#
fdiskコマンドのポイント:
- ディスクパーティション管理の基本ツール
- -l: パーティション情報表示(安全)
- -s: ディスク容量表示
- インタラクティブモード(デバイス名のみ指定)でパーティション編集
- n: 新規パーティション作成
- d: パーティション削除
- w: 変更を書き込む(これまで戻せない!)
- q: 変更を捨てて終了
- よく使う組み合わせ:
sudo fdisk -l, sudo fdisk /dev/sdb
ディスク管理は重要だけど危険。本番環境では特に慎重に!バックアップを取ってから作業することを強くお勧めします。