升级gentoo内核
2016年05月11日

操作流程

显示当前系统安装的内核列表

eselect kernel list
Available kernel symlink targets:
  [1]   linux-3.10.17-gentoo *
  [2]   linux-3.10.25-gentoo 

选择新内核

eselect kernel set 2

确认链接是否已经变更

ls -l /usr/src 
lrwxrwxrwx  1 root root   20 Jan  6 14:37 linux -> linux-3.10.25-gentoo
drwxr-xr-x 25 root root 4096 Dec 20 22:45 linux-3.10.17-gentoo
drwxr-xr-x 25 root root 4096 Jan  6 14:56 linux-3.10.25-gentoo

把之前的config文件复制到新内核目录

cp /path/of/.config/file /usr/src/linux/

更新配置文件,查看配置并保存 F9

cd /usr/src/linux
make nconfig

编译内核和模块

make && make modules_install

挂载/boot分区

mount -a 

复制新内核到启动目录

make install

更新initrd文件 可选

genkernel-next --lvm initramfs

如果存在类似lvm,或者其他内核外模块,需要使用genkernel编译预加载文件

更新grub.cfg文件

grub-mkconfig -o /boot/grub/grub.cfg

如果硬盘中,还包含其他多个系统,可以安装os-probe,然后再运行grub-mkconfig命令,会自动检测其他系统,写入到引导菜单中

更新内核模块

emerge -av @module-rebuild

重启看看启动日志有没有问题

reboot

安装后清理旧内核

在确定新内核可以正常使用后,可以开始清理旧内核文件了

删除旧版本

emerge -a --depclean gentoo-sources

删除旧内核源码的残留文件

rm -r /usr/src/linux-3.X.Y

删除旧内核的模块文件

rm -r /lib/modules/3.X.Y

删除旧内核和相关文件

rm /boot/*.3.X.Y-gentoo

相关文档

官方手册

删除内核wiki
https://wiki.gentoo.org/wiki/Kernel/Removal