「Parted」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (Category:コマンド を追加) |
Kusanaginoturugi (トーク | 投稿記録) (関連記事の追加) |
||
7行目: | 7行目: | ||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|fdisk}} |
{{Related|fdisk}} |
||
+ | {{Related|gdisk}} |
||
{{Related|パーティショニング}} |
{{Related|パーティショニング}} |
||
{{Related articles end}} |
{{Related articles end}} |
2021年8月11日 (水) 11:42時点における版
GNU Parted はパーティションテーブルを作成したり操作するためのプログラムです。GUI フロントエンドとして GParted が存在します。
目次
インストール
parted パッケージをインストールしてください。グラフィカルインターフェイスを使いたい場合、parted のグラフィカルフロントエンドである gparted パッケージをインストールしてください。
使用方法
Parted には2つのモードがあります: コマンドラインモードとインタラクティブモードです。Parted は以下のように実行します:
# parted device
device
は編集するハードディスクデバイスに置き換えて下さい (例: /dev/sda
)。device
を省略すると、parted が編集するデバイスを推測します。
コマンドラインモード
コマンドラインモードでは、1つまたは複数のコマンドを指定します。例:
# parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
インタラクティブモード
インタラクティブモードではパーティショニングを簡単に行うことができ、指定したデバイスにパーティショニングコマンドで自動的に適用されるためコマンドを繰り返し実行する必要がありません。
デバイスの操作を開始するには、以下のコマンドを実行:
# parted /dev/sdx
コマンドラインプロンプトがハッシュ (#
) から (parted)
に切り替わります。プロンプトの (parted)
は手動で入力する必要があるコマンドではありません。
利用可能なコマンドを確認するには:
(parted) help
パーティショニングが完了したときや、他のデバイスのパーティションテーブル・スキームを変更したい場合、以下のコマンドで parted を終了します:
(parted) quit
終了後、コマンドラインプロンプトは元の #
に戻ります。
コマンドにパラメータを指定しなかった場合、Parted はパラメータを尋ねます。例:
(parted) mklabel New disk label type? gpt
ラウンディング
多くのパーティショニングシステムには複雑な制約が存在するため、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 バイナリ単位を使うほうが良いでしょう。
パーティショニング
新しいパーティションテーブルの作成
パーティションを作成したことがない場合やパーティションテーブルのタイプを変更したいときはデバイスのパーティションテーブルを(再)作成する必要があります。スクラッチからパーティションスキームを再構築したい場合もデバイスのパーティションテーブルを再作成すると良いでしょう。
パーティションテーブルを(再)作成したいデバイスを開いてください:
# parted /dev/sdx
GUID Partition Table を新しく作成したい場合、以下のコマンドを使用します:
(parted) mklabel gpt
Master Boot Record/MS-DOS パーティションテーブルを新しく作成したい場合、以下のコマンドを実行:
(parted) mklabel msdos
パーティションスキーム
デバイスを分割するパーティションの数と容量、どのディレクトリをパーティションにマウントするか (マウントポイント) 決めます。必要なパーティションについてはパーティショニング#パーティション形態を見てください。
以下のコマンドを使ってパーティションを作成できます:
(parted) mkpart part-type fs-type start end
part-type
はprimary
,extended
,logical
のどれかになります。MBR パーティションテーブルでのみ意味があります。fs-type
は使用するファイルシステムに一番適した識別子になります (help mkpart
と入力してリストを確認できます)。mkpart コマンドはファイルシステムを作成するわけではありません:fs-type
パラメータは単に parted が1バイトのコードを設定するのに使われ、コードによってブートローダーはパーティションに含まれているデータの種類をプレビューします。Wikipedia:Disk partitioning#PC partition types を参照。
start
はパーティションのデバイスにおける開始位置です。数字と 単位 で指定し、例えば1MiB
なら 1 MiB が開始位置になります。end
はデバイスの先頭からのパーティションの終末位置です (start
の値からの位置ではありません)。start
と同じ形式で指定し、例えば100%
はデバイスの末尾までを意味します (全ての領域を使用します)。
/boot
ディレクトリを含むパーティションには以下のコマンドを使ってパーティションを起動可能にします:
(parted) set partition boot on
partition
はフラグを立てるパーティションの数字に置き換えてください (print
コマンドの出力で数字を確認できます)。
UEFI/GPT の例
どのようにパーティショニングする場合でも、特殊な EFI System Partition が必要となります。
EFI システムパーティションを新しく作成する場合、以下のコマンドを使います (推奨サイズは 550 MiB):
(parted) mkpart ESP fat32 1MiB 551MiB (parted) set 1 esp on
後はどのようにパーティションするかはあなた次第です。残り領域の 100% を使うパーティションをひとつだけ作成する場合:
(parted) mkpart primary ext4 551MiB 100%
あるいは /
(20 GiB) と /home
(残り全ての領域) パーティションに分ける場合:
(parted) mkpart primary ext4 551MiB 20.5GiB (parted) mkpart primary ext4 20.5GiB 100%
もしくは /
(20 GiB), スワップ (4 GiB), /home
(残りの全ての領域) パーティションに分割する場合:
(parted) mkpart primary ext4 551MiB 20.5GiB (parted) mkpart primary linux-swap 20.5GiB 24.5GiB (parted) mkpart primary ext4 24.5GiB 100%
BIOS/MBR の例
ディスク領域を全て占有するプライマリパーティションをひとつだけ作る最小の構成の場合、以下のコマンドを使用:
(parted) mkpart primary ext4 1MiB 100% (parted) set 1 boot on
20 GiB の /
パーティションを作成してから残り領域全てを使って /home
パーティションを作成する例:
(parted) mkpart primary ext4 1MiB 20GiB (parted) set 1 boot on (parted) mkpart primary ext4 20GiB 100%
/boot
(100 MiB), /
(20 GiB), スワップ (4 GiB), /home
(残り全領域) パーティションに分割して作成する場合:
(parted) mkpart primary ext3 1MiB 100MiB (parted) set 1 boot on (parted) mkpart primary ext3 100MiB 20GiB (parted) mkpart primary linux-swap 20GiB 24GiB (parted) mkpart primary ext3 24GiB 100%
パーティションのリサイズ
パーティションを拡大したい場合、パーティションをリサイズしてからパーティション上のファイルシステムをリサイズする必要があります。逆に、縮小する場合は、データが消失しないように先にファイルシステムをリサイズしてから、パーティションのリサイズを行います。
パーティションの拡大
パーティションを拡大するには (parted のインタラクティブモード):
(parted) resizepart number end
number
は拡大したいパーティションの番号に置き換えて下さい。end
がパーティションの新しい末端です (古い末端よりも大きくする必要があります)。
次に、パーティションのファイルシステムを拡大します:
# resize2fs /dev/sdaX size
sdaX
は拡大するパーティションに、size
はパーティションの新しい容量に置き換えて下さい。
パーティションの縮小
パーティションのファイルシステムを縮小するには:
# resize2fs /dev/sdaX size
sdaX
は縮小するパーティションに、size
はパーティションの新しい容量に置き換えて下さい。
次にパーティションを縮小 (parted のインタラクティブモード):
(parted) resizepart number end
number
は縮小したいパーティションの番号に置き換えて下さい。end
がパーティションの新しい末端です (古い末端よりも小さくする必要があります)。
完了したら、util-linux の 'resizepart コマンドを使ってカーネルに新しい容量を通知します:
# resizepart device number size
device
はパーティションが存在するデバイスに、number
はパーティションの番号に、size
はパーティションの新しい容量に置き換えて下さい。
ワーニング
危険な操作をしようとすると Parted はかならず警告を表示します。ただし本質的に危険なコマンドについては別です (viz., rm, mklabel, mkpart)。
アライメント
パーティションの作成時、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 アライメント)。
parted に適切なアライメントを計算して欲しいときは、開始位置に具体的な数字の代わりに 0% を指定してください。例えば巨大なひとつの ext4 パーティションを作成する場合:
(parted) mkpart primary ext4 0% 100%
ヒントとテクニック
Windows XP とのデュアルブート
Windows XP パーティションを別のドライブに移動してブートパーティションにしたい場合、パーティションを移動する前に以下のレジストリキーを削除することで GParted を使って簡単に Windows を維持することができます:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
詳しくは こちら を参照してください。
アライメントのチェック
既にパーティション済みのディスクで parted を使ってデバイスのパーティションのアライメントを検証することができます。例えば、/dev/sda
の1番目のパーティションのアライメントを確認するには:
# parted /dev/sda (parted) align-check optimal 1 1 aligned