题记:今天装docker,提示我最好用3.10以上的内核
一.环境
1.1 系统环境
[root@testkernels]#lsb
lsblklsb_release
[root@testkernels]#lsb_release-a
LSBVersion::base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
DistributorID:CentOS
Description:CentOSrelease6.5(Final)
Release:6.5
Codename:Final
1.2 当前内核版本
Displayall259possibilities?(yorn)
[root@testkernels]#more/proc/version
Linuxversion2.6.32-431.el6.x86_64(mockbuild@c6b8.bsys.)(gccversion4.4.70313(RedHat4.4.7-4)(GCC))#1SMPFriNov2203:15:09UTC
二.安装
2.1 获取高版本内核,并解压到/usr/src/kernels
cd/root/soft
wget
cd/usr/src/kernels
tar-xJvf/root/soft/linux-3.10.87.tar.xz
2.2 编译&安装
A:进入内核目录,执行make menuconfig 修改编译配置文件
[root@testkernels]#cdlinux-3.10.87/
[root@testlinux-3.10.87]#pwd
/usr/src/kernels/linux-3.10.87
[root@testlinux-3.10.87]#makemenuconfig
HOSTCCscripts/basic/fixdep
HOSTCCscripts/kconfig/conf.o
HOSTCCscripts/kconfig/lxdialog/checklist.o
HOSTCCscripts/kconfig/lxdialog/inputbox.o
HOSTCCscripts/kconfig/lxdialog/menubox.o
HOSTCCscripts/kconfig/lxdialog/textbox.o
HOSTCCscripts/kconfig/lxdialog/util.o
HOSTCCscripts/kconfig/lxdialog/yesno.o
HOSTCCscripts/kconfig/mconf.o
SHIPPEDscripts/kconfig/zconf.tab.c
SHIPPEDscripts/kconfig/zconf.lex.c
SHIPPEDscripts/kconfig/zconf.hash.c
HOSTCCscripts/kconfig/zconf.tab.o
HOSTLDscripts/kconfig/mconf
scripts/kconfig/mconfKconfig
#
#usingdefaultsfoundin/boot/config-2.6.32-431.el6.x86_64
#
/boot/config-2.6.32-431.el6.x86_64:497:warning:symbolvalue'm'invalidforX86_INTEL_PSTATE
/boot/config-2.6.32-431.el6.x86_64:565:warning:symbolvalue'm'invalidforPCCARD_NONSTATIC
/boot/config-2.6.32-431.el6.x86_64:2730:warning:symbolvalue'm'invalidforMFD_WM8400
/boot/config-2.6.32-431.el6.x86_64:2731:warning:symbolvalue'm'invalidforMFD_WM831X
/boot/config-2.6.32-431.el6.x86_64:2732:warning:symbolvalue'm'invalidforMFD_WM8350
/boot/config-2.6.32-431.el6.x86_64:2745:warning:symbolvalue'm'invalidforMFD_WM8350_I2C
/boot/config-2.6.32-431.el6.x86_64:2747:warning:symbolvalue'm'invalidforAB3100_COR
注意:此处我的系统是64位,所以要选用64-bit kernel
然后保存,检查配置文件 .config
[root@testlinux-3.10.87]#ls-al
总用量684
drwxrwxr-x23rootroot40968月:39.
drwxr-xr-x.4wwwroot40968月:16..
drwxrwxr-x32rootroot40968月1711:52arch
drwxrwxr-x3rootroot40968月1711:52block
-rw-r-----1rootroot1198348月:39.config
-rw-rw-r--1rootroot186938月1711:52COPYING
-rw-rw-r--1rootroot953178月1711:52CREDITS
drwxrwxr-x4rootroot40968月
B:编译 make all 这一步 执行的时间很长,我这边有一个小时左右
[root@testlinux-3.10.87]#pwd
/usr/src/kernels/linux-3.10.87
[root@testlinux-3.10.87]#makeall
C: 安装模块
[root@testlinux-3.10.87]#makemodules_install
D:执行make install
[root@testlinux-3.10.87]#makeinstall
sh/usr/src/kernels/linux-3.10.87/arch/x86/boot/install.sh3.10.87arch/x86/boot/bzImage\
System.map"/boot"
ERROR:modinfo:couldnotfindmodulext_MARK
ERROR:modinfo:couldnotfindmoduleipt_MASQUERADE
ERROR:modinfo:couldnotfindmoduleiptable_nat
ERROR:modinfo:couldnotfindmodulenf_nat
ERROR:modinfo:couldnotfindmodulevmhgfs
ERROR:modinfo:couldnotfindmodulevsock
ERROR:modinfo:couldnotfindmodulevmware_balloon
ERROR:modinfo:couldnotfindmodulevmci
[root@testlinux-3.10.87]#
报错了
暂时未解决
解决问题:在系统上lsmod 确实有上面几个模块
[root@test2.6.32-504.3.3.el6.x86_64]#lsmod|grepxt_MARK
xt_MARK10573
[root@test2.6.32-504.3.3.el6.x86_64]#pwd
/usr/src/kernels/2.6.32-504.3.3.el6.x86_64
但是我在/usr/src/kernels/2.6.32-504.3.3.el6.x86_64/.config 里也没找到这些模块
[root@test2.6.32-504.3.3.el6.x86_64]#grepipt_MASQUERADE.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepxt_MARK.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepiptable_nat.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepnf_nat.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepvmhgfs.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepvsock.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepvmware_balloon.config
[root@test2.6.32-504.3.3.el6.x86_64]#grepvmci.config
[root@test2.6.32-504.3.3.el6.x86_64]#lsmod|grepxt_MARK
xt_MARK10573
[root@test2.6.32-504.3.3.el6.x86_64]#pwd
/usr/src/kernels/2.6.32-504.3.3.el6.x86_64
[root@test2.6.32-504.3.3.el6.x86_64]#pwd
/usr/src/kernels/2.6.32-504.3.3.el6.x86_64
所以上面的报错可能不影响正常使用,正在继续测试中
E:修改启动文件/boot/grub/grub.conf
步骤:先备份该文件
[root@testboot]#cdgrub/
[root@testgrub]#ls-al
总用量280
drwxr-xr-x.2rootroot10248月2422:26.
dr-xr-xr-x.5rootroot10248月2422:12..
-rw-r--r--.1rootroot6310月25device.map
-rw-r--r--.1rootroot1338010月25e2fs_stage1_5
-rw-r--r--.1rootroot126月25fat_stage1_5
-rw-r--r--.1rootroot1174810月25ffs_stage1_5
-rw-------1rootroot10808月2422:26grub.conf
-rw-------1rootroot10808月2422:26grub.conf.bak
-rw-r--r--.1rootroot1175610月25iso9660_stage1_5
-rw-r--r--.1rootroot1326810月25jfs_stage1_5
lrwxrwxrwx.1rootroot1110月25menu.lst->./grub.conf
-rw-r--r--.1rootroot1195610月25minix_stage1_5
-rw-r--r--.1rootroot1441210月25reiserfs_stage1_5
-rw-r--r--.1rootroot134111月15splash.xpm.gz
-rw-r--r--.1rootroot51210月25stage1
-rw-r--r--.1rootroot12610010月25stage2
-rw-r--r--.1rootroot1202410月25ufs2_stage1_5
-rw-r--r--.1rootroot1136410月25vstafs_stage1_5
-rw-r--r--.1rootroot1396410月25xfs_stage1_5
[root@testgrub]#pwd
/boot/grub
[root@testgrub]#cpgrub.confgrub.conf.bak
然后修改参数default=0
0表示启动第一个
1表示启动第二个
下面是我的已修改版:
[root@testgrub]#lessgrub.conf
#grub.confgeneratedbyanaconda
#
#Notethatyoudonothavetorerungrubaftermakingchangestothisfile
#NOTICE:Youhavea/bootpartition.Thismeansthat
#allkernelandinitrdpathsarerelativeto/boot/,eg.
#root(hd0,0)
#kernel/vmlinuz-versionroroot=/dev/mapper/VolGroup-lv_root
#initrd/initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
titleCentOS(3.10.87)
root(hd0,0)
kernel/vmlinuz-3.10.87roroot=/dev/mapper/VolGroup-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=VolGroup/lv_swapcrashkernel=auto.UTF-8rd_LVM_LV=VolGroup/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
initrd/initramfs-3.10.87.img
titleCentOS(2.6.32-431.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.el6.x86_64roroot=/dev/mapper/VolGroup-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=VolGroup/lv_swapcrashkernel=auto.UTF-8rd_LVM_LV=VolGroup/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
initrd/initramfs-2.6.32-431.el6.x86_64.img
三 验证
3.1 重启
[root@testgrub]#reboot
3.2 检查
[root@testgrub]#uname-a
Linuxtest.localdomain3.10.87#1SMPMonAug2421:43:03CSTx86_64x86_64x86_64GNU/Linux
[root@testgrub]#cat/proc/version
Linuxversion3.10.87(root@test.localdomain)(gccversion4.4.70313(RedHat4.4.7-16)(GCC))#1SMPMonAug2421:43:03CST
[root@testgrub]#
//11/kernel-install-error-could-not-find-module/