Linux は、OS のコマンド ラインに関する少なくとも基本的な知識が求められるという点で、他のオペレーティング システムと比べて独特です。コマンド ラインからほとんどすべての操作を行うことができ、多くの場合、GUI を操作するよりも簡単です。
コマンドラインでできることの中には、パーティションのサイズ変更があります。これを行う方法について詳しく説明します。
準備
適切な準備が鍵です
壊滅的なデータ損失を回避するには、ディスク パーティションに変更を加える前に、すべての準備を整える必要があります。パーティションのサイズ変更操作における絶対的な最初のステップは、ターゲット ドライブに存在するすべての重要なデータの包括的で検証済みのバックアップを作成することです。ディスク操作には本質的にファイル システムの破損や誤った削除のリスクが伴うため、ドライブのイメージ化や重要なファイルを外部記憶媒体に安全にコピーするためのツールの利用は交渉の余地がありません。
バックアップが保護されたら、管理者はコマンド ライン ユーティリティを使用して現在のディスク レイアウトを評価する必要があります。の lsblk このコマンドは、接続されているすべてのブロック デバイスとそれぞれのパーティションの明確な階層ビューを提供し、次のような特定のドライブとパーティションの指定を識別できるようにします。 /dev/sda1 または /dev/nvme0n1p2。さらに、次のようなコマンド df -h そして fdisk -l ファイル システムの使用状況、セクター サイズ、既存のパーティションの正確な開始境界と終了境界に関する重要な情報が提供されます。
パーティションを正常に拡張するには、拡張するパーティションのすぐ隣の物理ドライブに未割り当ての空き領域がなければなりません。未割り当て領域がドライブの先頭にある場合、または別のアクティブなパーティションで区切られている場合、標準の拡張方法はデータを移動しないと機能しません。これは非常に複雑でリスクの高い手順です。さらに、管理者は、パーティション上で現在フォーマットされているファイル システム タイプ (ext4 や XFS など) を判断する必要があります。これにより、最終的なサイズ変更フェーズに必要な特定のツールが決定されるためです。最新の Linux カーネルは、ext4 および XFS ファイル システムがアクティブにマウントされて使用されている間に拡張するためのオンライン サイズ変更をサポートしていることがよくありますが、パーティション テーブル自体の縮小操作や構造変更を行うには、ストレージ デバイスへの排他的アクセスを確保するためにドライブをアンマウントするか、ライブ USB 環境から起動する必要がある場合があります。
標準 (非 LVM) パーティションの拡張
ほとんどのユーザーにとって
標準の非 LVM パーティションの拡張には、厳密な 2 段階のプロセスが必要です。つまり、より大きな物理スペースを認識するようにパーティション テーブルを変更し、その後、新しく割り当てられた境界に拡張するようにファイル システムに指示します。
最初のフェーズでは、次のようなツールを使用してパーティション境界を変更する必要があります。 fdisk または parted。恐ろしいものではありますが、次のような一般的な方法です。 fdisk 既存のパーティション レコードを削除し、すぐに再作成する必要があります。この再作成プロセスでは、新しいパーティションが元のパーティションとまったく同じ開始セクターから始まることが絶対に重要です。開始セクターと一致しないと、即時にデータが失われ、ファイル システムが破壊されます。
fdisk の使用は比較的簡単です。
-
走る
sudo fdisk /dev/sda。 -
タイプ
pをクリックしてパーティション テーブルを印刷し、サイズを変更するパーティションの開始セクターをメモします。 -
タイプ
dパーティションを削除するには、次にパーティション番号 (例:1)。これにより、パーティション テーブル内のパーティション エントリのみが削除され、データは削除されません。 -
タイプ
n新しいパーティションを作成します。前に述べたものと同じ開始セクターを使用し、デフォルトの終了セクターを受け入れて、利用可能なすべてのスペースを使用します。 -
タイプ
w変更をディスクに書き込んで終了します。 -
カーネルがパーティション テーブルの変更を認識できるように、システムを再起動する必要がある場合があります。
sudo reboot。
その後、終了セクターが拡張され、隣接する未割り当てスペースが取り囲まれます。あるいは、 growpart このユーティリティは、手動による削除やセクター境界の再作成を必要とせずに、パーティション テーブルを自動的に書き換えて、指定されたパーティションを利用可能な連続領域に拡張することにより、より安全で合理的なアプローチを提供します。
サイズの増加を反映するために基礎となるパーティション テーブルが更新されたら、オペレーティング システムにハードウェアの変更を通知する必要があります。を実行する partprobe このコマンドは、カーネルにパーティション テーブルの再読み取りを強制し、システムを再起動することなくブロック デバイスの新しいディメンションを確実に認識できるようにします。 2 番目のフェーズでは、追加のスペースをまだ認識しておらず、元のサイズ制限が維持されているファイル システム自体に対処します。標準の ext2、ext3、または ext4 ファイル システムの場合、 resize2fs コマンドはターゲット パーティション ブロック デバイスに対して実行されます。このユーティリティは、新しく拡張されたパーティション全体を埋めるようにファイル システム構造を拡張します。パーティションが XFS ファイル システムを使用している場合、 xfs_growfs 代わりにコマンドが使用されます。このコマンドでは、パーティションをマウントする必要があり、デバイス パスではなくマウント ポイント ディレクトリを引数として受け取ります。
LVM による拡張
サーバーでもこれを行うことができます
Logical Volume Manager は、物理ストレージ上に非常に柔軟な抽象化レイヤーを提供し、拡張プロセスを標準パーティションを扱うよりも大幅に動的にします。
LVM アーキテクチャは、実際のストレージ デバイスにマップされる物理ボリューム、1 つ以上の物理ボリュームのストレージをプールするボリューム グループ、およびボリューム グループから切り出された最終的に使用可能なパーティションである論理ボリュームという 3 つの主要コンポーネントで構築されます。 LVM セットアップを拡張するには、管理者はまず利用可能な RAW ストレージを必要とします。これは、まったく新しいハードドライブをシステムに追加するか、既存のドライブの未割り当て領域を利用することによって実現できます。
新しいストレージスペースは、最初に、 pvcreate 指示。このステップでは、LVM メタデータを書き込むことで RAW ディスクまたはパーティションを準備し、デバイスを既存のストレージ プールに組み込む準備ができていることを LVM サブシステムに通知します。
物理ボリュームが初期化されたら、次のステップは全体的なボリューム グループの容量を拡張することです。の vgextend コマンドは、新しく作成された物理ボリュームを目的のボリューム グループに追加するために使用されます。これにより、その特定のボリューム グループ内で使用可能な未割り当てのストレージ ブロックの合計プールが即座に増加します。ボリューム グループが正常に拡張されると、管理者はこの新しいスペースを特定の論理ボリュームに割り当てることができます。
の lvextend このコマンドは、論理ボリューム自体のサイズを増やす役割を果たします。この LVM プロセスの主な利点は、 -r または --resizefs 内で直接フラグを立てます lvextend 指示。この統合フラグは、基礎となるファイル システム (ext4 か XFS か) を自動的に検出し、ボリュームの拡張と並行して適切なファイル システムのサイズ変更ユーティリティをシームレスに実行します。これにより、次のような個別のコマンドを実行する必要がなくなります。 resize2fs または xfs_growfs 手動で。
コマンド ラインは、特にパーティショニングのような複雑なものを扱う場合には、恐ろしいものになることがあります。ただし、これで少しは楽になると思います。