はじめに#
こんにちは!今回はpartedコマンドについて解説します。
partedはディスクのパーティションを管理するコマンドで、特にGPT(GUID Partition Table)形式に対応しています。最新のサーバーやPCでは、古いfdiskよりもpartedがよく使われていますね。
2TB以上の大容量ディスクを扱う場合は、partedが必須。MBR形式とGPT形式の両方に対応できるオールラウンダーです!
partedコマンドとは#
partedは、ディスクパーティションを表示・作成・削除・編集するための外部コマンドです。“partition editor"の略で、GDISKやfdiskよりも新しく、より多くの機能を持っています。
MBR形式(最大2TB)とGPT形式(2TB以上対応)の両方をサポート。さらに、ext4やNTFSなどの複数のファイルシステムに対応しており、パーティションのリサイズもできます。最近のLinuxディストリビューションではデフォルトで含まれていることが多いです。
基本構文#
1
|
parted [オプション] [デバイス名] [コマンド]
|
デバイス名は/dev/sda、/dev/sdbなどです。コマンドを指定しないと、インタラクティブモードになります。
主なオプション#
| オプション |
説明 |
-l |
すべてのディスクのパーティション情報を表示 |
-s |
スクリプトモード(確認なしで実行) |
-m |
指定デバイスのパーティション情報を表示 |
-v |
バージョン情報を表示 |
使用例#
例1: すべてのディスクのパーティション情報を表示#
実行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Model: QEMU HARDDISK (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1050MB 1049MB primary ext4 boot
2 1050MB 107GB 106GB primary ext4
Model: Samsung SSD 860 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1000GB 1000GB ext4 storage
|
全ディスクの詳細なパーティション情報を表示します。
例2: 特定のディスクのパーティション情報を確認#
1
|
sudo parted -m /dev/sda
|
実行結果:
1
2
3
|
/dev/sda:107GB:scsi:512B:512B:msdos:QEMU HARDDISK;
1:1049kB:1050MB:1049MB:ext4::boot;
2:1050MB:107GB:106GB:ext4::;
|
機械可読形式(CSV形式)で表示。スクリプトで処理する際に便利。
例3: インタラクティブモードでパーティション管理#
実行結果:
1
2
3
4
|
GNU Parted 3.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
|
デバイス名を指定するとインタラクティブモードになります。
例4: パーティションテーブルを表示(インタラクティブモード)#
1
2
|
sudo parted /dev/sdb
(parted) print
|
実行結果:
1
2
3
4
5
6
7
8
9
|
Model: Samsung SSD 860 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 500GB 500GB ext4 data1
2 500GB 1000GB 500GB ext4 data2
|
現在のパーティション配置を確認します。
例5: GPTパーティションテーブルを初期化#
1
|
sudo parted /dev/sdb mklabel gpt
|
実行結果:
1
2
|
Warning: The existing disk label will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
|
ディスク全体をGPT形式でフォーマット。元のデータは消えます。
例6: 新しいGPTパーティションを作成#
1
|
sudo parted /dev/sdb mkpart primary ext4 0% 50%
|
実行結果:
ディスク容量の0%~50%を使用してプライマリパーティションを作成します。
例7: パーティションのサイズを変更#
1
|
sudo parted /dev/sdb resizepart 1 600GB
|
実行結果:
パーティション1のサイズを600GBに変更します。
例8: パーティションを削除#
1
|
sudo parted /dev/sdb rm 2
|
実行結果:
パーティション2を削除します。データは失われます。
例9: ディスクの詳細情報を確認#
1
|
sudo parted /dev/sdb print details
|
実行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Model: Samsung SSD 860 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2097152B 536870912000B 536870910000B ext4 storage
Partition 1
UUID: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
Type: Linux filesystem
Flags: boot
|
各パーティションの詳細情報(UUIDなど)を表示します。
例10: コマンドラインでパーティションを作成#
1
|
sudo parted -s /dev/sdb mkpart primary ext4 0GB 100GB
|
実行結果:
-sオプション(スクリプトモード)で、確認なしに実行。スクリプトから呼び出すときに便利。
Tips・注意点#
GPT vs MBR#
1
2
3
4
5
|
# GPT形式(推奨、2TB以上対応)
sudo parted /dev/sdb mklabel gpt
# MBR形式(レガシー、最大2TB)
sudo parted /dev/sdb mklabel msdos
|
2TB以上のディスクを使う場合はGPT形式一択。古いシステムとの互換性が必要な場合のみMBRを使います。
パーティション作成前にファイルシステムをフォーマット#
1
2
3
4
5
|
# パーティション作成
sudo parted /dev/sdb mkpart primary ext4 0GB 100GB
# ファイルシステムをフォーマット
sudo mkfs.ext4 /dev/sdb1
|
partedでパーティションを作成するだけではまだ使えません。別途mkfsコマンドでフォーマットが必要です。
大容量ディスクの場合はparted必須#
1
2
3
|
# 3TB以上のディスクを使う場合
sudo parted /dev/sdc mklabel gpt
sudo parted /dev/sdc mkpart primary ext4 0% 100%
|
fdiskは2TBまでしか対応していません。3TB以上の場合、必ずpartedを使いましょう。
インタラクティブモードでのヘルプ#
コマンド一覧を表示します。
実践的な使い方#
新しいディスクをシステムに統合する#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 1. ディスク確認
sudo parted -l
# 2. GPTテーブルを作成
sudo parted /dev/sdb mklabel gpt
# 3. パーティション作成
sudo parted /dev/sdb mkpart primary ext4 0% 100%
# 4. ファイルシステムをフォーマット
sudo mkfs.ext4 /dev/sdb1
# 5. マウント
sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data
|
新しいディスク(/dev/sdb)をシステムに統合するまでの完全な流れです。
既存パーティションのサイズを変更#
1
2
3
4
5
6
7
8
|
# 1. 変更前のサイズを確認
sudo parted /dev/sda print
# 2. リサイズ(拡張)
sudo parted /dev/sda resizepart 1 500GB
# 3. ファイルシステムもリサイズ
sudo resize2fs /dev/sda1
|
パーティションを拡張する際の手順。resize2fsでファイルシステム側も対応させる必要があります。
複数パーティションを作成#
1
2
3
4
5
6
7
8
9
|
sudo parted -s /dev/sdb mklabel gpt
sudo parted -s /dev/sdb mkpart primary ext4 0GB 200GB
sudo parted -s /dev/sdb mkpart primary ext4 200GB 400GB
sudo parted -s /dev/sdb mkpart primary ext4 400GB 600GB
# フォーマット
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.ext4 /dev/sdb2
sudo mkfs.ext4 /dev/sdb3
|
1つのディスクを複数のパーティションに分割する例。
まとめ#
partedコマンドのポイント:
- GPT形式に対応した最新パーティション管理ツール
- -l: すべてのディスクのパーティション情報表示
- -m: 機械可読形式で表示
- -s: スクリプトモード(確認なし)
- mklabel: パーティションテーブルを初期化
- mkpart: 新規パーティション作成
- rm: パーティション削除
- resizepart: パーティションのサイズ変更
- よく使う組み合わせ:
sudo parted -l, sudo parted /dev/sdb mklabel gpt
2TB以上のディスクを扱うならpartedは必須。最新のサーバーセットアップにはもう欠かせないコマンドです。ただし、実行時は十分注意してください!