HCRM博客

CentOS系统升级指南,使用ISO文件轻松更新

CentOS系统通过ISO镜像实现安全、可控的原地升级

核心目标: 在无法依赖网络仓库(如yum/dnf)的特殊场景下,通过本地ISO镜像文件完成CentOS系统(特别是大版本跃迁)的升级,例如从CentOS 7.x 升级到 CentOS 8 Stream,此方法适用于离线环境或严格内网管控的服务器。


为何选择ISO升级路径?

  • 网络隔离环境: 当服务器处于物理隔离或严格防火墙策略下,无法访问外部软件源时,本地ISO是唯一可行的升级途径。
  • 版本跃迁需求: 跨越主要版本(如CentOS 7到8),使用ISO通常比配置复杂的第三方仓库更直接可靠。
  • 版本控制与一致性: 使用官方ISO能确保获取纯净、未经修改的软件包集合,减少依赖冲突风险。
  • 完整性保障: 本地操作避免了网络传输中断或仓库同步问题导致的不稳定。

关键准备:确保升级过程稳固可靠

  1. 获取官方ISO镜像:

    CentOS系统升级指南,使用ISO文件轻松更新-图1
    • 访问CentOS官方镜像站点(https://vault.centos.org/ 或 CentOS Stream站点)。
    • 精确匹配! 下载与您目标升级版本完全一致的完整DVD或Everything ISO镜像,Boot ISO通常不包含完整软件包,无法用于升级。
  2. 系统全面备份(生命线):

    • 数据备份: 使用tar, rsync等工具备份关键用户数据、配置文件(/etc, /home, /var/www等)、数据库。
    • 系统快照: 如果运行在虚拟化平台(VMware, KVM, Hyper-V),强烈建议创建完整的虚拟机快照,物理机可考虑使用dd或专业备份工具制作全盘镜像,这是最快速的回滚手段。
  3. 验证ISO完整性(不可省略):

    • 下载页面通常提供SHA256SUMSHA512SUM校验文件。
    • 在服务器上计算ISO的校验和并比对:
      sha256sum /path/to/your-CentOS-ISO-file.iso
    • 校验失败绝对禁止使用! 损坏的ISO是灾难源头。
  4. 挂载ISO镜像:

    • 创建挂载点目录:
      sudo mkdir -p /media/upgrade-iso
    • 挂载ISO文件:
      sudo mount -o loop /path/to/your-CentOS-ISO-file.iso /media/upgrade-iso
    • 验证挂载成功:
      ls /media/upgrade-iso/

      应看到Packages, repodata, BaseOS, AppStream等目录(视具体版本结构)。

  5. 配置本地YUM/DNF仓库:

    • 创建新的仓库定义文件:

      CentOS系统升级指南,使用ISO文件轻松更新-图2
      sudo vi /etc/yum.repos.d/local-upgrade.repo
    • 输入以下内容(根据实际ISO结构微调路径):

      [Local-Upgrade-BaseOS]
      name=Local Upgrade Repository (BaseOS)
      baseurl=file:///media/upgrade-iso/BaseOS  # CentOS 7可能是/Packages
      enabled=1
      gpgcheck=1
      gpgkey=file:///media/upgrade-iso/RPM-GPG-KEY-CentOS-Official  # 路径需匹配ISO内GPG密钥文件位置
      [Local-Upgrade-AppStream]
      name=Local Upgrade Repository (AppStream)
      baseurl=file:///media/upgrade-iso/AppStream  # CentOS 7可能不需要此项
      enabled=1
      gpgcheck=1
      gpgkey=file:///media/upgrade-iso/RPM-GPG-KEY-CentOS-Official
    • 重要: 确认gpgkey路径在ISO中真实存在,禁用其他可能干扰的网络仓库(enabled=0)。

  6. 清理并更新缓存:

    sudo yum clean all      # CentOS 7
    sudo dnf clean all      # CentOS 8+
    sudo yum makecache      # CentOS 7
    sudo dnf makecache      # CentOS 8+

执行升级操作:核心步骤详解

  1. 安装升级工具: 确保yum-utils(CentOS 7) 或 dnf-plugin-system-upgrade(CentOS 8+) 已安装。

    sudo yum install yum-utils      # CentOS 7
    sudo dnf install dnf-plugin-system-upgrade  # CentOS 8+
  2. 启动升级进程:

    • CentOS 7 升级到 8 (需Leapp工具,此过程复杂且需额外准备,ISO方式非首选):
      • 这通常涉及配置特殊仓库安装leapp及相关数据包,严格遵循官方迁移指南,ISO本地源主要用于提供这些必要包。CentOS 7->8原地升级风险极高,生产环境务必谨慎评估。
    • CentOS 8 升级到 CentOS Stream 8/9 或 Stream 8 升级到 Stream 9:
      sudo dnf system-upgrade download --releasever=9  # 将9替换为目标版本号

      CentOS系统升级指南,使用ISO文件轻松更新-图3
      sudo dnf system-upgrade download --releasever=8-stream
  3. 解决依赖冲突(关键环节):

    • 上述命令执行中,很大概率会遇到依赖包冲突或缺失,错误信息会明确指出问题包。
    • 手动介入: 根据错误提示,可能需要:
      • 使用dnf install <problem-package>dnf remove <conflicting-package> 手动尝试解决。
      • 仔细检查本地仓库配置是否正确覆盖了所有必要路径。
      • 极端情况下,需在ISO的Packages目录中手动查找并安装特定rpm包(sudo rpm -ivh /media/upgrade-iso/Packages/xxx.rpm),但需注意依赖链。优先通过配置好仓库让dnf自动解决。
  4. 确认下载完成: DNF会下载所有必要的升级包到本地缓存。

  5. 最终重启执行升级:

    sudo dnf system-upgrade reboot
    • 系统将重启,进入离线升级过程。切勿中断电源或强制重启! 此过程耗时较长,耐心等待。

升级后关键验证与善后

  1. 登录系统: 使用原有凭证登录。
  2. 验证版本:
    cat /etc/redhat-release  # 或 /etc/os-release
    uname -r
  3. 检查服务状态: 逐一检查关键业务服务(Web服务器、数据库、应用服务)是否正常启动运行:
    sudo systemctl status nginx httpd mysql postgresql your-critical-service
  4. 网络测试: 验证网络连接、DNS解析是否正常。
  5. 应用功能测试: 执行核心业务功能流程,确保升级未引入兼容性问题。
  6. 清理:
    sudo umount /media/upgrade-iso
    sudo rm -f /etc/yum.repos.d/local-upgrade.repo # 移除临时仓库配置
    sudo dnf clean all 或 sudo yum clean all
  7. 重新配置仓库: 如果环境允许联网,重新配置官方的或内部的标准YUM/DNF仓库源。

风险警示与经验之谈

  • 非无损操作: 原地大版本升级本质存在风险,完备备份是底线,重要生产系统升级前务必在相同环境充分测试。
  • 依赖地狱: 离线升级最大挑战是复杂依赖关系,手动解决需要扎实的RPM依赖管理知识储备,务必预留充足排查时间。
  • 兼容性问题: 旧版配置文件、内核模块、第三方驱动、自定义脚本在新版本下可能失效,升级后需仔细验证和适配。
  • CentOS 7 -> 8/Stream 特殊性: 官方迁移路径依赖Leapp工具,过程复杂且对硬件、软件环境有严格要求。强烈建议将此视为高风险操作,优先考虑数据迁移至新装系统。
  • 稳定性考量: 对于要求极致稳定的核心生产服务器,全新安装目标版本并迁移数据往往是更优策略,尽管耗时更长。

作为长期与服务器打交道的实践者,我认为ISO升级是CentOS管理员工具箱里一把应对特殊场景的利器,但务必认清其"双刃剑"本质,它解了离线升级的燃眉之急,却也引入了依赖解析的复杂度和中断风险,每次执行前,扪心自问:备份是否万无一失?是否有更稳妥的方案?这份审慎,往往比技术操作本身更能守护系统的平稳运行,对于关键业务,迁移而非原地升级,常是更负责任的选择。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/36208.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~