web-dev-qa-db-ja.com

Parted Command lineツールを使用してGPTのパーティションのサイズを変更する方法。 (SSH Rescue Envを使用)

最初のOSインストール後にパーティションのサイズを変更するためのオンラインコントロールパネルのないリモート専用サーバーがあるため、debianベースのレスキュー環境を使用して、マウント解除されたパーティションを操作しています。問題は、リモートドライブでのパーティション操作に関しては少し愚かで、GNU Partedコマンドラインツールを使用してみました。GPartedはオプションではなく、ドライブはGPTでフォーマットされ、リサイズコマンドを見つけるためだけにバージョン2.4から削除されました。だから、以下はpartedのprintコマンドからの私のパーティションのリストです:

Number  Start   End     Size    File system     Name     Flags
1      20.5kB  1049kB  1029kB                  primary  bios_grub
2      2097kB  21.0GB  21.0GB  ext4            primary
3      21.0GB  2000GB  1979GB  ext4            primary
4      2000GB  2000GB  536MB   linux-swap(v1)  primary

私が理解する必要があるのは、#3を約1.2TBに縮小し、#2を拡張して、#3が縮小したときに移動したものを満たす方法です。 #2パーティションがいっぱいで、#3パーティションに空きスペースがあります。

2
Coolguy3289

現在マウントされている(および必要な)こと、およびマウントの問題を回避するために他のメディアから起動できるかどうかによって、必要なことを実行できる場合とできない場合があります。ここで考慮すべき要素:

  • partition (通常、タイプコードなどの他のディスクスペースのチャンクの開始点と終了点を定義する単純なデータ構造)との違いに留意してください。 filesystem (LVMの論理ボリュームなどのパーティションまたは別のコンテナ内に保持されるより複雑なデータ構造)。この区別をまだ完全に理解していない場合は、今すぐ停止して調査してください。
  • マウントされたext2/3/4ファイルシステムのサイズを増やすことはできますが、マウントされたext2/3/4ファイルシステムのサイズを減らすことはできません。 resize2fsユーティリティは、コマンドラインからこのジョブを実行します。
  • パーティションのサイズを変更するには、パーティションを削除して、代わりに新しいパーティションを作成する必要があります。開始点と終了点は、セクターレベルの精度で指定する必要がある場合がありますが、partedはデフォルトでは提供しません。これを取得するには、unit sを設定する必要があります。または、デフォルトでセクターレベルの精度を提供するgdiskを使用できます。 (ただし、gdiskでさえ、デフォルトでパーティションを2048セクターの値に自動的に位置合わせするため、エキスパートメニューのdオプションで位置合わせを調整する必要がある場合があります。)
  • 通常、ファイルシステムのサイズ変更操作では、ファイルシステムの開始点は変更されません。したがって、パーティションの開始点を移動する必要がある場合は、ddまたは他のツールを使用してファイルシステムのコンテンツ全体を移動する必要があります。移動の方向によっては、元のパーティションを削除する前または削除した後、移動の前後に新しいパーティションを作成する必要がある場合があります。移動操作が元の場所と重複する場合は、パーティションデータを破壊しないように、 very に注意する必要があります。
  • パーティションとファイルシステムのエンドポイントには十分注意してください。ファイルシステムを縮小してから、ほんの少し小さすぎる新しいパーティションを再作成すると、重要なデータを破壊してしまう可能性があります。ファイルシステムを意図したよりも小さく縮小し、新しいパーティションを作成してから、resize2fsを使用して、ファイルシステムを新しい周囲のパーティションのサイズに拡大することをお勧めします。この手順により、サイズが不一致になる可能性が最小限に抑えられます。
  • カーネルが新しいテーブルを使用するようにパーティションテーブルを変更した後、再起動が必要になる場合があることに注意してください。

これらの問題のため、パーティションとファイルシステムの変更を調整するように設計されたGPartedまたは他のツールの助けを借りずに必要なことを実行しようとすると、非常に危険です。 can はできますが、セクター値を指定する際の1つの失敗は、まったく価値のないディスクを残す可能性があります。あなたがこれについて助けを求めているという事実は、あなたがその試みをすることを提案することに対して私を警戒させます。実稼働システムを破壊するリスクは、これまでこのようなことをしたことがない人にとっては非常に大きなものです。他に選択肢がない場合は、サーバーをローカルで再作成し、リモートサーバーで試す前にコピーを練習することを強くお勧めします。

あなたはいくつかの代替案を検討したいかもしれません:

  • GPartedを使用-外部メディアから起動できる場合は、GPartedを使用できます。これはリモートサーバーだと言います。このようなシステムの多くは、仮想USBドライブを接続し、Javaアプレットを介して仮想コンソールを表示できるBMCを提供します。この機能の使用は非常に遅くなりますが、GPartedを実行し、より簡単かつ安全に変更を加えることができます。
  • 追加のパーティションを作成-あるパーティションを縮小してから、別のパーティションを移動および拡大するのではなく、新しいパーティションを作成できます。次に、データをサブディレクトリから新しいパーティションに移動し、そのサブディレクトリの代わりにマウントします。このアプローチは基本的に違いを分けます。それでも1つのパーティションを縮小する必要がありますが、より危険で困難な移動操作を行う必要はありません。
  • シンボリックリンクを使用する-いっぱいになったパーティションからいくつかのファイルをいっぱいになったパーティションに分割してから使用すると、目標を達成できる場合がありますシンボリックリンクを使用して、目的のパスでアクセスできるようにします。これが最も安全なアプローチである可能性があります。
  • Reinstall-適切なバックアップがある場合は、システムをバックアップし、より良いセットアップで再インストールし、元のデータを復元できます。
  • オンサイトで行う-サーバーに物理的にアクセスできる場合、またはオンサイトのヘルプがある場合は、あなた(またはあなたのヘルプ) )UbuntuインストールUSBフラッシュドライブを使用して、デスクトップシステムで行うのと同じように直接実行できます。これがいかに重要であるか、そしてサーバーがあなたに相対的な場所に応じて、仕事をするために旅行する価値さえあります。
  • ディスクの追加-オプションの場合は、ディスクを追加し、そこにデータの一部を移動することを検討できます。

将来的には、 Logical Volume Management(LVM)、 の使用を検討することをお勧めします。これにより、この種の操作がより簡単で安全になります。 LVMには重要な学習曲線がありますが、基本を理解したら、パーティションの移動について心配する必要がないため、非常に役立ちます。ファイルシステムはファイルシステムのファイルのように保存されるため、1つを縮小すると、開始点を変更せずに別の空きスペースに拡張できます。 LVMは、新しいディスクの形でスペースを追加するのにも役立ちます。

1
Rod Smith

一時的な修正として、私が読んだ記事から。使用されているスペースの%70がWebサーバー、特に/ var/wwwから来ているようです。だから私がやったことは:

cd /var
mv www /home
ln -s /home/www www
ll
lrwxrwxrwx  1 root root      9 Oct 18 12:33 www -> /home/www/

私が言ったように、一時的な修正ですが、私のルートディレクトリは%100ではなく%30でいっぱいになりました。そのため、パーティションのサイズを変更できるまで、これは機能します。

0
Coolguy3289