![使用自定义版本号修补内核并将其列在 grub 中](https://linux22.com/image/106228/%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%89%88%E6%9C%AC%E5%8F%B7%E4%BF%AE%E8%A1%A5%E5%86%85%E6%A0%B8%E5%B9%B6%E5%B0%86%E5%85%B6%E5%88%97%E5%9C%A8%20grub%20%E4%B8%AD%20.png)
将问题更改得更具体,希望能重新开放。
在 Ubuntu 上,如何应用补丁(使用修补命令)将补丁应用到内核(这修补,让 btrfs 接受我的替换磁盘,所有事情)。我在网上找到了一些说明(Ubuntu 的 BuildYourOwnKernel),但不是我正在寻找的完整食谱。带着这个问题,我希望有人能提供一个简单的方法供所有人遵循。以下是所需要的:
如何获取当前正在运行的内核的源代码。
如何在其上应用补丁。
如何使用我的发行版通常使用的配置来编译它。
如何更改内核的版本,以便我可以安装它而无需更换当前的官方内核。如果可能的话,添加“-tmp”或一些缩写以将其与官方的区别开来。
如何让 grub 识别新构建的内核并将其显示在菜单中,但默认情况下不加载它;默认情况下应该加载以前的官方内核。我想明确选择我的自定义内核。
如何重新启动系统,例如重新启动时,grub 允许选择要从中启动的内核。
一旦我对内核的使用完成,如何从文件系统和 grub 中删除它的所有痕迹。
答案1
您需要成为大多数/所有这些的 root 用户,所以只需使用
sudo -i
安装一些实用程序和库 -
apt-get install build-essential fakeroot kernel-package libncurses5-dev zlib1g-dev libssl-dev xz-utils
然后提取内核源代码树,对其进行修补,然后(也许)将工作配置从 /boot 复制到 /path/to/source/.config
然后配置内核
make oldconfig
或者
make menuconfig
配置完成后,然后构建它。构建命令是您附加到版本的位置 -
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-MyPatchedKernel kernel_image kernel_headers
这将为您生成 2 个 deb 文件 - 一个用于内核,一个用于标头。如果您在 /usr/src/linux 中工作,那么 deb 文件将位于 /usr/src 中。使用 dpkg 安装它们,然后就可以开始了。