安装新内核的核心步骤是:先执行sudo make modules_install将模块复制到匹配版本号的/lib/modules/子目录并运行sudo depmod -a更新依赖,再执行sudo make install将内核镜像、System.map及initramfs放入/boot,最后运行sudo update-grub或sudo grub2-mkconfig更新引导菜单,重启后用uname -r等命令验证。

安装编译好的新内核和对应模块,核心是两步:把模块复制到系统模块目录,再把内核镜像和配套文件放进 /boot,最后更新引导。整个过程不复杂,但顺序和路径容易出错。
先装模块:复制到 /lib/modules/ 目录
模块文件(.ko)必须放在与内核版本号严格匹配的子目录下,否则 modprobe 找不到它们。
- 进入你编译完成的内核源码根目录(比如
~/linux-6.6.30) - 运行命令:
sudo make modules_install - 它会自动把所有模块拷贝到
/lib/modules/$(make -s kernelrelease),也就是类似/lib/modules/6.6.30-custom的路径 - 执行后建议立刻运行
sudo depmod -a,重建模块依赖关系,避免加载时报“module not found”
再装内核镜像和 initramfs
这一步把启动所需的二进制文件放进 /boot,并生成初始化内存盘。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 仍在内核源码根目录下,运行:
sudo make install - 该命令默认完成三件事:
– 把压缩内核镜像(arch/x86/boot/bzImage)复制为/boot/vmlinuz-6.6.30-custom
– 把 System.map 复制为/boot/System.map-6.6.30-custom
– 调用mkinitcpio(Arch)或dracut(RHEL/Fedora)或update-initramfs(Debian/Ubuntu)生成initrd.img或initramfs文件 - 如果你用的是 Ubuntu/Debian,
make install可能不会自动生成 initramfs,此时需手动执行:sudo update-initramfs -c -k 6.6.30-custom
更新引导菜单(GRUB)
不更新 GRUB,新内核根本不会出现在开机选项里。
- 大多数发行版只需运行:
sudo update-grub(Debian/Ubuntu)或sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS/Fedora) - 命令会扫描
/boot下所有vmlinuz-开头的文件,自动添加对应启动项 - 可检查是否生效:
grep menuentry /boot/grub/grub.cfg | grep 6.6.30 - 重启后在 GRUB 菜单中选择新内核条目即可启动
验证安装是否成功
启动进新内核后,快速确认关键组件已就位:
- 运行
uname -r,输出应为你的新版本号(如6.6.30-custom) - 运行
ls /lib/modules/,确认存在对应版本目录 - 运行
ls /boot/vmlinuz*和ls /boot/initrd.img*,查看新文件是否生成 - 尝试加载一个刚编译进模块的驱动,比如
sudo modprobe xxx(xxx 是你启用的模块名),无报错即说明模块路径和依赖正常

















