![将模块复制到另一个系统](https://linux22.com/image/854937/%E5%B0%86%E6%A8%A1%E5%9D%97%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F.png)
我配置并制作了一个自定义内核,该内核来自从 kernel.org 下载的 vanilla 内核。现在我通过简单的“vmlinuz”和“initrd.img”复制以及一些 grub 配置将其移植到另一台机器。(实际上我使用的是 Xen,因此 grub 配置对我来说也不需要)
现在对于模块,我该如何复制?我可以直接将 /lib/modules/(myCustomeKernelVersion) 复制到其他系统吗?
关于 Xen,Ubuntu 官方文档对于 xen-create-image,显示 --modules 选项指向模块目录。它与上面提到的目录相同吗?
请注意,我使用的是 vanilla 内核,而不是分发内核。这是必需的,请不要对此提出疑问。
答案1
如果您使用的是 vanilla 内核,我建议您从 VM 本身的内核源构建相同的 vanilla 内核和模块。使用 Ubuntu 编译/提供的模块可能不是一个好主意,因为这可能会导致 arch/兼容性问题、恐慌等。uname -r
如果构建过程顺利,自定义内核模块可在 /lib/modules/ 中找到。
注意:--modules=/path/to/modules,此选项用于指向 domU 内模块的位置,类似于“--initrd”
答案2
我在尝试在 Android 设备上本地启动 Ubuntu 时一直这样做,我需要完整的模块文件夹、system.map
vmlinuz
和config
。您可以获取完整的版本、源代码和模块,您所要做的就是打开命令提示符,然后/lib/modules
使用
sudo zip -r your-custom-kernel-string.zip your-custom-kernel-string
然后将 zip 复制到您想要保存它们的位置,例如您的桌面或主文件夹,然后chown
将其保存。这将压缩自定义内核模块文件夹中的所有相关文件。