centos6.10如何升级到centos7.9

通过命令行升级 CentOS 6.10 到 CentOS 7.9 是一个可能的路径,但官方并不推荐这样做,尤其是直接从 CentOS 6 到 CentOS 7,因为两者之间有较大的架构差异(如内核、服务管理方式、文件系统等)。如果必须通过命令行进行升级,请务必注意以下事项:


一、升级前的准备

1. 备份系统

任何升级操作都可能导致数据丢失或系统不可用,因此一定要备份:

  • 数据文件
  • 配置文件(如 /etc 下的自定义配置)
  • 数据库或其他服务相关数据

可以使用 rsync 工具或手动备份到外部存储设备。

2. 检查系统版本

确保当前版本是 CentOS 6.10:

cat /etc/redhat-release

输出应为:

CentOS release 6.10 (Final)

3. 更新系统

将所有软件包更新到最新版本:

yum update -y

4. 启用 EPEL 仓库

安装 Extra Packages for Enterprise Linux(EPEL)存储库:

yum install epel-release -y

二、安装必要工具

直接从 CentOS 6 升级到 CentOS 7,可以使用 redhat-upgrade-tool 工具。以下是安装步骤:

1. 安装升级工具

安装 redhat-upgrade-toolpreupgrade-assistant

yum install redhat-upgrade-tool preupgrade-assistant preupgrade-assistant-contents -y

2. 检查升级兼容性

运行以下命令,检查系统是否满足升级条件:

preupg

输出示例:

Preupgrade Assistant results are stored in /root/preupgrade/result.html
  • 生成的报告文件可以用浏览器打开,路径为 /root/preupgrade/result.html
  • 检查报告,确认所有关键问题已解决。

三、挂载 CentOS 7 DVD 或设置本地仓库

如果使用的是 DVD 镜像:

  1. 挂载 DVD 光盘或 ISO 文件:
   mkdir -p /mnt/cdrom
   mount /dev/cdrom /mnt/cdrom
  1. 配置本地仓库指向 DVD:
    编辑 /etc/yum.repos.d/centos7-upgrade.repo
   vi /etc/yum.repos.d/centos7-upgrade.repo

添加以下内容:

   [centos7-upgrade]
   name=CentOS 7 Upgrade
   baseurl=file:///mnt/cdrom
   enabled=1
   gpgcheck=0

如果使用网络镜像源:

  1. 编辑 /etc/yum.repos.d/centos7-upgrade.repo
   vi /etc/yum.repos.d/centos7-upgrade.repo

添加以下内容:

   [centos7-upgrade]
   name=CentOS 7 Upgrade
   baseurl=http://mirror.centos.org/centos/7/os/x86_64/
   enabled=1
   gpgcheck=0

四、开始升级

1. 运行升级工具

执行以下命令开始升级:

redhat-upgrade-tool --network 7 --instrepo=file:///mnt/cdrom

如果使用网络仓库,请将 --instrepo 替换为:

redhat-upgrade-tool --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64/

在执行过程中,工具将下载并安装必要的升级包。如果过程中遇到依赖问题,请手动解决或卸载冲突的软件包。

2. 重启到升级引导程序

升级完成后,系统会提示进行重启。执行以下命令:

reboot

五、升级后操作

1. 检查系统版本

确认系统已升级到 CentOS 7.9:

cat /etc/redhat-release

输出应为:

CentOS Linux release 7.9.2009 (Core)

2. 迁移服务到 systemd

CentOS 7 使用 systemd 管理服务,而 CentOS 6 使用 init。因此,需要将服务配置迁移到 systemd

  • 检查正在运行的服务:
  chkconfig --list    # CentOS 6
  systemctl list-units --type=service    # CentOS 7
  • 启用服务:
  systemctl enable your-service
  systemctl start your-service

3. 检查文件系统

CentOS 7 默认使用 XFS 文件系统,但如果您从 CentOS 6 升级,可能仍在使用 ext4。可以检查文件系统类型:

df -T

如果需要切换到 XFS,需要备份数据并重新格式化分区。

4. 更新所有软件包

运行以下命令,确保所有软件包更新到最新版本:

