码迷,mamicode.com
首页 > 其他好文 > 详细

Docker-01 无人值守升级 CentOS 6.x 系统内核到 3.10.101

时间:2016-05-26 06:18:08      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

  1 #!/bin/bash
  2 
  3 #
  4 #    无人值守升级 CentOS 6.x 系统内核到 3.10.101
  5 #
  6 #    全程参考 https://segmentfault.com/a/1190000000733628
  7 #
  8 
  9 
 10 #
 11 #    1、检查操作系统是否为 CentOS 6.x
 12 #
 13 
 14 cat /etc/centos-release |grep -i centos |egrep 6.[[:digit:]]+ &>/dev.null
 15 if [[ $? != 0 ]]
 16 then
 17     echo -e "不支持的操作系统,该脚本只适用于 CentOS 6.x 操作系统"
 18     exit 1
 19 fi
 20 
 21 #
 22 #    2、检查当前内核版本是否满足安装 Docker 的要求:
 23 #       如果满足直接退出脚本,如果不满足将自动升级系统内核
 24 #
 25 
 26 if [[ $(uname -r |awk -F . {print $1}) -ge 3 ]]
 27 then
 28     if [[ $(uname -r |awk -F . {print $2}) -ge 10 ]]
 29     then
 30         echo "该操作系统内核版本已满足安装 Docker 的要求,无需升级"
 31         exit 1
 32     fi
 33 fi
 34 
 35 #
 36 #    3、检查 YUM 源是否可用
 37 #
 38         
 39 yum list &>/dev/null
 40 
 41 if [[ $? != 0 ]]
 42 then
 43     echo "YUM 源配置错误"
 44     exit 1
 45 fi
 46 
 47 #
 48 #    4、安装软件包组 "Development Tools"
 49 #
 50 
 51 yum groupinstall -y "Development Tools" 
 52 
 53 if [[ $? != 0 ]]
 54 then
 55     echo "YUM 安装开发工具失败"
 56     exit 1
 57 fi
 58 
 59 #
 60 #    5、安装编译 Linux 内核除 "Development Tools" 以外的其他软件包
 61 #
 62 
 63 yum install -y wget ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
 64 
 65 if [[ $? != 0 ]]
 66 then
 67     echo "YUM 安装开发工具失败"
 68     exit 1
 69 fi
 70 
 71 #
 72 #    6、下载 Linux 内核文件 3.10.101 ,并解压到 /usr/src/ 目录下
 73 #
 74 
 75 #wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.101.tar.xz
 76 wget http://mirrors.aliyun.com/linux-kernel/v3.x/linux-3.10.101.tar.xz
 77 tar -xf linux-3.10.101.tar.xz -C /usr/src
 78 if [[ ! -d /usr/src/linux-3.10.101/ ]]
 79 then
 80     echo "Linux 内核文件 3.10.101 下载失败"
 81     exit 1
 82 fi
 83 
 84 #
 85 #    7、在原有内核配置文件的基础上建立新的编译选项
 86 #
 87 
 88 cd /usr/src/linux-3.10.101/
 89 cp /boot/config-$(uname -r) .config
 90 sh -c yes "" | make oldconfig
 91 
 92 #
 93 #    8、开始编译 Linux 内核 3.10.101
 94 #        生成内核文件
 95 #        编译模块
 96 #        编译安装模块
 97 #
 98 
 99 cd /usr/src/linux-3.10.101/
100 
101 make -j$(cat /proc/cpuinfo |grep processor |wc -l) bzImage
102 
103 if [[ $? != 0 ]]
104 then
105     echo "生成内核文件失败"
106     exit 1
107 fi
108 
109 make -j$(cat /proc/cpuinfo |grep processor |wc -l) modules
110 
111 if [[ $? != 0 ]]
112 then
113     echo "编译模块失败"
114     exit 1
115 fi
116 
117 make -j$(cat /proc/cpuinfo |grep processor |wc -l) modules_install
118 
119 if [[ $? != 0 ]]
120 then
121     echo "编译安装模块失败"
122     exit 1
123 fi
124 
125 #
126 #    9、安装 Linux 内核 3.10.101
127 #
128 
129 cd /usr/src/linux-3.10.101/
130 make install
131 
132 #
133 #    10、配置 GRUB ,下次启动时加载新的内核
134 #
135 
136 sed -i s/default=1/default=0/ /etc/grub.conf
137 sed -i s/default=1/default=0/ /boot/grub/grub.conf
138 echo -en "\n\t"
139 read -p "立即重启操作系统,加载内核 3.10.101 [y/N]" rebootnow
140 if [[ $rebootnow == y ]]
141 then
142     reboot
143 else
144     echo -e "\n\t稍后手动重启操作系统加载内核 3.10.101\n"
145 fi

 

Docker-01 无人值守升级 CentOS 6.x 系统内核到 3.10.101

标签:

原文地址:http://www.cnblogs.com/www1707/p/5529496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!