ターミナル経由でのみサーバーにアクセスでき、GPartedなどのグラフィカルツールを使用できません。
ルートの一部(約768mb)からスワップ用の新しいパーティションを作成したい。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 20G 1.3G 18G 7% /
udev 10M 0 10M 0% /dev
tmpfs 199M 4.9M 194M 3% /run
tmpfs 100M 12K 100M 1% /run/user
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
ストレージデバイス上のパーティションのいずれかがマウントされている場合、パーティションを縮小/編集することはできません。そのため、ルートファイルシステムをアンマウントして編集するには、OSをシャットダウンする必要があります。次に、稼働中のシステムを起動し、他の回答の説明に従ってパーティションを編集します。
パーティション全体を作成する代わりに、スワップファイルはサイズをオンザフライで変更する機能を提供し、より簡単に完全に削除できます。 スワップファイルはホットプラグ可能です。つまり、OSをアンマウント/オフにすることなく追加および削除できます。
/swapfile
という512 MBのファイルを作成します。これがスワップファイルになります。
fallocate -l 512M /swapfile
OR
dd if=/dev/zero of=/swapfile bs=1M count=512
適切なアクセス許可を設定します(世界で読み取り可能なスワップファイルはローカルの大きな脆弱性であるため)。
chmod 600 /swapfile
適切なサイズのファイルを作成した後、それをフォーマットしてスワップします:
mkswap /swapfile
スワップファイルをアクティブにします。
swapon /swapfile
/etc/fstab
を編集して、スワップファイルのエントリを追加します。
/swapfile none swap defaults 0 0
詳細は Arch Linux wiki をご覧ください。
まず、使用している場合、ルートパーティションを縮小するためにサイズを変更できないことを知っておくことが重要です(これはオンライン縮小と呼ばれます)。オンラインでのみ成長できます。これはresize2fs
コマンドでサポートされています。私は以下を想定します:
サイズを変更できるパーティションには、LVMパーティションと、ほとんどの人が使用しているギャラクシーと標準パーティションの作成以来、オンラインサイズ変更(縮小/拡大)をサポートする論理ボリュームマネージャーパーティションの2種類があります。現在、完全なオンラインリサイズ(Shrink/Grow)をほぼ100%サポートしているのは、btrfsファイルシステムのみです(まだ開発中です)。私たちのほとんどがext4ファイルシステムで使用している通常のパーティションの作り方を説明します。
パーティションを拡張するには、ルートをマウントして実行できます。これを行うには、次のようにします。
Sudo resize2fs /dev/sda1
マージする準備ができた空のスペースが既にある場合。その後、変更を正しく有効にするために再起動することをお勧めします。上記のコマンドは、許可されている最大サイズに変更されます。特定のサイズにサイズ変更する場合は、最後にサイズを追加するだけです。
Sudo resize2fs /dev/sda1 25G
25.4 GBを指定する場合は、「。」を使用できないことに注意してください。 1つの測定単位を下げる必要があります。この場合、GBからMBまでなので、次のようになります。
Sudo resize2fs /dev/sda1 25400M
これにより、25.4Gのパーティションができます。
パーティションの縮小は、次の2段階のプロセスです。
ファイルシステムの容量を削減する前に、ブロックデバイスのサイズを削減する必要があります(パーティションまたは論理ボリュームになります)。これはどのext *ファイルシステムでも利用できないため、20 GBから19.5 GBに縮小して500 MBのスワップシステムを作成することはできません。
Ext4でさえオンライン縮小をサポートしていません。実行しようとすると、次のものが得られます。
私の知る限り、あなたの唯一の賭けは次のいずれかです。
元のUbuntuサーバーのルートパーティションを縮小するために使用できる別のUbuntuバージョンを同じサーバー(別のパーティション)にインストールします。
実際に必要なサイズでUbuntuサーバーを最初からインストールする
Ubuntu Server Live Imageを使用して、パーティションのサイズを変更します。この場合、次の画面に到達する必要があります。
上の画像に示すように、[サイズ変更]オプションを選択します。そこからユニットをアンマウントし、必要に応じて縮小できるため、そこから新しいサイズを選択します。
追加のヘルプとして、gpartedファイルシステムのサポートがあります http://gparted.org/features.php これは、サポートされているものの非常に詳細なリストを提供し、完全なオンラインサイズ変更があるかどうかを含めます。 Btrfsはその中にあります。
答えは、パーティションをアンマウントして縮小できるかどうかによって異なります。あなたの場合、おそらくパーティションをアンマウントすることはできません。 Linux(UNIX/MAC OS)では、mountingパーティションは、ファイルシステムを使用してマウントポイントにマッピングすることを意味します(場合によっては/
)。 Unmountingは、ファイルシステムの使用を停止し、マウントポイントへのマッピングを削除することを意味します。実行中のOSを含むファイルシステムをアンマウントすることはできません。
パーティションをマウント解除できる場合
/dev/sda4
にマウントされた/data
の200GB ext4パーティションを縮小したいとします。現在、音楽や映画などが含まれているため、一時的にアンマウントできます。 4GBのスワップを作成します。
Sudo umount /dev/sda4
パーティションをアンマウントします。
Sudo resize2fs /dev/sda4 196G
十分なスペースがあると仮定して、ext4ファイルシステムのサイズを196 GBに変更します。次に、パーティションを縮小する必要があります。現在、cfdisk
を使用して既存のパーティションを削除し、その場所に小さなパーティションを再作成する必要があると信じています。その後、スワップ用の新しいパーティションを作成することもできます。
Sudo cfdisk /dev/sda
パーティションテーブルを検査するためのテキストベースのGUIが表示されます。その時点でファイルまたは画面にパーティションテーブルをprint
し、現在の構成をバックアップとして記録することをお勧めします。その後、/dev/sda4
およびdelete
パーティションを選択できます。その場所に、free space
が表示されます。 new
を使用して、196 GBの場所に新しいパーティションを作成し、タイプをext4に設定します。次に、末尾の空き領域に移動し、swap
タイプの4GBスワップパーティションを作成します。 注:現時点では/
をいじることができないため、これらのコマンドはテストしませんでした。
パーティションをマウント解除できない場合
マウントされたext3/4パーティションを縮小することはできません(resize2fs
のマンページを参照)。 OSを/
から実行しているため、/
をアンマウントできません。つまり、変更を行うには別のOSを起動する必要があります(USBキーなどから)。
あなたの場合、それはリモートサーバー(KVM上にある可能性が高い)であるため、USB /ライブOSイメージから起動できない可能性があります。管理GUIを介してvServerプロバイダーからパーティションを変更する他の方法があります。私はそれが現在あなたの最善策であると信じています。