yum update -y

六、注意事项和建议

  1. 不兼容的软件
  • 某些软件可能无法在 CentOS 7 上运行,需要重新安装或升级。
  • 对于自定义的应用程序,建议先在测试环境中验证兼容性。
  1. 系统稳定性
  • 升级后,可能会出现系统不稳定的情况,建议对新系统进行充分测试。
  1. 推荐全新安装
  • 由于 CentOS 6 到 CentOS 7 的架构差异较大,直接升级可能会留下遗留问题。如果可能,建议全新安装 CentOS 7 并手动迁移数据。

总结

通过命令行升级 CentOS 6.10 到 CentOS 7.9 是一个可行但具有风险的过程。如果您必须选择这种方式,请确保已经完成了所有备份和兼容性测试。此外,如果条件允许,强烈建议通过全新安装实现更稳定的迁移过程。如果有任何疑问或在某个步骤遇到问题,请随时联系!

报错整理

1、Traceback (most recent call last): File "/usr/bin/redhat-upgrade-tool", line 31, in <module> from redhat_upgrade_tool.download import UpgradeDownloader, YumBaseError, yum_plugin_for_exc, URLGrabError File "/usr/lib/python2.6/site-packages/redhat_upgrade_tool/download.py", line 33, in <module> from rhsm.certificate import create_from_pem ImportError: No module named rhsm.certificate

yum install python-rhsm -y

2、Traceback (most recent call last):
File "/usr/bin/redhat-upgrade-tool", line 55, in
from preupg.xccdf import XccdfHelper
ImportError: No module named preupg.xccdf

 yum install preupgrade-assistant preupgrade-assistant-contents -y

3、Traceback (most recent call last):
File "/usr/bin/redhat-upgrade-tool", line 322, in
main(args)
File "/usr/bin/redhat-upgrade-tool", line 125, in main
if f.treeinfo.get('general', 'version').split('.')[0] != \
File "/usr/lib/python2.6/site-packages/redhat_upgrade_tool/download.py", line 421, in treeinfo
self._treeinfo = Treeinfo(self._get_treeinfo())
File "/usr/lib/python2.6/site-packages/redhat_upgrade_tool/download.py", line 411, in _get_treeinfo
reget=None)
File "/usr/lib/python2.6/site-packages/urlgrabber/mirror.py", line 408, in urlgrab
return self._mirror_try(func, url, kw)
File "/usr/lib/python2.6/site-packages/urlgrabber/mirror.py", line 402, in _mirror_try
self._failure(gr, obj)
File "/usr/lib/python2.6/site-packages/urlgrabber/mirror.py", line 297, in _failure
action = cb(cb_obj, *args, **kwargs) or {}
File "/usr/lib/python2.6/site-packages/redhat_upgrade_tool/download.py", line 54, in raise_exception
raise failobj.exception
urlgrabber.grabber.URLGrabError: [Errno 2] Local file does not exist: /ic/tools/yum/Centos-7.9-x86_64/.treeinfo

sha256sum /ic/tools/yum/Centos-7.9-x86_64/images/pxeboot/vmlinuz
sha256sum /ic/tools/yum/Centos-7.9-x86_64/images/pxeboot/initrd.img
vim  /ic/tools/yum/Centos-7.9-x86_64/.treeinfo
[checksums]
images/pxeboot/vmlinuz = sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
images/pxeboot/initrd.img = sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

4、setting up repos…
Unable to open file /root/preupgrade/result.xml
preupgrade-assistant has not been run.
To perform this upgrade, either run preupg or run redhat-upgrade-tool --force

preupg

5、Downloading failed: invalid data in .treeinfo: No option 'upgrade' in section: 'images-x86_64'

vim /ic/tools/yum/Centos-7.9-x86_64/.treeinfo
[images-x86_64]
kernel = images/pxeboot/vmlinuz
initrd = images/pxeboot/initrd.img
upgrade = images/pxeboot/vmlinuz
upgrade_initrd = images/pxeboot/initrd.img

解决了那么多问题终于可以正常升级了!!!

升级中发现全是黄色的WARNING,不管了,升完再说!!!

发表评论

后才能评论