centos6离线升级至centos7

1 说明

本文用于离线状态下centos跨大版本升级(centos6升级至centos7),系统环境为刚安装的纯净环境,升级前没有安装外部源的包。

centos跨版本升级只能升级到centos7.2,从centos7.3的系统安装镜像开始,就没有包含upgrade.img文件,所以无法直接升级。

2 升级

2.1 系统升级准备

centos6到centos7跨大版本升级,需要先升级至最新,这一步可以挂载centos6.10镜像,或者指定yum源,先在系统yum update整体升级。

因为centos6和centos7设计上有比较大的差异,直接挂载centos7镜像,yum update并不能升级成功。

另外,检查selinux配置文件,如果为enforcing,则需要修改为disabled。

2.2 安装升级工具

上传升级工具安装包并安装:preupgrade-assistant、preupgrade-assistant-contents、redhat-upgrade-tool以及openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm。

包下载地址 https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/

如果openscap原先已经安装,则使用 rpm -e 卸载,重新安装。

yum localinstall *.rpm

2.3 升级前检查

preupg

检查需要一段时间,检查过程可能会出现问题,需要根据实际问题处理,然后重新检查,待检查完成没问题后,才可以进行下一步升级。

2.4 开始升级

在系统挂载centos7.2镜像,使用升级工具升级

mount /dev/sr0 /mnt

centos-upgrade-tool --device /mnt

升级完成后,重启系统。

可以看到有一些库升级存在依赖关系,这个会成为后面问题之一。

3 升级后状态及问题处理

3.1 启动配置

启动配置还是使用grub,而不是grub2,但是内核已经升级为centos7,所以可以确定升级基本是成功的。

3.2 启动失败

一开始就提示liblzma.so.0: cannot open shared object file: No such file or directory,后面直接启动失败,进入紧急模式,dracut命令行窗口。

这个是因为启动时引用了旧的库文件,文件找不到,无法正常激活系统逻辑卷,启动失败而直接进入紧急模式。这个使用运行lvm命令提示错误,同样提示liblzma.so.0文件没找到。

进入库文件目录,手动创建软链接,此时可以使用lvm命令,然后激活逻辑卷,退出紧急模式,继续启动。

继续启动可能还会启动失败,进入救援模式,此时可再重复以上手动激活的步骤,应该可以启动成功。但是可能会登录失败,在控制台无法登录成功,输入账号密码后会再跳出返回,需要重新登录。

而且由于centos6网卡命名格式为 eth,而centos7网卡命名格式更改为ens/eno 这种方式,此时启动成功,但是网络并不通,也无法尝试使用ssh登录。

登录失败原因一般是开启了selinux,此时需要挂载镜像进入救援模式,修改配置文件。

如果可以直接登录成功,则可能网络服务正常启动,能够访问,且网卡名称还是eth命名,但也需要统一网络配置。

另外,启动过程中,可能还会有其他的报错,暂且留意。

3.3 命令无法使用

正常启动且登录成功之后,就提示了错误,此时部分命令无法正常使用,目前已发现无法使用的命令有 yum、lvm相关命令(pvs / vgs / lvs)、grep等,处理方式是对缺失的库文件创建软链接,链接至现有版本的库文件。

3.4 重建 initramfs 

3.2 启动失败问题只是临时处理,在启动成功之后,需要重建initramfs,不然在下次重启时,还需要手动处理,因为启动挂载文件系统之前是加载initramfs来处理的。

cp /boot/initramfs-3.10.0-327.el7.x86_64.img /boot/initramfs-3.10.0-327.el7.x86_64.img.bak

dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

 

3.5 其他

使用 rpm -qa | grep el6 可以查询到,还有很多是el6的包,虽然可以正常使用,但会影响之后安装更新,需要重装成el7版本的。

4 参考

本文在测试、编写的过程中参考了以下文章

https://www.psychz.net/client/kb/en/upgrade-centos-6-to-centos-7.html

https://tlanyan.me/upgrade-centos6-to-centos7/

