浏览文章
文章信息
CentOS6升级CentOS7
9057
配置升级工具upgradetool源
cat <<EOF >/etc/yum.repos.d/upgrade.repo [upgrade] name=upgrade baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/ enable=1 gpgcheck=0 EOF删除/etc/yum.repo.d下面多余的源,只保留upgradetool源
安装升级工具
为防止报错
preupg: error: [Errno 2] No such file or directory: '/root/preupgrade/result.html'
,重新装旧版本的openscpyum erase -y openscap &&\ yum install -y http://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm &&\ sudo yum install -y preupgrade-assistant-contents redhat-upgrade-tool preupgrade-assistant查看支持的升级
preupg -l执行升级分析
preupg -s CentOS6_7分析结果不能有fail的,有fail的可以看看是否先卸载对应的软件。我自己的服务器,报告的gnome desktop环境相关的fail,我执行了yum erase gnome*查看卸载gnome的影响,如果没有影响业务,则执行卸载,再次执行preupg -s CentOS6_7检查升级的兼容性。
导入CentOS7的key,使用阿里云的源
rpm --import https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7使用阿里云的源升级系统
centos-upgrade-tool-cli --network 7 --force --instrepo=https://mirrors.aliyun.com/centos-vault/7.2.1511/os/x86_64/注意只能升级到7.2,其他版本的升级会报告以下错误
Downloading failed: invalid data in .treeinfo: No section: 'checksums'如果之前用过其他版本的升级源,在升级过程中可能会出现以下,这时可以通过centos-upgrade-tool-cli –clean先清理一下, 然后再执行上面的命令执行更新。
Downloading failed: failure: repodata/6882feea31727f25dc12063b4bab119501d25dbf6cb6fa0f5b78b8e3d5401ea4-filelists.sqlite.bz2 from cmdline-instrepo: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"更新完成后执行reboot
如果启动的时候报告fail to start LSB,进入单用户模式,通过以下命令进行修复
ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2 ln -s /usr/lib64/libpcre.so.1.2.0 /usr/lib64/libpcre.so.0升级之后的清理工作
- CentOS 6的grep版本比CentOS 7的高,导致grep升级失败,执行yum downgrade grep进行降级。其他高版本导致升级失败的也可以使用相同的方式进行处理
- 删除CentOS 6下安装的升级工具yum erase redhat-upgrade-tool
- 通过rpm -qa | grep -i el6检查el6残留包,使用yum erase命令进行删除
- 恢复配置CentOS6下的第三方源,修改成CentOS7的版本,例如我的服务器有Mysql、gitlab的第三方源,配置好之后,通过执行yum install命令再次安装相关的软件就能恢复
- 最后执行yum upgrade升级到最新的版本