升级限制

  • SELinux 必须是关闭状态
  • 必须是 CentOS 6 x86_64
  • 根分区剩余空间不小于5GB,/boot分区剩余空间不小于120MB
  • 必须能连外网

升级风险

  • 升级需要1-3小时不等,甚至更长时间,视硬盘的速度和系统已安装的软件包数量
  • 升级可能会导致 sshd 起不来,因此远程升级有较大的风险
  • 升级可能会导致网卡配不上IP,因此远程升级有较大的风险
  • 升级后有部分软件不能使用(如 grep、yum等),需要手动处理
  • 升级后需要手动解决依赖关系,此步骤通常需要1-2小时甚至更久,视系统安装的软件包数量
  • 此升级不可逆,如升级失败系统将无法正常启动。物理机升级有较大风险,升级前务必做好数据备份。虚拟机升级前务必做好快照

升级路径

CentOS 6.x --> CentOS 7.2 --> CentOS 7 最新版

升级步骤

升级前准备(非常重要)

  • 解决升级后 grepyum 命令不能使用,网卡无法配置IP等问题

    • 此步骤非常重要,如果不做或做错,升级后将无法远程连接到目标机器
    cat > /etc/ld.so.conf.d/usr-local-lib.conf << EOF
    /usr/local/lib
    /usr/local/lib64
    EOF
    
    cp /usr/lib64/libsas12.so.2.0.23 /usr/local/lib64/
    cp /lib64/libpcre.so.0.0.1 /usr/local/lib64/
    
    ldconfig
    • libsas12.so.2.0.23libpcre.so.0.0.1 这两个文件在不同的版本中可能版本号会不一样
    • 操作完成后必须检查 /usr/local/lib64/ 下是否有这两个文件和其软连接

      [root@localhost ~]# ll /usr/local/lib64/
      total 284
      lrwxrwxrwx. 1 root root     16 Apr 20 22:49 libpcre.so.0 -> libpcre.so.0.0.1
      -rwxr-xr-x. 1 root root 183080 Apr 20 22:48 libpcre.so.0.0.1
      lrwxrwxrwx. 1 root root     18 Apr 20 22:49 libsasl2.so.2 -> libsasl2.so.2.0.23
      -rwxr-xr-x. 1 root root 106160 Apr 20 22:49 libsasl2.so.2.0.23
    • 如无以上信息,不可往下执行

CentOS 6 升级到 CentOS 7.2

  • 配置 yum 源

    cat > /etc/yum.repos.d/upgrade.repo << EOF
    [upgrade]
    name=upgrade
    baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/
    enabled=1
    gpgcheck=0
    EOF
  • 安装旧版 openscap

    yum remove -y openscap
    yum install -y https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm

    需确认 openscap 的版本必须是 1.0.8,而不能1.2.13或其他版本,否则执行升级步骤会报错

  • 安装升级工具

    yum install -y redhat-upgrade-tool preupgrade-assistant preupgrade-assistant-contents
  • 升级前检查

    preupg -s CentOS6_7
    • 如检查成功,会生成检查报告,此报告需要细读一遍
    • 如检查失败,根据提示解决问题或放弃升级
  • 上传CentOS7.2 DVD ISO 镜像包到系统任意路径,必须是DVD包,大小为4G多
  • 执行更新

    centos-upgrade-tool-cli --iso=/PATH/TO/CentOS7.2-DVD-ISO
    • 如提示 Finished. Reboot to start upgrade.,则输入 reboot 执行后续升级,此步骤需要较长时间
    • 如报错,根据提示解决问题或放弃升级

升级后完善

  • 升级 grep 软件包

    因为 grep 没有被升级,需要手工将 grep 升级到 CentOS 7 的版本

    yum downgrade -y grep
  • 卸载 el6 相关软件包

    # 查找 el6 的包
    rpm -qa | grep el6
    
    # 卸载
    yum remove xxx

    el6 的包是升级遗留的一些软件包,不建议保留,保留这些软件包可能会导致后续升级到最新 CentOS 7 造成依赖问题,因此需要将其卸载或升级为 CentOS 7 的版本。

    • 此处可能需要解决很多依赖问题。而且可能有些包是被系统重要组件依赖的,卸载时要注意看清楚,建议少量多次分批卸载
    • 最后剩余卸不掉的包,尝试将其升级为 CentOS 7 的版本
  • 删除无效开机启动项
    因 CentOS 7 使用 systemd 作为系统初始化程序,升级后系统还残留了一些无效的启动项(服务脚本软连接,位于 /etc/rc.d/rc{0..6}.d/ 目录下),因此删除这些无效的启动项

    for f in /etc/rc.d/rc{0..6}.d/*; do ls -H $f || unlink $f; done
    

CentOS 7.2 升级到 7.x 最新版

升级到 CentOS 7.x 最新版本,此过程需要联网升级。

  • 执行 yum update
  • 如报错,需手动解决依赖并不断循环此过程,直到升级成功

标签: none

添加新评论