https://access.redhat.com/solutions/637583

https://zorz.cc/post/centos6-upgrade-centos7.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,你需要下载新版本的 OpenSSL,可以在其他设备上下载并将其传输到 CentOS 7 服务器上。然后,按照以下步骤进行离线升级: 1. 安装 OpenSSL 的依赖包: ``` yum install -y make gcc perl-core zlib-devel ``` 2. 解压 OpenSSL: ``` tar -xzf openssl-1.1.1k.tar.gz cd openssl-1.1.1k ``` 3. 配置 OpenSSL: ``` ./config ``` 4. 编译 OpenSSL: ``` make ``` 5. 安装 OpenSSL: ``` make install ``` 6. 检查 OpenSSL 版本: ``` openssl version ``` 7. 更新 ld.so.conf 文件: ``` echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig -v ``` 现在,你已经成功地离线升级了 OpenSSL 版本。请注意,在更新 OpenSSL 时,你需要确保所有依赖项都满足,并且在升级之前备份你的数据。 ### 回答2: 要在CentOS 7离线升级OpenSSL版本,可以按照以下步骤进行操作: 1. 在另一台联网的计算机上下载所需的OpenSSL版本的离线安装包。你可以访问OpenSSL的官方网站或第三方软件源来获取它。 2. 使用USB存储设备或其他适配器将离线安装包传输到CentOS 7机器上。 3. 在CentOS 7机器上创建一个新的目录来存储离线安装包。例如,可以创建一个名为"openssl_update"的目录,并将离线安装包复制到该目录中。 4. 在终端或命令提示符窗口中,导航到存储离线安装包的目录。 5. 解压安装包。使用以下命令将.tar.gz或.tar.bz2格式的压缩包解压: ``` tar -xzvf openssl_version.tar.gz ``` 6. 进入解压后的目录: ``` cd openssl_version ``` 7. 执行以下命令以配置和编译OpenSSL: ``` ./config make ``` 将会生成编译后的OpenSSL文件。 8. 提权到root用户权限: ``` sudo su ``` 9. 安装新编译的OpenSSL版本。使用以下命令进行安装: ``` make install ``` 10. 让CentOS 7系统识别新安装的OpenSSL版本,更新动态链接库缓存: ``` ldconfig ``` 11. 至此,你的CentOS 7系统已成功离线升级到所需的OpenSSL版本。 请注意,离线升级将不会自动更新CentOS 7的软件仓库中的OpenSSL版本。因此,下次系统更新时,可能会将系统恢复到较旧的OpenSSL版本,因此需要重复此过程来保持所需的版本。 ### 回答3: 要在CentOS 7上进行离线升级OpenSSL版本,您可以按照以下步骤进行操作: 1. 确保您已经下载了所需的OpenSSL软件包,并将其复制到CentOS 7系统中。您可以从OpenSSL官方网站或通过其他信任的资源获取。 2. 在安装新的OpenSSL版本之前,先卸载当前系统中的旧版本。通过执行以下命令来卸载: ``` yum remove openssl ``` 3. 在进行安装之前,确保您已经更新了系统的包管理器和软件包列表,执行以下命令: ``` yum update ``` 4. 执行以下命令以安装新的OpenSSL软件包: ``` yum localinstall /path/to/openssl-package.rpm ``` 请将“/path/to/openssl-package.rpm”替换为您实际下载的OpenSSL软件包的路径。 5. 安装过程中可能会提示您确认依赖关系并安装其他软件包。按照提示进行选择并继续安装过程。 6. 安装完成后,您可以通过以下命令来验证新安装的OpenSSL版本是否成功: ``` openssl version ``` 如果命令输出显示了新安装的OpenSSL版本号,那么恭喜您,离线升级OpenSSL版本已经完成了。 注意:离线升级需要手动管理软件包和依赖关系,并且可能与系统上其他软件包产生冲突。在进行离线升级之前,请确保您已经备份了重要的系统文件,并在测试环境中先进行升级以避免可能的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值