物理ボリュームを減らすには?

物理ボリュームを減らすには?

私のパーティションには、ディスク全体にわたって拡張される物理ボリュームがあります。たとえば、/dev/sda1 は /dev/sda を 100% 使用します。これで/dev/sda2を生成するために縮小する必要があります。実際、論理ボリュームはPVの約50%を使用するため、理論的には十分な空き容量がありますが、すべて単一のPV内に割り当てられます。 2番目のパーティション用に追加のスペースを作成するために物理ボリューム(およびプライマリディスクパーティション)を縮小する安全な方法はありますか?残念ながら、私の構成では、物理ボリュームを別のデバイスに一時的にpvmoveする可能性はありません。

もちろん、ファイルレベルでこれを行うことができることを知っていますが(たとえば、バックアップ、ディスクドライブの再分割、LVM設定の再作成など)、最初からLVを設定せずにこれを実行したいと思います。

よろしくお願いします。

ベストアンサー1

別の別々のファイルシステムが必要な場合は、新しいパーティションを作成する必要はありません。 PVの未割り当て領域を使用して、既存のボリュームグループに別のLVM論理ボリュームを作成できます。しかし、特に新しいものが必要な場合分割その後、元の計画に従う必要があります。

ゴポット完全なPV +パーティションのサイズ変更操作を完了するためのGUIツール。ディストリビューションのパッケージコレクションにある可能性が高いです。

しかし、何らかの理由で使用できない場合や使用したくない場合は、読んでください。

未割り当て領域を含むLVM物理ボリュームを減らすことは非常に簡単です。たとえば、/dev/sda1のサイズを40GiBに減らすには、次のようにします。

# pvresize --setphysicalvolumesize 40G /dev/sda1

このコマンドは、削除するPV部分に割り当てられた範囲が含まれているとジョブの実行を拒否するという点で安全です。

しかし、これは最初のステップです。 2番目のステップは、パーティション自体のサイズを減らすことです。

安全のために、最初にパーティションを実際に縮小したいよりも少しPVを縮小してパーティションを縮小した後、PVを明示的に拡張してパーティションの全体サイズをカバーできるようにすることをお勧めします。拡張操作が失敗すると、パーティションのサイズ変更中に問題が発生したことがすぐにわかります。

単純なLinuxコマンドを使用してパーティションを縮小できますが、fdisk次の点に留意してください。

  • Resize Partitionsを使用するときは、fdiskすべてのパーティションサイズと開始位置を表示するように設定されていることを確認してください。部門最初。 Linuxの歴史の中で、fdiskLinuxの動作はさまざまでした。最新バージョンではデフォルトでこれを行い、以前のバージョンではこれを行うように要求するか、オプション-uで実行することもできます。-u=sectors
  • 既存のパーティションのサイズを変更すると、パーティションの始点を移動できません。 (開始点を移動すると、もはや単純なサイズ変更操作ではなく、より複雑なパーティション移動操作になります。)

このコマンドを使用すると、fdiskすべての変更がそのコマンドを使用した場合にのみディスクに書き込まれますw。したがって、次のようにすることをお勧めします。

  • sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump既存のパーティションテーブルのバックアップに使用されます。
  • fdisk /dev/sdaインタラクティブモードで起動
  • このpコマンドを使用して現在のパーティションテーブルを表示し、「開始」と「終了」の値がセクタとして表示されることを確認します。 「開始」の値を書き留めます。
  • このコマンドを使用してd現在のパーティションエントリを削除しましたsda1
  • このnコマンドを使用して、必要なサイズのメインパーティションエントリ1を再生成しsda1、最初のセクタがどこにあるかを正確に指定するように注意してください(つまり、コマンドの「開始」値に示されているのと同じ数字p)。
  • コマンドを使用してtパーティション 1 のタイプを「Linux LVM」に設定します。
  • 作業内容をもう一度確認してください。
  • このコマンドを使用して、更新されたwパーティションテーブルを作成して終了しますfdisk

fdisk最後に表示されたメッセージを参照してください。 「カーネルがまだ古いテーブルを使用しています」と表示されている場合は、オンラインパーティションテーブルの更新を妨げる問題があります。partprobe /dev/sdaカーネルにパーティションテーブルを再読み込みするように指示し(一部の以前のバージョンで使用するよりも新しいインターフェイスを使用すると役に立つ可能性がfdiskあり、確かに有害ではありません)、cat /proc/partitionsパーティションがカーネルで予想されるサイズとして認識されていることを確認できます。

パーティションのサイズ変更が成功した場合は、次のことを実行できますpvresize /dev/sda1。私のアドバイスに従い、最初にパーティションに必要な新しいサイズより少し小さくPVサイズを変更した場合は、自動的にパーティションのサイズ変更を完全に処理できるようにPVを少し拡張する必要があります。 。このコマンドがエラーを報告した場合は、新しいサイズの指定に誤りがある可能性があるため、これを使用してsfdisk /dev/sda < /safe/location/partition_table_backup.dumpパーティション表を元の状態に復元して再試行する必要があります。

(非常に古いシステムでは、実際にVGを実行する前に無効にする必要がある場合、またはシステムが更新されたpartprobeパーティションテーブルを再読み込みできるように再起動する必要があるかもしれません。)

サイズ変更操作が完了したら、fdiskそれを再利用して必要な2番目のパーティションを作成できます。はい、パーティションのサイズを変更するときにこれを一緒に実行することもできますが、一度に1つずつ実行する方が安全で、必要に応じて変更を簡単にロールバックできます。

おすすめ記事