CentOS 7. × 系统及内核升级指南

最近在学习 Docker,想在服务器上实践一下.Docker 需要安装在 CentOS 7 64 位的平台,并且内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于 CentOS 7 内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定.需要升级到最新的 CentOS 版本,并且内核也更新到最新的稳定版本.这是我对升级 CentOS 系统版本及内核的记录,方便以后查阅,也分享给大家.

注意:这篇文章只在 CentOS 7.× 系列版本上验证过,其他 CentOS 版本请谨慎使用.

我的服务器是腾讯云云主机,系统为 CentOS 7.1,系统内核版本为 3.10,我在写这篇博客的时候最新的 CentOS 版本为 CentOS 7.3,而 The Linux Kernel Archives 上提供的最新稳定的系统内核为 4.12 版本.所以就把我的服务器系统升级为最新的 CentOS 7.3 版本,系统内核升级为 4.12 版本.

备份重要数据

备份重要数据(例如:/etc ,/var ,/opt文件夹)如果 CentOS 是安装在虚拟机上,那么可以使用快照进行备份.像 VMware 虚拟机可以快照备份.也可以针对重要程序数据进行备份,例如 MySQL、Appache、Nginx、DNS 等等.云主机的话,阿里云和腾讯云都可以创建快照备份数据.

检查当前 CentOS 系统版本

# cat /etc/redhat-release

> CentOS Linux release 7.1.1503 (Core)

检查当前 CentOS 系统内核版本

# uname -sr

> Linux 3.10.0-327.10.1.e17.x86_64

可以看出当前系统为 CentOS 7.1,系统内核版本为 3.10.

运行 yum 命令升级

CentOS 中 update 命令可以一次性更新所有软件到最新版本。

注意:不推荐使用 update-y选项,-y 选项会让你在安装每项更新前都进行确认,这样会非常费时间.对于 CentOS 5.× 和 6.× 的系统我们在更新后需要重新安装应用程序恢复数据,庆幸的是 CentOS 7.× 不需要这么麻烦,可以直接升级.

# yum clean all

# yum update

期间会有确认提示,直接回车确认即可.

重启系统

# reboot

检查当前 CentOS 系统版本

# cat /etc/redhat-release

> CentOS Linux release 7.3.1611 (Core)

检查当前 CentOS 系统内核版本

# uname -sr

> Linux 3.10.0-327.10.1.e17.x86_64

可以看到当前系统为 CentOS 7.3 已经升级成功了,但系统内核版本依旧为 3.10 并没有升级,这是因为 CentOS 为了安全和稳定并不会把系统内核升级到最新的版本,所以 yum update 命令只会升级系统版本和更新软件.接下来我们就来升级系统内核.

升级 CentOS 7.× 内核,启用 ELRepo

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本,而不是在 The Linux Kernel Archives 中可用的最新主线稳定内核.不幸的是, Red Hat 只允许使用 yum 升级内核.与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新主线稳定内核.

要在 CentOS 7.× 上启用 ELRepo 仓库,请运行:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

仓库启用后,你可以使用下面的命令列出可用的系统内核相关包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

接下来,安装最新的主线稳定内核:

# yum --enablerepo=elrepo-kernel install kernel-ml

由于网络原因,以上操作可能需要不少时间.

重启机器,检查当前 CentOS 系统内核版本

# uname -sr

> Linux 4.12.0-1.el7.elrepo.x86_64

可以看到系统内核已经升级到最新的主线稳定内核.

设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置,打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0.意思是 GRUB 初始化页面的第一个内核将作为默认内核.

# vi /etc/default/grub

> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
> GRUB_DEFAULT=0
> GRUB_DISABLE_SUBMENU=true
> GRUB_TERMINAL_OUTPUT="console"
> GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5"
> GRUB_DISABLE_RECOVERY="true"
> GRUB_TERMINAL="serial console"
> GRUB_TERMINAL_OUTPUT="serial console"
> GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

接下来运行下面的命令来重新创建内核配置.

# grub2-mkconfig -o /boot/grub2/grub.cfg

重启机器,查看系统当前内核版本,验证最新的内核已作为默认内核

# uname -a

> Linux VM_112_0_centos 4.12.0-1.el7.elrepo.x86_64 #1 SMP Sun Jul 2 20:38:48 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

删除 CentOS 更新后的旧内核

