GNU/Linux >> Linux の 問題 >  >> Linux

Linux での GPT パーティションのライブ サイズ変更

これを行う最も安全な方法は、非常用メディア (ライブ 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 を実行する必要があるかもしれません システムを再起動せずにカーネルがパーティショニングの変更を認識できるようにします。


Linux
  1. Linuxでディスクをパーティション分割する方法

  2. Linux – BIOSを備えた32ビットシステムにGptを使用してインストールしますか?

  3. Linux でパーティションベースのファイルシステムのサイズを変更 (拡張) する方法

  1. 組み込みLinuxでリカバリパーティションを作成しますか?

  2. GNU/Linux でパーティションを移動するには?

  3. Linux でスワップ パーティションを変更するにはどうすればよいですか?

  1. Linuxでスワップパーティションを管理する方法

  2. MacOS の Linux コマンド sudo fdisk -l に相当するものは何ですか?

  3. Linux スワップ パーティションを有効にするにはどうすればよいですか?