レンタルVPSのパーティションスキームを変更する

「仮想サーバー上で任意のディスクパーティションスキームを作成することは可能ですか?」そんな疑問が頭の中に浮かびました。 すぐに言わなければならない-これは、ハイパーバイザーへのアクセスがない場合です(そうでなければ簡単すぎるでしょう)。 一見、問題は解決されていないように見えるかもしれません。 実際、パーティションのパーティションを再作成するには、マウントを解除する必要があります。 自宅のコンピューターの場合、Live {CD、USB}がこれに使用されます。 しかし、sshのみを自由に使用できる場合はどうでしょうか? 数秒で考え直しました-そして、私は解決策を見つけました。 これで落ち着くことができるように見えた:彼自身が問題を思いついた、彼自身が決めた。 しかし、私は同僚に同じ質問を冗談で尋ねました。同僚が問題を解決するのに何の困難もないことを確信しています。 結果は驚いた。 他の人にインタビューすると、すべての回答者がVPSでディスクを再パーティション化することは不可能であると確信していることがわかりました。 一番遠いのは、「可能ですが、ルートパーティションはできません」と言った男は1人だけでした。



また、この問題の解決策が分からない場合や、実装の例を見てみたいだけの場合は、この記事へようこそ!



なんでこんなに大騒ぎするの?



概して、一般的には必要ありません。 サーバーはまだ動作しています。 しかし、おそらく、誰もが「正しい」故障について独自のビジョンを持っているため、実際の故障とは一致しない場合があります。



CentOS 6.6 x86-64を搭載した私の仮想サーバーには、次のスキームがありました。



# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda3 24G 1,7G 21G 8% / tmpfs 371M 0 371M 0% /dev/shm /dev/xvda1 194M 29M 156M 16% /boot # free -m ... Swap: 511 0 511
      
      





私の哲学では、ブートパーティションあたり200メートルは無駄です。 私は通常、32 MBを使用します(ラウンド数が好きなため)。 これは4つのコアを収容するのに十分であり、まだ残っています。 当然、仮想サーバーのスペースをより効率的に使用したいと思います-/ bootから不要なものを削除して/に接続します。 また、同時にOSを変更します。 仮想サーバーを所有する会社は、可能なオペレーティングシステムの固定リストを提供します。 残念ながら、お気に入りのGentooは含まれていません。 しかし...それは本当に使えないということですか?



生命、宇宙、この記事の主な質問に対する答え



それでは、ルートパーティションをどのように再パーティションしますか? 特にすぐに推測しなかった人のために、私は上記のヒントを残しました。 はい、そうです-スワップは私たちを救います。



ここに、原則自体のみを必要とし、説明を必要としない人のための一般的な概要を示します。



これをすべて行う方法は?



まず、スワップパーティションをオフにして、ファイルシステムを作成します。 次に、/ etc / fstabからその行を削除します。 ここで興味深いステップは、OSを簡単にすることです。 サーバー上にすでにデータがある場合は、言うまでもありません。 ただし、これでは十分ではない可能性があります。 私の場合、xvda2パーティション(スワップがあった場所)は0.5 GBを少し上回り、サーバーの作成後に受け取ったOSは1.5 GBを少し上回りました。 少し欠けています。 サイズを小さくするために、私が知っていたすべてのアプリケーションを調べましたが、これらは機能に影響しませんでした。



サーバーにコントロールパネルが事前にインストールされている場合(「私の」会社でISPmanagerをすぐに入手できます)-現時点では、多くの余分なものが保証されます。 必要に応じて構成を保存してから、これらすべてのmail-web-ftp-dns-other-serversを破棄します。



しかし、システム内のすべての場面で事前にインストールされたボディキットがなくても、現時点では多くの追加があります。 Debianライクでインストールされているすべてのプログラムのリストを取得するには、次のようにします。



 # dpkg --list
      
      





そして、赤い帽子の家族では:



 # yum list installed
      
      





この方法は簡単です。最初にリスト全体を調べて、知っていることを削除してから、リスト内の各項目を個別に繰り返して、その依存関係を調べます。 選択したものと一緒に削除されるアプリケーションのリストを注意深く見て、それらの削除が上のリストの項目のいずれかに影響するかどうかを確認します。



