我有一个自定义内核,需要安装在多个虚拟机上。
一种方法是将源代码传输到每个 VM,然后编译和安装。
我想知道是否有一种更快的方法可以在主机上进行编译并简单地传输一些文件或通过主机文件安装内核。
主机和客户操作系统都是 ubuntu 14.04,并且我使用 KVM 作为虚拟机管理程序。
我用过这个关联用于编译和安装内核。
答案1
我建议使用发行版的打包系统。创建自定义内核包,然后以最简单的方式将其分发到虚拟机。许多发行版都提供了如何使用其首选包管理器执行此操作的说明(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-tools 或 lowlatency 则更慢)
如果构建成功,您的自定义.deb
包将位于构建根目录上方的目录中。