Ubuntu内核管理
Linux
Ubuntu 内核管理
1. 下载
1.1 deb文件
下载路径:http://kernel.ubuntu.com/~kernel-ppa/mainline/
找到需要版本目录,下载三个文件:
1.2 apt-get下载源码
依赖包
$ apt-get install dpkg-dev
有了这个包,下载的源码才能被解压
$ apt-get install linux-source #下载当前版本的kernel源码
$ apt-get source linux-image-3.13.0-29-generic # 下载对应内核版本源码
2. 安装
2.1 deb安装
执行命令
$ sudo dpkg -i linux-headers-4.2.0-040200_4.2.0-040200.201510260713_all.deb linux-headers-4.2.0-040200-generic_4.2.0-040200.201510260713_amd64.deb linux-image-4.2.0-040200-generic_4.2.0-040200.201510260713_amd64.deb
$ sudo update-grub
更新grub引导装入程序。
2.2 源码安装
依赖安装
$ apt install libncurses5-dev
源码编译
$ cd linux-4.4.2
$ make menuconfig
直接Select -> Save,之后编译
$ make -j64
$ make modules_install install
3. 修改内核启动顺序
$ grep menuentry /boot/grub/grub.cfg
假设你要以4.4.0-21内核版本启动,则修改文件/etc/default/grub
$ vi /etc/default/grub
GRUB_DEFAULT=0
改为
GRUB_DEFAULT=6
或者改为
GRUB_DEFAULT="Ubuntu,Linux 4.4.0-21-generic"
使生效
$ sudo update-grub
4. 重启系统
重启后验证
$ uname -r
5. apt-get 安装
搜索可用的内核升级:
$ apt-cache showpkg linux-headers
$ apt-cache showpkg linux-image
显示很多的内核 比如你选择内核是2.6.39.0,运行命令 安装内核2.6.39.0
$ sudo apt-get install linux-headers-2.6.39-0-generic linux-image-3.13.0-24-generic linux-image-extra-3.13.0-24-generic --fix-missing
最后,重新启动系统并查看系统内核版本
6. 删除旧内核
1.找出系统已经安装的内核版本,在终端里输入命令:
$ dpkg --get-selections | grep linux-image
然后会显示系统中已安装的内核,例如:
linux-image-2.6.38-10-generic instal
linux-image-2.6.38-8-generic install
linux-image-2.6.35-22-generic install
linux-image-generic install
2.卸载旧的内核版本,在终端里输入命令:
$ sudo apt-get remove linux-image-2.6.35-22-generic linux-image-2.6.38-8-generic
此时:
$ dpkg --get-selections | grep linux-image
的结果为deinstall,执行下面语句删除:
$ sudo aptitude purge linux-image-2.6.35-22-generic
Grub手动引导
如果每次开机都进入grub命令行,安装grub2进行重新引导:
$ apt install grub2
常见问题
1. 重启后没有选择内核界面
$ vi /etc/default/grub
修改
GRUB_TIMOUT=10
$ sudo update-grub
或开机一直按shift
2. 内核无法启动
$ grep menuentry /boot/grub/grub.cfg
如果没有新安装的内核,执行:
$ sudo vi /etc/default/grub
前两行修改如下:
GRUB_DEFAULT=1>2
#GRUB_HIDDEN_TIMEOUT=0
最后执行:
$ sudo update-grub2