
複数の仮想マシンにインストールする必要があるカスタム カーネルがあります。
1 つの方法は、ソースを各 VM に転送し、コンパイルしてインストールすることです。
ホスト上でコンパイルし、ファイルを転送したり、ホスト ファイルを通じてカーネルをインストールしたりする、より高速な方法があるかどうかを知りたいです。
ホスト OS とゲスト OS は両方とも Ubuntu 14.04 であり、ハイパーバイザーとして KVM を使用しています。
私はこれを使いましたリンクカーネルをコンパイルしてインストールします。
答え1
ディストリビューションのパッケージング システムを使用することをお勧めします。カスタム カーネル パッケージを作成したら、最も簡単な方法で VM に配布できます。多くのディストリビューションでは、推奨パッケージ マネージャーを使用してこれを行う方法についての説明が提供されています (Ubuntu については以下を参照)。
カーネル(および/または他のソフトウェア)を頻繁に再構築する必要がある場合は、ローカルパッケージリポジトリを作成する(たとえば、ホスト上で) ゲストのリポジトリ リストに追加します。その後、ゲストは新しいパッケージが利用可能になるとすぐにそれをプルできるようになります。
配布するパッケージが少数の場合は、ホスト上のアドホック ローカル パッケージ キャッシュに配置するのも効果的です。この場所を Samba を使用してゲストと共有するか、rsync
必要に応じてパッケージを手動で共有します。
Ubuntuでは、カスタムカーネルパッケージの構築要約すると次のようになります:
ソースを取得する
apt-get source linux-image-$(uname -r)
またはgit clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
ビルド環境を準備する
sudo apt-get build-dep linux-image-$(uname -r)
カーネル設定を変更する
chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
(それぞれ確認します)+myVer1
の最初のバージョン番号の末尾にローカル バージョン識別子 (例 ) を追加して、公式リポジトリのバージョンよりも新しいカーネルとして認識されるdebian.master/changelog
ようにします。apt
カーネルを構築する
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic binary-perarch
(クイックビルド)またはfakeroot debian/rules binary
(Linux ツールまたは低レイテンシが必要な場合は遅くなります)
ビルドが成功すると、カスタム.deb
パッケージはビルド ルートの上のディレクトリに保存されます。