GNU Parted (日本語)
GNU Parted はパーティションテーブルを作成したり操作するためのプログラムです。GUI フロントエンドとして GParted が存在します。
Contents
1 インストール
公式リポジトリから parted をインストールしてください。
2 使用方法
Parted には2つのモードがあります: コマンドラインモードとインタラクティブモードです。Parted は以下のように実行します:
# parted device
device は編集するハードディスクデバイスに置き換えて下さい (例: /dev/sda)。device を省略すると、parted が編集するデバイスを推測します。
2.1 コマンドラインモード
コマンドラインモードでは、1つまたは複数のコマンドを指定します。例:
# parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
2.2 インタラクティブモード
インタラクティブモードでは、コマンドを1つずつ入力し、すぐにディスクに変更が適用されます。例:
(parted) mklabel gpt (parted) mkpart P1 ext3 1MiB 8MiB
コマンドにパラメータを指定しなかった場合、Parted はパラメータを尋ねます。例:
(parted) mklabel New disk label type? gpt
3 ラウンディング
多くのパーティショニングシステムには複雑な制約が存在するため、Parted はあなたが要求したことと少しだけ違うことをすることがあります (例えば、パーティションの開始位置を 10.4Mb から 10.352Mb に変えることがあります)。計算された値があまりにも食い違った場合、Parted はあなたに確認を行います。Parted が何をするのか詳しく知りたい場合は、"unit s" コマンドを使うことでパーティションの終末点がセクタで表示されます。また、細かく指定したい場合、セクタでパーティションの終末点を指定することもできます ("s" を後ろに付ける)。
parted-2.4 から、“MiB”, “GiB”, “TiB” などのように IEC バイナリ単位を使って開始地点や終末地点を指定したとき、parted はそれらの値をバイト数で指定したときと同じ数値として正確に扱います (つまり “B” を付けたときと同じ)。そのため曖昧な誤差は生じません。逆に、“4GB” のようにパーティションの開始位置を指定した場合、その地点よりも最大で 500MB ほど前だったり後ろだったりになることがあります。従って、パーティションを作成するときは、バイト (“B”) やセクタ (“s”) を使うか “MiB” のような IEC バイナリ単位を使うほうが良いでしょう。
4 パーティションのリサイズ
- parted で出来るのはパーティションの末端を移動することだけです。
- parted v4.2 現在、resizepart を使うには #インタラクティブモード でなければなりません [1]。
- 以下の手順は ext2, ext3, ext4 ファイルシステムを使っているパーティションの場合です。
パーティションを拡大したい場合、パーティションをリサイズしてからパーティション上のファイルシステムをリサイズする必要があります。逆に、縮小する場合は、データが消失しないように先にファイルシステムをリサイズしてから、パーティションのリサイズを行います。
4.1 パーティションの拡大
パーティションを拡大するには (parted のインタラクティブモード):
(parted) resizepart number end
number は拡大したいパーティションの番号に置き換えて下さい。end がパーティションの新しい末端です (古い末端よりも大きくする必要があります)。
次に、パーティションのファイルシステムを拡大します:
# resize2fs /dev/sdaX size
sdaX は拡大するパーティションに、size はパーティションの新しい容量に置き換えて下さい。
4.2 パーティションの縮小
パーティションのファイルシステムを縮小するには:
# resize2fs /dev/sdaX size
sdaX は縮小するパーティションに、size はパーティションの新しい容量に置き換えて下さい。
次にパーティションを縮小 (parted のインタラクティブモード):
(parted) resizepart number end
number は縮小したいパーティションの番号に置き換えて下さい。end がパーティションの新しい末端です (古い末端よりも小さくする必要があります)。
完了したら、util-linux の 'resizepart コマンドを使ってカーネルに新しい容量を通知します:
# resizepart device number size
device はパーティションが存在するデバイスに、number はパーティションの番号に、size はパーティションの新しい容量に置き換えて下さい。
5 ワーニング
危険な操作をしようとすると Parted はかならず警告を表示します。ただし本質的に危険なコマンドについては別です (viz., rm, mklabel, mkpart)。
5.1 アライメント
パーティションの作成時、parted はパーティションのアライメントが正しくないと警告することがありますが、正しいアライメントについてのヒントは教えてくれません。例:
(parted) mkpart primary fat16 0 32M Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel?
この警告はパーティションの開始位置がアラインされていないことを意味しています。"Ignore" と入力すると先に進み、開始位置がわかるようにパーティションテーブルがセクタで表示され、警告がなくなるまで2の冪まで開始セクタが切り上げられてパーティションが削除/再作成されます。例えば、512B セクタのフラッシュドライブの場合、Parted は 2048 の倍数のセクタでパーティションを開始させようとします (1MiB アライメント)。
6 参照
- GNU parted - Parted ユーザーマニュアル
- How to align partitions for best performance using parted
- Resize an ext3/ext4 partition