ディスク全体に広がるパーティションに物理ボリュームがあります。たとえば、/ dev /sda1は/dev / sdaを100%使用しています。次に、それを縮小して/ dev/sda2を作成する必要があります。論理ボリュームは実際にはPVの約50%を使用するため、理論的には十分なスペースがありますが、すべてが単一のPVに割り当てられます。物理ボリューム(および基盤となるディスクパーティション)を縮小して、2番目のパーティション用に余分なスペースを作成する安全な方法はありますか?残念ながら、私の構成では、物理ボリュームを別のデバイスに一時的にpvmoveする可能性はありません。
もちろん、ファイルレベルで実行できることはわかっていますが(コンテンツのバックアップ、ディスクドライブの再パーティション化、LVM構成の再作成など)、LVを最初から構成する必要なしに作業を実行したいと思います。
よろしくお願いします。
承認された回答:
別の個別のファイルシステムが必要な場合は、新しいパーティションを作成する必要はありません。PVの未割り当て領域を使用して、既存のボリュームグループ内に別のLVM論理ボリュームを作成できます。ただし、特に新しいパーティションが必要な場合 、その後は当初の計画どおりに行う必要があります。
GPartedは、PV+パーティションのサイズ変更操作全体を実行できるGUIツールです。ほとんどの場合、ディストリビューションのパッケージコレクションに含まれています。
ただし、何らかの理由で使用できない、または使用したくない場合は、以下をお読みください…
未割り当てのスペースがあるLVM物理ボリュームを減らすのは非常に簡単です。たとえば、/ dev /sda1のサイズを40GiBに減らすには:
# pvresize --setphysicalvolumesize 40G /dev/sda1
このコマンドは、PVの一部に割り当てられたエクステントが含まれている場合、何も実行しないため、安全です。
しかし、それは最初のステップにすぎません。 2番目のステップは、パーティション自体のサイズを縮小することです。
安全のために、最初にPVを実際にパーティションを縮小する予定よりも少し縮小することをお勧めします。これにより、パーティションを縮小した後、PVを明示的に拡張してパーティションのフルサイズをカバーできます。拡張操作が失敗した場合、パーティションのサイズ変更で問題が発生したことがすぐにわかり、将来、自分や他の誰かをトラップするための隠れたエラーが残ることはありません。
プレーンなLinuxfdisk
を使用してパーティションを縮小できます コマンドですが、いくつかの点に注意する必要があります:
-
fdisk
を使用する場合 パーティションのサイズを変更するには、すべてのパーティションサイズと開始位置をセクターで表示するように設定してください。 最初。 Linuxの歴史の中でfdisk
、その動作はここで異なります。最新バージョンではデフォルトで実行されますが、古いバージョンでは-u
が必要になる場合があります。 または-u=sectors
そうするためのオプション。 - 既存のパーティションのサイズを変更する場合、パーティションの開始点を移動することはできません。 (開始点を移動すると、単純なサイズ変更操作ではなく、より複雑なパーティション移動操作になります。)
fdisk
を使用する場合 、w
を使用した場合にのみ、変更がディスクに書き込まれます 指図。したがって、次のように進めることをお勧めします:
-
sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump
を使用します 既存のパーティションテーブルをバックアップします。 - start
fdisk /dev/sda
インタラクティブモードで -
p
を使用する 現在のパーティションテーブルを表示し、「開始」と「終了」の値がセクターとして表示されていることを確認するコマンド。 「開始」値をメモします。 -
d
を使用するsda1
の現在のパーティションエントリを削除するコマンド 。 -
n
を使用するsda1
のプライマリパーティションエントリ1を再作成するコマンド 希望のサイズで、最初のセクターの位置を正確に指定するように注意してください(つまり、p
の「開始」値に表示されたのと同じ数値) コマンド)。 -
t
を使用する パーティション1のタイプを「LinuxLVM」に設定するコマンド。 - 作業を再確認してください
-
w
を使用する 更新されたパーティションテーブルを書き込み、fdisk
を終了するコマンド 。
fdisk
によって表示されるメッセージに注意してください 最後に。 「カーネルはまだ古いテーブルを使用しています」と表示されている場合は、何かがオンラインパーティションテーブルの更新をブロックしています。 partprobe /dev/sda
を試すことができます カーネルにパーティションテーブルを再読み込みするように指示します(一部の古いバージョンのfdisk
よりも新しいインターフェイスを使用します) 使用するので、役立つ可能性があり、確かに害はありません)、cat /proc/partitions
を見てください。 パーティションがカーネルによって予想されるサイズで認識されるようになったかどうかを確認します。
パーティションのサイズ変更が成功すると、pvresize /dev/sda1
を実行できるようになります。 。私のアドバイスに従って、PVを最初にパーティションの希望する新しいサイズよりも少し小さくサイズ変更した場合、サイズ変更されたパーティションを自動的に完全にカバーするようにPVを少し拡張することに成功するはずです。このコマンドでエラーが報告された場合は、新しいサイズの指定を間違えた可能性があるため、sfdisk /dev/sda < /safe/location/partition_table_backup.dump
を使用する必要があります。 パーティションテーブルを元の状態に復元してから、再試行してください。
(非常に古いシステムでは、partprobe
を実行する前に実際にVGを非アクティブ化する必要がある場合があります または、再起動して、システムが更新されたパーティションテーブルを再読み取りできるようにします。)
サイズ変更操作が完了すると、fdisk
を使用できるようになります。 もう一度、必要な2番目のパーティションを作成します。はい、パーティションのサイズを変更しながら一緒に行うこともできますが、一度に1つのことだけを行う方が安全であり、必要に応じて変更を簡単にロールバックできます。