データを失うことなくVPSでパーティションのサイズを変更する

データを失うことなくVPSでパーティションのサイズを変更する

/40 GB のディスク容量を持つ小さな VPS サーバーがあります。 追加の 40 GB を購入し、パーティション サイズを拡張したいと考えています。

私のパーティションは次のようになります:

パーティションサイズ

/dev/vda1/boot/dev/vda5は私の です/。私の VPS プロバイダーが を追加しました/dev/vda2。これが正しいかどうかはわかりませんが、 を削除し/dev/vda5/dev/vda2を作成しようとしまし/dev/vda5たが、そのオプションがありません。私の がある 5 ではなく、ID 2-4 のデバイスのみを再作成できます/

答え1

プロバイダーが仮想ディスクを拡張したら、安全にパーティションを拡張するユーティリティがありますgrowpart。あなたの場合の唯一の問題は、プロバイダーが不要な拡張/論理 DOS パーティションを不必要に作成していることです。したがって、拡張パーティションのサイズを変更してから、そこに含まれる論理パーティションのサイズを変更する必要があります。

sudo apt install cloud-guest-utils

このgrowpartユーティリティはディスク番号とパーティション番号を別々の引数として受け入れるので、サイズを変更するには次のように/dev/vda2記述します。

sudo growpart /dev/vda 2

/dev/vda2まず拡張パーティションのサイズを変更し、次に/dev/vda5同じ方法でサイズを変更します。

sudo growpart /dev/vda 2
sudo growpart /dev/vda 5

これで、ファイルシステムのサイズを変更できるはずです。ext4 の場合は、 がresize2fs /dev/vda5機能します。XFS の場合は、 を使用しますxfs_growfs /

答え2

出力からfdisk判断すると、確かに80GBのディスクと40GBの延長パーティション(/dev/vda2)には40GBの論理的な/dev/vda5ファイルシステムを保持するパーティション/。拡張パーティションには実際にはファイルは含まれず、以下で説明する 4 つのパーティション制限を克服できる論理パーティションの「コンテナ」にすぎません。また、40 GB の未割り当て領域がありますが、これはfdiskまったく表示されません。

未割り当て領域の使用方法には、いくつかのオプションがある可能性があります。LVM を使用していないと想定しています。LVM にはボリュームのサイズを変更するための独自のツールがあるため、使用している場合は手順がまったく異なります。ただし、fdisk出力には LVM パーティションに関する言及がまったくありません。

fdiskパーティションを削除して再作成することは、常にデータを失うリスクがあるためお勧めしません。安全に実行したい場合は、次の操作を試してください。

最初のオプションは、2 つの 40 GB パーティションを用意し、これらの 2 つにファイルをインテリジェントに分割することです。たとえば、 に大量の大きなファイルを保存する場合/home、 に新しいパーティションを使用し/home、 を除くその他すべては/home古いパーティションに残ります。これを行うには、次の手順を実行します。

  1. を使って、その未割り当て領域にfdisk別のプライマリパーティション(おそらく として表示されます!)を作成し、 で新しいLinuxファイルシステムとしてフォーマットします。最大で合計4つのプライマリまたは拡張パーティションを作成できますが、そのうち最大1つが拡張パーティションであるため、別のパーティションのためのスペースがあります。プライマリパーティションが1つしかないパーティションレイアウトは推奨されません。/dev/vda3mkfs /dev/vda3拡張パーティションですが、おそらく動作するでしょう。

  2. /homeディレクトリの名前を に変更し/old_home(現在使用されていないことを確認し、通常のユーザーがログインしていない状態で root から実行してください)、/home古いディレクトリと同じ所有者と権限を持つ新しいディレクトリを作成します。

  3. コマンドを使用して、/dev/vda3以下のファイルシステムをマウントします。これが成功したら、システムの起動時に新しいファイルシステムが適切に自動マウントされるように編集する必要があります。おそらく、現在、vda1 と vda5 の 2 つの行が含まれています。次のようになります (これは私が今作ったもので、実際のものとは異なる場合があります)。/homemount /dev/vda3 /home/etc/fstab/etc/fstab

    /dev/vda5 / ext4 defaults 0 1

    /dev/vda1 /boot ext4 defaults 0 2

    たとえば、vda3 に同様の行を追加します。

    /dev/vda3 /home ext4 defaults 0 2

    (ファイルに「ext4」または「defaults」以外の何かが含まれている場合は、これらのパラメータを新しい行にコピーするだけです)。次に、任意のファイルを新しい/homeディレクトリに書き込み、システムを再起動します。再起動後、ディレクトリに置いたファイルがまだそこにある場合は、起動時に正しくマウントされたことを/home意味します。/home

  4. これで、すべてを に移動し/old_home/home空の/old_homeディレクトリを削除できます。

私にとって、この方法は通常最も安全で簡単だと考えており、何度も使用しています。ただし、この方法には、単一の 80 GB のスペースではなく、実際には 2x40 GB のスペースが必要になるという欠点があります。これは、良い場合もあれば悪い場合もあります。たとえば、ユーザー ファイルでシステム ディスクが誤っていっぱいになるのを避けたい場合は、/home別のパーティションを用意する方がよいでしょう。

もう一つの選択肢はGNUを使うことだ別れたvda2 および vda5 パーティション (最初に vda2、次に vda5。前者には後者が含まれるため) のサイズを 80 GB に調整するプログラムです。 は、partedデータを失うことなくパーティションを変更するように特別に設計されていますが、fdisk保証はできません。 は Debian リポジトリにあるはずなpartedので、 でインストールできますapt

パーティションのサイズを変更したら、コマンドを使用してファイルシステムを 80 GB までresize2fs /dev/vda5拡張します。/

答え3

通常、この場合は を使用しますfdisk /dev/vda

  • パーティション 2 と 5 の開始セクターをメモします。
  • パーティション5を削除します。
  • パーティション2を削除します。
  • 古い開始セクターと新しい終了セクター(デフォルト値)でパーティション2を再作成します。これは延長パーティション。
  • 古い開始セクターと新しい終了セクター(デフォルト値)でパーティション5を再作成します。これは論理的なパーティション。

テーブルが書き込まれてアクティブになった後 (再起動など)、そのパーティション上のファイルシステムに適した方法を/dev/vda5使用してファイルシステムを拡張する必要があります。resize2fs

何よりも、これを試みる前に、適切なバックアップがあることを確認してください。

関連情報