查看系统中全部的内核 RPM 包:

# rpm -qa | grep kernel

> kernel-tools-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.10.2.el7.x86_64
> kernel-3.10.0-514.26.2.el7.x86_64
> kernel-3.10.0-327.el7.x86_64
> kernel-ml-4.12.0-1.el7.elrepo.x86_64
> kernel-headers-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.26.2.el7.x86_64
> kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

删除旧内核的 RPM 包

yum remove kernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.10.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.26.2.el7.x86_64 kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

重启系统

# reboot

这样就可以升级完成了.Ubuntu 系统的话可以看看这篇博文 <<如何在 Ubuntu 中升级内核>>

作者:My_Oh_My
链接:https://www.jianshu.com/p/fdf6bb6c5b9c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

首爾自由行

去年底決定要到首爾自由行,因為沒去過朋友 Sara Lu推薦了我加入這個社團因而獲益得到各位板友無私提供的資訊,讓我可以跟三位同事大膽的第一次到首爾自由行,我來分享一下2/28-3/3這四天三夜的旅行。

Day 1:

12:30從桃園機場搭乘大韓航空出發前往首爾到達仁川大約當地時間接近5點,然後出關搭乘機場捷運前往我們居住地點忠武路站,因為第一次不清楚原來機場捷運是可以連接地鐵車票可以直接買到忠武路站所以我們車票只買到了首爾站,在忠武路站內被卡很久出不了站,還好遇到一位好心的大叔幫忙讓我們可以快速出站,加上又出錯站口使我們迷了一下路這時又剛好有位好心的大叔來詢問需不需要幫忙讓我們可以找到住宿地方。

到了住宿地點放好行李就出發去東大門找我們想吃的陳玉華奶奶一隻雞,還好有我在哪兒跟韓巢韓國地鐵APP,讓我們這幾天的旅途蠻順的。

Day 2:

早上安排了景福宮行程,所以便到景福宮附近隨意找了一家早餐店吃了好吃的紫菜飯卷跟大醬湯(很好吃),不免俗的當然餐後要去換上韓服到景福宮內大肆拍照一番,但當日非常得凍我居然不知道哪根神經斷掉居然裡面沒穿發熱衣也沒貼暖暖包,凍翻了所以我們大約只在景福宮待了一個多小時就被我催促著要回去換衣服,下午的行程我們安排在景福宮附近的西村悠閒的慢慢參觀當地風情並漫步前往西村一家好吃的甜點小店喝下午茶,晚上再前往明洞吃飯跟化妝品街採買,大肆採購完畢後回到住宿地點放好東西後再到住宿對面吃烤明太魚與炸雞(因隔天要拍照不能喝太多啤酒所以淺嚐了一點)。

Day 3:

出發前已先在KKDay訂了拍證照行程,所以早上便安排拍證照,地點在鐘閣站,體驗後覺得韓國的證照真的太強大了從妝髮到拍照是一整套的,下午拍完照我們轉戰到狎鷗亭去做了公司代理品牌的市調然後便悠閒在附近隨意找了家蔘雞湯店吃了一餐超飽的的午餐,接著便在附近隨意的散步一下午(這一帶的風景真的很漂亮),然後離開狎鷗亭前往首爾站的樂天超市大雪拼(離開時間沒算好遇到了上班族下班時間體驗到了沙丁魚擠地鐵並被人群擠著走的感覺是什麼)。因中午吃的太飽,我們從樂天超市回到住宿點才覺得餓,便到住的後巷弄內找了一家宵夜店吃了晚餐(雖然是隨意找的但非常的好吃)

Day 4:

因已經是第四天所以早上我們便慢慢收拾行李,然後再慢慢的前往首爾站的大韓航空處辦理Check in並托運行李,然後悠閒的前往機場準備回溫暖的家。

此次旅行我們採設定一個大的目標後便在附近隨意地逛,因此發現了很多有趣的事物。食的部分本來在出發前有想了很多要去吃的名店,但後來因距離有點遠便隨意在我們所處地方用哪個看起來順眼就進去吃的邏輯選擇,但似乎我們運氣很好都沒踩到地雷遇到的店家及姨母人都非常好小菜也是給的超多超好吃。

再一次感謝版友的無私分享讓我跟我的同事人生第一次首爾行敢在不跟團情況下,勇敢的前往旅遊並留下美好的回憶!