仮想マシンにカスタムカーネルをインストールする最速の方法

仮想マシンにカスタムカーネルをインストールする最速の方法

複数の仮想マシンにインストールする必要があるカスタム カーネルがあります。

1 つの方法は、ソースを各 VM に転送し、コンパイルしてインストールすることです。

ホスト上でコンパイルし、ファイルを転送したり、ホスト ファイルを通じてカーネルをインストールしたりする、より高速な方法があるかどうかを知りたいです。

ホスト OS とゲスト OS は両方とも Ubuntu 14.04 であり、ハイパーバイザーとして KVM を使用しています。

私はこれを使いましたリンクカーネルをコンパイルしてインストールします。

答え1

ディストリビューションのパッケージング システムを使用することをお勧めします。カスタム カーネル パッケージを作成したら、最も簡単な方法で VM に配布できます。多くのディストリビューションでは、推奨パッケージ マネージャーを使用してこれを行う方法についての説明が提供されています (Ubuntu については以下を参照)。

カーネル(および/または他のソフトウェア)を頻繁に再構築する必要がある場合は、ローカルパッケージリポジトリを作成する(たとえば、ホスト上で) ゲストのリポジトリ リストに追加します。その後、ゲストは新しいパッケージが利用可能になるとすぐにそれをプルできるようになります。

配布するパッケージが少数の場合は、ホスト上のアドホック ローカル パッケージ キャッシュに配置するのも効果的です。この場所を Samba を使用してゲストと共有するか、rsync必要に応じてパッケージを手動で共有します。


Ubuntuでは、カスタムカーネルパッケージの構築要約すると次のようになります:

  1. ソースを取得する

    • apt-get source linux-image-$(uname -r)または
    • git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
  2. ビルド環境を準備する

    • sudo apt-get build-dep linux-image-$(uname -r)
  3. カーネル設定を変更する

    • chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
    • fakeroot debian/rules clean
    • fakeroot debian/rules editconfigs(それぞれ確認します)
    • +myVer1の最初のバージョン番号の末尾にローカル バージョン識別子 (例 ) を追加して、公式リポジトリのバージョンよりも新しいカーネルとして認識されるdebian.master/changelogようにします。apt
  4. カーネルを構築する

    • fakeroot debian/rules clean
    • fakeroot debian/rules binary-headers binary-generic binary-perarch(クイックビルド)または
    • fakeroot debian/rules binary(Linux ツールまたは低レイテンシが必要な場合は遅くなります)

ビルドが成功すると、カスタム.debパッケージはビルド ルートの上のディレクトリに保存されます。

関連情報