当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于ubuntu-desktop 14.04.x 升级内核的相关经历
帖子发表于 : 2016-03-03 15:13 

注册: 2011-07-20 11:33
帖子: 105
送出感谢: 9
接收感谢: 1
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的。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于ubuntu-desktop 14.04.x 升级内核的相关经历
帖子发表于 : 2016-03-18 22:59 
头像

注册: 2007-03-15 16:58
帖子: 2802
地址: 湖北武汉
送出感谢: 2
接收感谢: 4
总结得不错。。


_________________
引用:


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于ubuntu-desktop 14.04.x 升级内核的相关经历
帖子发表于 : 2016-03-19 8:05 

注册: 2009-08-04 16:33
帖子: 16893
送出感谢: 21
接收感谢: 1827
引用:
其实我也没搞清楚这几个东东为什么版本一致,我升级header和image的时候,可以直接安装4.2的,

1. http://packages.ubuntu.com/search?suite ... chon=names
Package linux-generic

Ubuntu 透過套件 linux-generic
控制 永遠直接安裝/更新到最新的整套 Linux-kernel 版本

1-1. 如果已有 整套 Linux-kernel 最新版本
ubuntu 套件庫內 套件 linux-generic 會被更新為最新版本
意思是 只要安裝/更新 linux-generic 就會全面安裝整套 Linux-kernel 版本

2. 安裝最新版本 套件 linux-generic 會同時安裝/更新 哪些 相依套件 ?
2-1. apt-rdepends 指令幫助你 列出所有會同時安裝/更新 哪些 相依套件
2-1-1. 安裝 apt-rdepends 套件 (來自 universe 套件庫)
http://packages.ubuntu.com/search?suite ... chon=names
2-1-2. sudo apt-rdepends linux-generic
將可以列出所有會同時安裝/更新 哪些 相依套件
2-1-3. 會自動更新 grub 2 開機選單 及 開機檔案
2-1-4. 會自動移除 以前安裝的 舊的 linux-kernel 版本 (一般 預設保留兩個版本)
2-2. 如果想列出來 會同時安裝的 推薦套件 參見 4.

3. 重新開機 就會以 最新版本 linux-kernel 開機

4. 如果你使用 springgraph
下述指令 可以列印出 相依套件 推薦套件 建議套件 取代套件 衝突套件 ... 等等 進一步資訊
sudo apt-rdepends -d linux-generic
4-1. http://manpages.ubuntu.com/manpages/kar ... nds.8.html
apt-rdepends - performs recursive dependency listings similar to apt-cache
-d, --dotty


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译