Skip to content
Search Fedora

This page uses Chinese content. Search opens the Chinese documentation.

    Browse this documentation

    用 system-upgrade 做版本间升级

    This content is not available in your language yet.

    Fedora 的「升级」是版本间升级(如 F43 → F44),不是 EL 系那种跨大版本迁移。官方给出三条路径,选错路径的后果不是「不推荐」,而是不受支持。

    官方升级文档按使用场景分三条路径:

    场景官方推荐路径
    Fedora Workstation(GNOME)GNOME Software 的图形升级(有通知时点击,或在 Updates 面板操作)
    Fedora KDE Plasma DesktopKDE Discover 的「Upgrade Now」
    其它所有安装(含 Server、最小化、自建)DNF System Upgrade 插件(命令行)

    官方把这三步写成升级前置,不要跳过:

    1. 备份数据。官方措辞是「extremely unlikely」出问题,但仍要求先备份;
    2. 读目标版本的 Release Notes,确认重要变更与已知问题;
    3. 把当前系统更新到最新。图形路径下要先点 Refresh → Download → Restart & Update,把当前版本的所有更新装完再升级。官方对这一步用了「really important, please do not skip this step」。

    命令行流程:下载 → 重启 → 安装 → 再重启

    Section titled “命令行流程:下载 → 重启 → 安装 → 再重启”

    dnf system-upgrade 的工作方式分三段,理解它对排障很关键:

    1. 在系统正常运行时下载新版本的包(此时系统仍可用);
    2. 重启进入一个特殊环境(实现为一个 systemd target)执行安装;
    3. 安装完成后再次重启进入新版本。

    也就是说,升级过程不在你当前的运行环境里完成,而是在重启后的过渡环境里 —— 这是它与「原地替换包」最大的区别,也解释了为什么中断后不能简单重跑。

    不同 DNF 主版本下这个命令的来源不同:

    • Fedora 41 起默认 DNF5,system-upgrade 已内置;
    • DNF4 环境由 dnf-plugin-system-upgrade 插件提供。

    发行版专项流程(含 --releasever=、GPG 密钥导入、缓存保留等细节)见官方文档:Upgrading Fedora using the DNF system upgrade。

    升级后如果系统异常,先确认救援入口是否可用:救援内核(rescue kernel)由 Anaconda 在安装时生成,initramfs 会随内核更新而救援内核不一定。官方给出的处理是重新生成:

    Terminal window
    sudo rm /boot/*rescue*
    sudo kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"

    也可以安装 dracut-config-rescue,让救援内核在 dracut 作为 initrd 生成器时自动维护。

    需要回到旧内核启动时,用 grubby 指定默认启动项:

    Terminal window
    sudo ls /boot | grep vmlinuz
    sudo grubby --set-default /boot/vmlinuz-<version>.<release>.<arch>

    官方文档把升级分成「DNF system upgrade(推荐用于其它安装)」与「用包管理器升级」两条不同路径,排障时要先确认走的是哪条:

    1. 确认路径:是图形升级(GNOME Software / Discover)还是命令行插件?两条路径的失败点不同。
    2. 确认阶段:失败发生在「下载阶段」还是「重启后的安装阶段」?前者可重试下载(必要时用 --setopt=keepcache=1 保留缓存),后者要看过渡环境的日志。
    3. 不要用「手动 dnf 升级」兜底:那是不受支持的做法(见上),会把「升级失败」变成「不受支持的混合状态」。
    4. 需要系统性排查时,回查目标版本的 Release Notes 与官方 Quick Docs 的升级章节。