これを行う最も安全な方法は、非常用メディア (ライブ CD など) を使用して起動し、GParted を使用することです。これにより、パーティションとそれに含まれるファイル システムの両方のサイズが変更されます。ただし、これはパーティションが現在使用されていない場合にのみ機能します。
ただし、ダウンタイムを許容できない場合は、gdisk
を使用してみてください。 parted
の代わりに . fdisk
で行ったのと同じように、サイズを変更するパーティションを削除し、その場所に同じ開始点で新しいパーティションを作成する必要があります。 . gdisk
カーネルは変更を登録しない可能性がありますが、使用中のディスクで作業する意思があります。その場合、 partprobe
を使用する必要があるかもしれません または kpartx
カーネルに新しいパーティションテーブルを受け入れさせるか、それが機能しない場合はコンピューターを再起動します。 (これはすべて fdisk
を使用する場合と非常によく似ているはずです .)
これは通常、最近の Linux ディストリビューションでのみ機能します。必要なツール:
- partprobe (通常は parted の一部)
- gdisk / sgdisk
GPT パーティションは、ディスクの最後にバックアップ ヘッダーを格納します。基になるデバイスのサイズを変更した場合、バックアップ ヘッダーは中間のどこかに配置されます。最初のステップは、パーティション ヘッダーをディスクの最後に移動することです。
ディスクが /dev/sda で、パーティションが /dev/sda3 (最後のパーティションでもある必要があります) であると仮定します:
sgdisk -e /dev/sda
次に、最後のパーティションを削除して再作成します:
sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda
通常、カーネルがパーティション テーブルを再ロードできないことを示すメッセージが表示されます。パーティションが新しいサイズで登録されるように、partprobe を実行する必要があります:
partprobe /dev/sda
これが失敗した場合は、仮想マシンを再起動する必要があります。その後、ext4 などの適切なツールを使用してファイルシステムを拡張できます。
resize2fs /dev/sda3
注意 :sgdisk の実行は破壊的な可能性があります。適切なバックアップ手順が整っていることを確認してください。
以下は、自動化されたツールが 1 回の実行でオンラインでパーティションのサイズを変更するために使用する例です:
<ブロック引用>sgdisk -d 1 -n 1:2048:0 -c 1:-u1:E485F29F-A1F4-4953-9DD8-799EAEA0119B -t 1:0700 /dev/xvda
sgdisk コマンドのオプションのリストは次のとおりです:
- -d 1 最初のパーティションを削除
- -n 1:2048:0 新しいパーティション「番号 1」を作成し、セクター 2048 を開始します。終了セクター =「0」は、「このパーティションに利用可能なすべてのスペースを使用する」ことを意味します
- -u そのパーティションに一意の GUID を設定します (これは GPT パーティションに固有です)。 GUID に「R」を使用して、ランダムな値に設定できます。
gdisk /dev/xvda; p
で現在のパーティションの ID を取得することもできます 同じ uid を再利用するための出力 - -t 1:0700 基本的に、最初のパーティションがタイプコード「0700」であることを意味します。
/dev/xvda は、再パーティション化したディスクです。
そのため、すぐにその場所に新しいパーティションを削除して作成します。
PS。タイプコード「0700」に関するいくつかの注意事項。男SGDISK(8)より
-t, --typecode=partnum:{hexcode|GUID} Change a single partition's type code. You enter the type code using either a two-byte hexadecimal number, as
または、完全に指定された GUID 値 (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 など)。
ここで「0700」が何を意味するかについての最良の説明を見つけました - http://www.rodsbooks.com/gdisk/walkthrough.html
<ブロック引用>「でも待ってください。ディスクに FAT パーティションがあると思っていたのに!」とあなたは言います。確かにそうです。 Windows は、FAT であれ NTFS であれ、すべてのデータ パーティションに単一の GUID コードを使用します。以前は、Linux のデータ パーティションに同じコードが使用されていました。 (これについては後ほど説明します....) したがって、この場合、いくつかの異なる MBR コードがすべて 1 つの GPT GUID コードに変換されます。 GPT fdisk は、これらすべてに対して、多少恣意的に、0x0700 コード (より正確には、EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) を使用します。
私の場合、それは Linux ext4 パーティションだったと思いますが、パーティションのタイプコードはファイルシステム タイプを意味しないため、「0700」は sgdisk のキャッチオール タイプのように見えます。少なくとも私が見たケースでは.
PPS。 partprobe
を実行する必要があるかもしれません システムを再起動せずにカーネルがパーティショニングの変更を認識できるようにします。