Schnellster Weg, einen benutzerdefinierten Kernel in einer virtuellen Maschine zu installieren

Schnellster Weg, einen benutzerdefinierten Kernel in einer virtuellen Maschine zu installieren

Ich habe einen benutzerdefinierten Kernel, der auf mehreren virtuellen Maschinen installiert werden muss.

Eine Möglichkeit besteht darin, den Quellcode auf jede VM zu übertragen und ihn dann zu kompilieren und zu installieren.

Ich würde gerne wissen, ob es einen schnelleren Weg gibt, auf dem Host zu kompilieren und einfach einige Dateien zu übertragen oder den Kernel über Hostdateien zu installieren.

Sowohl das Host- als auch das Gastbetriebssystem sind Ubuntu 14.04 und ich verwende KVM als Hypervisor.

Ich habe dies verwendetVerknüpfungzum Kompilieren und Installieren des Kernels.

Antwort1

Ich empfehle, das Paketsystem Ihrer Distribution zu verwenden. Erstellen Sie Ihr eigenes Kernelpaket und verteilen Sie es dann auf die einfachste Art und Weise an Ihre VMs. Viele Distributionen bieten Anleitungen, wie Sie dies mit ihrem bevorzugten Paketmanager tun können (siehe unten für Ubuntu).

Wenn Sie den Kernel (und/oder andere Software) häufig neu erstellen müssen, können SieErstellen Sie ein lokales Paket-Repository(z. B. auf dem Host), um sie zur Repository-Liste der Gäste hinzuzufügen. Dann können die Gäste alle neuen Pakete abrufen, sobald sie verfügbar sind.

Wenn Sie nur wenige Pakete zu verteilen haben, können Sie diese auch in einem lokalen Ad-hoc-Paketcache auf dem Host ablegen. Geben Sie diesen Speicherort mit Samba an die Gäste weiter oder laden Sie rsyncdie Pakete bei Bedarf einfach manuell hoch.


Unter Ubuntu,Erstellen eines benutzerdefinierten Kernelpaketsläuft darauf hinaus:

  1. Holen Sie sich die Quelle

    • apt-get source linux-image-$(uname -r)ODER
    • git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
  2. Vorbereiten Ihrer Build-Umgebung

    • sudo apt-get build-dep linux-image-$(uname -r)
  3. Ändern Sie Ihre Kernelkonfiguration

    • chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
    • fakeroot debian/rules clean
    • fakeroot debian/rules editconfigs(alles durchgehen)
    • +myVer1Fügen Sie am Ende der ersten Versionsnummer eine lokale Versionskennung (z. B. ) hinzu, debian.master/changelogdamit aptdieser als neuerer Kernel als die Version des offiziellen Repositorys erkannt wird.
  4. Erstellen des Kernels

    • fakeroot debian/rules clean
    • fakeroot debian/rules binary-headers binary-generic binary-perarch(Schnellaufbau) ODER
    • fakeroot debian/rules binary(langsamer, wenn Linux-Tools oder geringe Latenz benötigt werden)

Wenn der Build erfolgreich ist, .debbefinden sich Ihre benutzerdefinierten Pakete im Verzeichnis über dem Build-Stammverzeichnis.

verwandte Informationen