どーも!marusukeです!
ディスクのパーティション操作を行うコマンドpartedについて説明します!
partedコマンドでできること
parted [オプション] [デバイス]
partedは、ディスクのパーティションを操作するためのコマンドです。GPT(GUID Partition Table)・MBR(Master Boot Record)どちらの形式のディスクにも対応しており、対話モード/非対話モードの両方で、パーティションの作成・削除・リサイズなどを行うことができます。
主な機能
| 機能 | 内容 |
|---|---|
| パーティションの表示 | ディスク上の既存パーティションを一覧表示します |
| 新しいパーティションの作成 | ディスク上に新しいパーティションを作成します |
| パーティションの削除 | 既存のパーティションを削除します |
| パーティションのリサイズ | 既存パーティションのサイズを変更します |
| ディスクラベルの作成 | ディスクのパーティションテーブル形式(gpt、msdosなど)を初期化します |
補足:「パーティションにファイルシステムを作成する」と紹介されることがありますが、これは誤解されやすいポイントです。
partedはパーティションの枠組みを作るコマンドであり、ファイルシステムそのものを作成するわけではありません。詳しくは後述の「mkpartの注意点」で説明します。
対話モードの使用例
オプションを付けずに実行すると、対話モードで起動します。
sudo parted /dev/sda
例:新しいGPTディスクの初期化とパーティション作成
partedを起動
sudo parted /dev/sda
- 新しいGPTディスクラベルを作成
(parted) mklabel gpt
- 新しいパーティションを作成
(parted) mkpart primary ext4 0% 50%
(parted) mkpart primary ext4 50% 100%
- 作成したパーティションを確認
(parted) print
- 対話モードを終了
(parted) quit
出力例
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 50.0GB 50.0GB ext4 primary
2 50.0GB 100GB 50.0GB ext4 primary
mkpartの注意点
mkpartの書式は次の通りです。
mkpart [パーティション種別] [ファイルシステム種別] 開始位置 終了位置
ここで指定するext4などの「ファイルシステム種別」は、実際にファイルシステムを作成するためのものではありません。GPTではパーティションタイプGUID、MBRではパーティションタイプIDを設定するための“目印”として使われるだけです。
そのため、mkpartの実行が終わった時点では、パーティションの枠が用意されただけの状態です。実際にデータを読み書きできるようにするには、このあとmkfsコマンドなどで該当パーティションにファイルシステムを作成し、必要な場所にマウントする作業が必要になります。
sudo mkfs.ext4 /dev/sda1
sudo mount /dev/sda1 /mnt/data
対話モードの主なサブコマンド
| コマンド | 説明 |
|---|---|
| help | 使用可能なコマンドの一覧を表示します |
| パーティションテーブルを表示します | |
| mklabel | 新しいディスクラベルを作成します(gpt、msdosなど) |
| mkpart | 新しいパーティションを作成します |
| rm | 既存のパーティションを削除します |
| resizepart | 既存のパーティションをリサイズします |
| quit | 対話モードを終了します |
非対話モードの使用例
非対話モードでは、コマンドと引数を一度に指定して実行できます。スクリプトに組み込んで自動化したい場合に便利です。
例1:非対話モードでパーティションを作成
sudo parted -s /dev/sda mklabel gpt
sudo parted -s /dev/sda mkpart primary ext4 0% 50%
sudo parted -s /dev/sda mkpart primary ext4 50% 100%
例2:ディスクのパーティションテーブルを表示
sudo parted -l
出力例
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 50.0GB 50.0GB ext4 primary
2 50.0GB 100GB 50.0GB ext4 primary
主なオプション
| オプション | 説明 |
|---|---|
| -h, –help | ヘルプメッセージを表示します |
| -l, –list | すべてのブロックデバイスのパーティション情報を表示します |
| -s, –script | スクリプトモードで実行します(対話なしでコマンドを実行) |
| -a, –align タイプ | パーティション作成時の配置(アライメント)方法を指定します。none・cylinder・minimal・optimalから選べます |
注意点
- バックアップを取ってから操作する:パーティションテーブルの操作を誤るとデータを失う可能性があります。重要なデータは事前にバックアップしておきましょう
mkpartだけでは使える状態にならない:パーティションを作成したあとは、mkfs系のコマンドでファイルシステムを作成し、mountで適切な場所にマウントするところまでがセットです- 対象デバイスを必ず確認する:操作前に
parted -lなどでデバイス名を確認し、別のディスクを指定してしまわないように気をつけましょう
まとめ
partedは、GPT・MBRどちらのディスクにも対応したパーティション操作コマンドです。対話モード・非対話モードの両方を使い分けながら、パーティションの作成・削除・変更ができます。ただしmkpartが作るのはあくまで「パーティションの枠」であり、ファイルシステムの作成は別途mkfsで行う必要がある点を覚えておきましょう。
参考図書・リンク
参考にさせていただいている図書やリンクは以下です↓
- Linux教科書 LPICレベル1 Version5.0対応(EXAMPRESS)[中島 能和]
- parted(8) – Linux manual page
- mkpart (Parted User’s Manual)
以上です!
ここまで読んでいただきありがとうございました!



コメント