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
、動作しない可能性があります):
また、ファイルシステムのサイズが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
と入力する必要があります。 。
警告メッセージの後に「はい」と答えてから、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はセルフホスティングに非常に精通しています。