1、一开始不知道能不能升级内核,然后就升级了,有从
http://kernel.ubuntu.com/~kernel-ppa/mainline/ 直接下载的版本,编译,安装,也有使用apt-get install 安装的版本,最后有一个版本是3.14.67,把系统给升级挂了~,可以启动到锁定的桌面,但是键盘和鼠标都失灵了。所以只能想办法修复原有系统启动了,恢复以前的启动内核,应该就可以,于是:
2、制作了一个版本的ubuntu的启动U盘,这里我使用的是lili工具,很多童鞋制作启动U盘的时候发现启动不了,这里面关乎几个知识点:
主板BIOS是否支持UEFI,还是仅仅支持LEAGA方式,我的服务器主板比较老,所以只支持legacy bios方式,其实说白了,就是使用的是syslinux方式,使用lili制作完以后,默认的是支持efi的方式,我用qemu的x64方式测试,引导成功,但是并引导我的服务器,于是使用bootic工具,更改分区引导模式,这里要选择一个版本,4.07和5.10,我用的是4.07,然后要在分区管理里面进行激活,也就是说标记可引导,然后经过测试,legacy可以引导了。
3、引导成功后,使用不安装直接在U盘上运行的方式进入系统,去修改grub引导所默认的内核,服务器磁盘自动为media下面挂载的磁盘,找到相应的磁盘路径,我的方法其实还是比较安全的,我并没有去直接修改文件本身的默认内核顺序,要使用系统终端的gedit 编辑,terminal里面,必须用命令才可以修改,有两个路径是需要我们知道的:
sudo vi /boot/grub/grub.cfg
这个文件可以直接修改default值,意思就是从第几个内核开始启动,我的系统里面内核装了一大堆,内核从0开始排序,然后是1、2、3........我没有改这个值
还有一个路径:
vi /etc/default/grub
这个路径,我修改了timeout的值,默认是0,意思是开机的启动菜单没有等待时间,我修改成了10,
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true (不显示,如果要显示的话,要改成false,其实不用显示,启动的时候按方向键,菜单就出来了)
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomdmonddf nomdmonisw"
GRUB_CMDLINE_LINUX=""
其它的选项不用管
这样的话,如果再从服务器自己启动的话,就可以找到启动菜单了,不要选择默认的第一个选项,第二个是高级选项,可以自己选择已安装的内核版本,还可以选择安全模式,不过没有必要用安全模式。
为了保证没有问题,我删除了在路径:/boot下面无用的内核版本。
重启,等彻底到开机的那一步,拔掉U盘,让硬盘启动!
uname -a
Linux cccsq-server 3.13.0-80-generic #124-Ubuntu SMP Tue Feb 23 02:22:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/issue
Ubuntu 14.04.4 LTS \n \l
当顺利发现进入到3.13.0的内核后,开始进行内核卸载工作,将多余的内核卸载掉,当然是有不能用的内核和没有安装的内核,卸载的方法有很多,推荐使用:
命令:
可以使用sudo apt-get remove linux-版本号的方式卸载(不推荐)
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
匹配未在使用的内核,然后自动删除,切记要保留两个可以正常使用的内核版本,以防止发生问题。能进系统一切都好说,不能进系统就麻烦一些了。
删除后, 更新一下grub
sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-80-generic (这个版本是我后来又安装了一个版本,用sudo apt-get install linux-image-3.13.0.80-generic,因为就剩一个3.13.0-79-lowlatency,觉得不安全了)
Found initrd image: /boot/initrd.img-3.13.0-80-generic(这个版本是我后来又安装了一个版本,sudo apt-get install linux-image-3.13.0.80-generic,因为就剩一个3.13.0-79-lowlatency,觉得不安全了)
Found linux image: /boot/vmlinuz-3.13.0-79-lowlatency
Found initrd image: /boot/initrd.img-3.13.0-79-lowlatency
Found linux image: /boot/vmlinuz-3.13.0-79-generic(这个版本是我后来又安装了一个版本,sudo apt-get install linux-image-3.13.0.79-generic,因为就剩一个3.13.0-79-lowlatency,觉得不安全了)
Found initrd image: /boot/initrd.img-3.13.0-79-generic(这个版本是我后来又安装了一个版本,sudo apt-get install linux-image-3.13.0.79-generic,因为就剩一个3.13.0-79-lowlatency,觉得不安全了)
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
sudo update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-3.14.62(就是这个版本的内核导致系统启动后键盘鼠标都失灵了)
grep: /boot/config-3.14.62: 没有那个文件或目录
WARNING: missing /lib/modules/3.14.62
Device driver support needs thus be built-in linux image!
depmod: ERROR: could not open directory /lib/modules/3.14.62: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
depmod: WARNING: could not open /tmp/mkinitramfs_57SD9R/lib/modules/3.14.62/modules.order: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_57SD9R/lib/modules/3.14.62/modules.builtin: No such file or directory
update-initramfs: Generating /boot/initrd.img-3.13.0-80-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
update-initramfs: Generating /boot/initrd.img-3.13.0-79-lowlatency
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
update-initramfs: Generating /boot/initrd.img-3.13.0-79-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
4、最后发现,ubutnu 自己install的源码版本目前就是 linux-source-3.13.0,可以安装linux-header-4.2.0,linux-image-4.2.0。安装后,系统可以正常启动。
linux-image-4.2.0-040200-generic linux-image-4.2.0-21-generic linux-image-4.2.0-23-lowlatency linux-image-4.2.0-30-generic
linux-image-4.2.0-18-generic linux-image-4.2.0-21-lowlatency linux-image-4.2.0-25-generic linux-image-4.2.0-30-lowlatency
linux-image-4.2.0-18-lowlatency linux-image-4.2.0-22-generic linux-image-4.2.0-25-lowlatency
linux-image-4.2.0-19-generic linux-image-4.2.0-22-lowlatency linux-image-4.2.0-27-generic
linux-image-4.2.0-19-lowlatency linux-image-4.2.0-23-generic linux-image-4.2.0-27-lowlatency
这些个版本是可以正常使用的~
5、总结
不要盲目的升级内核~切记,自己编译和安装的内核风险很大,而且时间太长,不推荐新手试验学习。
ubuntu的内核升级要同版本,就是有几个版本要一致:
header
image
source
其实我也没搞清楚这几个东东为什么版本一致,我升级header和image的时候,可以直接安装4.2的,但是没有找到source也是4.2的。