GNU/Linux >> Linux の 問題 >  >> Linux

Linuxサーバーでパーティションスキームを変更するにはどうすればよいですか?

DigitalOceanやOVHなどのホスティングプロバイダーでVPSを入手したら、パーティションのレイアウトをカスタマイズすることをお勧めします。ただし、多くの場合、選択の余地はありません。目的のOSを選択すると、使用可能なすべてのディスク領域を使用して、単一のパーティションにインストールされます。

それでも、VPSは単一パーティションのWebサーバーだけのものではありません!必要に応じて、データ用に別のスワップパーティションを追加することをお勧めします…

幸い、ほとんどのホスティングプロバイダーはレスキューモードを提供しています 、別のハードドライブ上の代替オペレーティングシステム。そこから通常のOSと「通常の」ハードドライブを微調整できます。

このガイドの残りの部分では、既存のパーティションのタイプがExt4(またはExt2 / 3)のみであることを前提としています。 DebianまたはUbuntuをインストールした場合です。

システム内からこの方法を試さないでください。レスキューモードを使用してください。不明な場合は、VPSプロバイダーがレスキューコンソールへのアクセスを許可しているかどうかを確認してください。ファイルシステムとパーティションのサイズを変更しても、新しい目的のサイズが現在のデータ量よりも大きいため、データは消去されません。それでも、外部ディスク/デバイス/サーバーにバックアップを作成します。

その後に他のパーティションを作成するために、パーティションを40GiBから2GiB(ディスクの先頭から開始)に減らす必要があるとします。

ステップ1:レスキューモードに切り替えてディスクを識別します

最初に行うことは、通常はDebian GNU/Linuxシステムであるレスキューモードで再起動することです。一時的なルートが与えられます この一時システムのパスワードは、SSHで接続するだけです。

次に、通常のシステムで使用されているディスクを特定します。 fdisk -lを使用できます 。

ここで/dev/sdb はパーティションスキームを変更するディスクであり、/dev/sdb1 今のところ唯一のパーティション。 /dev/sda 一時的な救助システムが存在するディスクです。もちろん、このチュートリアルの残りの部分では、sdb1を置き換えます 正しいデバイス名でない場合。

ステップ2:ファイルシステムを縮小する

e2fsck -f /dev/sdb1を使用してファイルシステムを確認します (それ以外の場合、次のコマンド、resize2fs 、動作しない可能性があります):

e2fsckとresize2fsはすでにレスキューシステムにインストールされている可能性がありますが、存在しない場合はインストールしてくださいe2fsprogsパッケージ。 Debianで、aptinstalle2fsprogsを実行します。

また、ファイルシステムのサイズが2GiBを超えないようにしてください。 /mntを提供する 空の場合は、mount /dev/sdb1 /mntを使用してファイルシステムをマウントします dfでサイズを確認します :

ファイルシステムをアンマウントします:umount /dev/sdb1

次のコマンドを実行する前に、システムをカスタマイズしたり、重要なデータを追加したりした場合は、ファイルをバックアップすることをお勧めします。

行きましょう:resize2fs /dev/sdb1 2Gを実行します 。

「2G」は2GiBを意味し、「2048M」と書くこともできます。下のスクリーンショットを撮ったとき、私はresize2fsを間違って考えました それを2000Mとして理解したので、代わりにいくつかのセクターを提供しました(4194304*セクターあたり512バイト=2GiB)。結果はまったく同じです。

ここで、プログラムは「524288(4k)ブロック」を報告します。 524288 * 4096 B =2 GiBなので、問題ありません。

4kはファイルシステムレベルでのユニット(ブロック)サイズですが、512はディスクレベルでのユニット(セクター)サイズです。 512であることをどうやって知ることができますか?上の「fdisk」のスクリーンショットを見てください!

ステップ3:パーティションを減らす

これまでのところ、ファイルシステムを縮小しました。つまり、2GiBの論理サイズに収まらないデータをファイルシステムに追加することはできません。ただし、ファイルシステムが存在するパーティションは、依然としてすべてのディスク領域を占有します。

partedをお勧めします Linuxでのパーティション管理用。 Debianでは、apt install partedで入手してください 。このツールはインタラクティブに使用できます。 /dev/sdbで起動します 引数として:

unit sを使用する 、したがって、すべてのサイズはセクター数として表示されます (MiB、GiBなどの代わりに)これは物事を正確に制御するのに役立ちます。そうしないと、「結果のパーティションが最適なパフォーマンスを得るために適切に配置されていない」などの問題が発生する可能性があります。print free コマンドを使用すると、ディスクの状態を確認できます:

パーティション1の長さを2GiBにする必要があります。これは、2 * 1024 * 1024 * 1024/512=4194304セクターに相当します。

resizepart 1を実行します 。次に、ディスク上の場所の入力を求められます。これは、ディスクの先頭からセクターで表され、パーティションが終了する必要があります。 予約エリアがあるので 、セクター2047で終了するパーティションの前に、4194304 + 2047 =4196351sと入力する必要があります。 。

末尾の「s」を忘れないでください。

警告メッセージの後に「はい」と答えてから、print free もう一度、パーティションのサイズが変更されていることを確認します。

私の経験から、ここで停止して再起動すると、以前の状態でパーティションレイアウトが「復元」される可能性があります。つまり、パーティションを縮小したことがないようです。

変更を「検証」するには、空き領域に少なくとも1つのパーティションを追加することをお勧めします。

ステップ4:他のパーティションを追加する

OSが取得したパーティションの後に12GiB、Ext4パーティションを追加するとします。

まず、パーティションを「宣言」する必要があるため、エントリがパーティションテーブル(予約済みゾーンのどこかに)に追加されます。 mkpart primary ext4を使用します :

この例のように、パーティションを前のセクターの終了の1セクター後に開始して、無駄なスペースがないようにします。ここでは4196351+1 =4196352s

最後は12*1024 * 1024 * 1024/512セクター(このパーティションに必要なサイズ)+ 4196351セクター(オフセット)です。 2番目のパーティションであるため)=29362175s

次に、parted(C ^ d)を終了し、sdb2上にExt4ファイルシステムを効果的に作成します。デフォルトのExt4設定を適用するには、コマンドは次のとおりです。
mkfs.ext4 /dev/sdb2

終わり

この記事は、コマンドラインでパーティションとファイルシステムを操作する方法の紹介にすぎず、デフォルトで1つの大きなパーティションを持つサーバーの実際のケース(およびそれを分割したい場所)に焦点を当てています。お役に立てば幸いです。

作成者情報:Paul Desplanqueは、コンピューター関連のことを100%独学で学んでいます。彼の背後には8年間のPHP開発の経験があり、Paulはセルフホスティングに非常に精通しています。


Linux
  1. Linux端末の色を変更する方法

  2. Linuxパーティションまたは論理ボリュームにファイルシステムを作成する方法

  3. RHEL7Linuxサーバーでタイムゾーンを変更する方法

  1. LinuxサーバーをNTPプールプロジェクトに参加させる方法

  2. LinuxでTomcatサーバーを起動するには?

  3. ファイルシステムの UUID を見つける方法

  1. LinuxシステムのIDを変更する方法

  2. LinuxでDNSサーバーの速度をベンチマークまたは確認するにはどうすればよいですか?

  3. Linux で VNC サーバーの解像度を変更する方法