Centos升级6=>7
首先说一下升级,从centos6.X版本升级至centos7.2版本算是一个比较大的跨越性的升级,会考虑到的问题也比较多,一些内核兼容不兼容,会不会缺失什么必要文件导致不能启动,不能正常使用,这些原本的文件服务会不会丢失,我们带着这些疑问跟随我进行升级一下!
升级步骤 Centos6.X —>Centos7.2 ----> Centos7.9
这是一台测试服务器没什么特殊的服务版本为Centos6.10 升级的步骤我也是查阅了很多的资料,可以说是文章千篇一律但是能用的可能就那一章,也算是跟随着报错pass一篇一篇文章。
☆Centos6.X升级至Centos7.2
1、查看当前CentOS版本
代码语言:javascript复制cat /etc/redhat-release
2、更新源
代码语言:javascript复制vim /etc/yum.repos.d/upgrade.repo
输入以下内容:
代码语言:javascript复制[upgrade]
name=upgrade
baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/
enable=1
gpgcheck=0
3、卸载6.x自带的openscap,并安装老版本
代码语言:javascript复制yum erase openscap
yum install https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm
4、安装助手
代码语言:javascript复制yum install redhat-upgrade-tool preupgrade-assistant-contents
5、检测版本升级的风险,如果控制台输出了错误信息,需要查询下解决方案并解决
代码语言:javascript复制preupg -s CentOS6_7
6、更新系统
只支持6.5及以上系统升级到不高于7.2系统
6.1 在线更新
代码语言:javascript复制centos-upgrade-tool-cli --network 7 --instrepo=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.2.1511/os/x86_64/ --force
6.2 本地更新
代码语言:javascript复制cd /tmp
wget https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso
centos-upgrade-tool-cli --iso=/tmp/CentOS-7-x86_64-DVD-1511.iso
7、注意
升级有风险,升级不一定成功,软件包安装越少成功几率越高。
升级完成之后进行重启
代码语言:javascript复制reboot
☆升级成功后问题解决
重启之后当天我就下班了,第二天满怀欣喜的打开xshell显示不能远程连接但是ping是没问题的,我带着显示器来到了机房查看服务器,root账号密码都没问题进行登录,当前的文件也都还在,排查一下为什么不能ssh登录
无法进行ssh登录
代码语言:javascript复制#最开始第一眼让我高兴的事情就是升级成功为centos7.2了。
[root@node07 ~]# cat /etc/redhat-release
CentOS Linux release 7.2
#首先查看当前运行的服务
netstat -tunlp
显示我这里只运行一个mysql数据库,并没看到sshd服务器在运行
systemctl start sshd #启动sshd服务
命令行并没有报错,再次查看netstat -tunlp还没发现此服务
journalctl -f -u sshd
可以看到报错缺失文件libsasl2.so.2
libsasl2.so.2: cannot open shared object file: No such file or directory
这个服务器yum也不能使用也是因为确实libsasl2.so.2文件,但是能联网ping通百度
我想的方法是查看其他centos7的服务器是否有这个文件然后上传到一个私人网盘进行wget
下来到目录,去到其他服务器并没有看到此文件,心凉了一截。。。感觉可能要重做系统了,
百度查阅资料查了一大圈真的是千篇一律的文章,解决不了根本问题实际问题,下面这个方法
一定要记住解决此报错很好用!
解决缺失文件libsasl2.so.2
显示是找不到libsasl2.so.2 这个库。 其实在Centos 7中是有这个库的,只不过不叫这个名字,进入到/usr/lib64/目录下查看
代码语言:javascript复制[root@localhost bin]$ cd /usr/lib64
[root@localhost lib64]$ ls libsasl2.so.* -l
lrwxrwxrwx. 1 root root 17 Oct 17 2016 libsasl2.so.3 -> libsasl2.so.3.0.0
-rwxr-xr-x. 1 root root 121296 Jun 10 2014 libsasl2.so.3.0.0
[root@localhost lib64]$
发现有一个库libsasl2.so.3,那么我们只要使用一个软连接,连接到libsasl2.so.2即可
代码语言:javascript复制[root@localhost lib64]# ln -s libsasl2.so.3 libsasl2.so.2
[root@localhost lib64]# ls libsasl2.so.* -l
lrwxrwxrwx 1 root root 13 Nov 19 18:00 libsasl2.so.2 -> libsasl2.so.3
lrwxrwxrwx. 1 root root 17 Oct 17 2016 libsasl2.so.3 -> libsasl2.so.3.0.0
-rwxr-xr-x. 1 root root 121296 Jun 10 2014 libsasl2.so.3.0.0
[root@localhost lib64]#
再次启动sshd服务成功
代码语言:javascript复制systemctl start sshd
使用xshell连接成功!
grep命令报错,缺失libpcre.so.0文件
代码语言:javascript复制[root@node07 opt]# grep
grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
方法同上:
cd /usr/lib64
[root@node07 lib64]# ls libpcre.so*
libpcre.so libpcre.so.1 libpcre.so.1.2.0
[root@node07 lib64]# ln -s libpcre.so.1 libpcre.so.0
[root@node07 ~]# ls | grep app #命令恢复
app
更换yum源
代码语言:javascript复制cd /etc/
#备份
mv yum.repos.d yum.repos.d_backup
mkdir yum.repos.d
#获取阿里云yum源
cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/repo/epel-7.repo
#清除缓存&更新yum源
yum clean all
yum makecache
☆Centos7.2升至Centos7.9
代码语言:javascript复制yum update #升级所有包同时也升级软件和系统内核;
由于是从centos6升级到7的还是进行update一下比较好。
升级完毕查看版本升级到了centos7.9
[root@node07 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)