無理しないでください!
私はシステムを掃除することに夢中になっていたので、テキストエディタなしで自分がどのように残されているかに気付かなかった。 それらを再度インストールするのは面倒だったので、すべての構成ファイルをsedで編集する必要がありました。 感覚は...面白かったです。



さて、仮想サーバーのイメージのバックアップコピーをいつでも作成して、そこから回復する機会があれば。 そうでなければ、二重に注意してください。



ところで、場所をわずかに修正するために、さらに2つの可能性があります。

-まず、/ bootでパーティションのサイズを変更して、空き領域をスワップパーティションに追加します。

-そして、より極端なクリーニング-/ usrの内容の削除(または別のマシンへのより良い転送)-これらのdoc /、man /、タイムゾーンファイル、フォントなど。 これらのアクションを実行するときは3回注意してください。絶対に必要でない限り、それらのアクションを続行しないでください。



しかし、あなたが管理したと仮定します。 現在のルートの内容全体を新しい場所にコピーします。 また、/ etc / fstabおよびブートローダー設定の値を修正することを忘れないでください。



ブートパーティションのサイズも変更することにした場合(もちろん、/ブートを別のパーティションで実行する場合)、/ブートディレクトリを新しいパーティションに転送することもできます。



Grub2に問題はありませんでした。 しかし、Grubのレガシー(別名Grub 0.97)は、パーティション名が/ dev / xvda2に似ているとは考えていません。 彼にこれを教えてください。 ファイル/ sbin / grub-installで次の行を見つける必要があります。



  tmp_disk=`echo "$1" | sed -e 's%\([shv]d[az]\)[0-9]*$%\1%' \
      
      





そして以下:



  tmp_part=`echo "$1" | sed -e 's%.*/[shv]d[az]\([0-9]*\)$%\1%' \
      
      





私の場合、これらは99行目と105行目ですが、ディストリビューションごとにわずかな違いがある可能性があることを排除しません。

この部品を交換してください:



 [shv]d
      
      





このように:



 x[shv]d
      
      





これで、grub 0.97をインストールしても問題はありません。



プログラムのアンインストール、ブートローダーのインストール、構成ファイルの編集、再起動時にエラーが発生しなかった場合、1つの小さなパーティションで動作するシステムが得られます。 これで、古いルートパーティション(私の場合はxvda3)を削除し、空き領域の最後に新しいルートパーティションを作成するだけで十分です。 もう一度、ルートをそこにドラッグします-ディスクの最初からパーティションを変更する機会を得ます。



ルートパーティションのファイルを前後にコピーする代わりに、同時にOSを変更することにしたので、新しい場所に将来のOSのファイルシステムをすぐに作成できます。 幸いなことに、Gentooはこれらすべての新しいグラフィカルなインストーラーを使用していません。 新しい場所に落ち着くには、スーツケースを開梱し(第3段階のアーカイブが最小のOS環境です)、いくつかの構成を修正し、いくつかのコマンドを実行するだけで十分です。 残念ながら、このアプローチが他のディストリビューションで機能するかどうかはわかりません。



パーティションの変更



パーティションを扱うときは注意してください。 カーネルは、リブートするか通知するまで、行った変更を認識しません。 これは、partedパッケージからpartprobeコマンドを使用して実行できます。 しかし興味深いのは、CentOS 6.6 x32でリブートせずにすべてを実行し、64ビットの同じバージョンのOSを使用すると、partprobeがパーティションテーブルの変更をカーネルに通知できず、リブートする必要があることが判明したことです。 現在のレイアウトスキームを考慮して、常にどこかにローダーがあり、その構成が正しいことを慎重に確認してください。



結果は何ですか?



VPSを注文する際にレイアウトに影響を与えられない場合、これはサーバー上の「正しい」レイアウトのビジョンを実装できないという意味ではありません。 ブートパーティションのサイズを変更し、必要な最小サイズのままにして、必要な目的のために追加のMBを割り当てました。 2つの追加セクションを作成しました。 そして彼はOSを私が必要とするものに変えてくれた。 ただし、それを繰り返す場合は、サーバーを提供している会社に最初に確認することを強くお勧めします。計画された変更がメンテナンスに影響するかどうかを確認します。 おそらく、VPSを提供する物理サーバー上のいくつかのプログラムまたはスクリプトは、非常に特定のパーティションテーブルに依存しています。



All Articles