什么是 FedUp?
FedUp (FEDora UPgrader) 是一个升级 Fedora 的新工具。它替换了在之前 Fedora 版本上推荐的更新方式(例如通过 PreUpgrade 升级和 DVD 升级)。Anaconda,Fedora 的安装器,从 Fedora 18 后将不会自带更新功能,所有将全部交给 FedUp 来完成。
目前,FedUp 可以通过网络安装源完美升级 Fedora 17 至 Fedora 18,就像之前 PreUpgrade 的升级一样。更多升级的方法目前已经处于计划之中,当它们可行后本页也会继续更新。
FedUp 做了些什么?
FedUp 系统有两个组成部分 - 程序本身被用作下载软件包并准备升级过程和预启动环境,实际更新工作则由 systemd 和 yum 完成。详细信息请访问 FedUp 主作者对它的介绍 页面。
FedUp 客户端
FedUp 运行于准备升级的系统上。它获取所有需要升级的软件包和内核。目前只有命令行版本,不过图形界面版本已经在准备了。
升级过程
从运行 FedUp 客户端之后重启才开始实际上的升级。文件系统会在启动时被挂载,已下载的软件包会被安装并且一些有关升级的任务也会开始执行。在升级过程中,将会使用一个特别的包含升级进度条显示的 plymouth 主题作为屏幕显示。
常见问题解答
我能使用 FedUp 更新我的 Fedora 16 吗?
不行。目前不可用。FedUp 客户端目前尚未在 Fedora 16 上构建或运行,所以您至少需要 Feora 17。请首先使用 Preupgrade 升级至 Fedora 17。
我该如何汇报升级出现的问题?
请首先查看 Common F18 bugs#Upgrade_issues,也许这些问题不是受我们严重关注的问题。如果不在这个页面里面,请根据出问题的组件反馈问题。
升级准备时的问题
如果您在重启前使用 FedUp 客户端遇到问题(fedup
),请 搜索有关 fedup 的 Bug,或者针对您升级前系统的版本提交关于 fedup 的 Bug 报告。
升级过程中的问题
如果您在准备过程结束后重启时遇到问题,请 搜索有关 fedup-dracut 的 Bug,或者针对您升级前系统的版本提交关于 fedup-dracut 的 Bug 报告。
升级后的问题
如果升级某个软件包后出现问题,请针对相关软件提交 Bug 报告。
我该如何在升级过程中调试出现的问题?
稍后完善
FedUp 验证升级过程中安装或运行的软件吗?
这是一个正在计划中的新特性。查看 Bug 877623 以了解更多。
哪里可以问我的问题?
最好的位置是参与 IRC 交流 #fedora-qa[?] 或者发邮件至 test 邮件列表。
如何通过 FedUp 升级我的系统?
使用 FedUp 升级您的系统有3个阶段 - 升级准备、执行升级和清理
在您更新之前,确保您已经阅读了 Common F18 bugs#Upgrade_issues。
升级准备
- 运行系统更新并重启以确保内核更新生效
- 安装
fedup
- 确保已获取最新版,您可以通过启用 updates-testing 源(命令行执行
yum --enablerepo=updates-testing install fedup
)
- 确保已获取最新版,您可以通过启用 updates-testing 源(命令行执行
3种方式可获得需要更新的软件包 - 使用网络安装源、本地 ISO 镜像或本地设备(例如硬盘或者光盘)。
网络
使用网络进行升级是最省事的办法 - 如果您当前的系统有一个比您要升级到的 Fedora 版本自带内核还要新的内核,这种方式可以消除潜在的问题。
- 执行下列命令准备升级
sudo yum update fedup fedora-release
如果你正从Fedora 20升级到Fedora 21,执行下列命令
- sudo fedup --network 21 --product=[workstation | server| cloud | nonproduct]
如果你正从Fedora 21升级到Fedora 22,执行下列命令
- sudo fedup --network 22
- 一旦准备完毕,检查
/var/log/fedup.log
文件查看是否有来自fedup-cli
的错误输出
ISO 文件
为了使用 ISO 镜像,您需要把它放置于文件系统上。本文假设其位于 /home/user/fedora-18.iso,您可以任意指定位置。如果这台机器联网,更新的升级将会联网获取。
- 下载适合您正运行的架构的 Fedora 41 的 ISO 文件。
- 为了便于说明,我们假设 ISO 位于
/home/user/fedora-18.iso
,不过您可以任意指定您的实际 ISO 文件位置,替换下面的/home/user/fedora-18.iso
即可
- 为了便于说明,我们假设 ISO 位于
- 执行下列命令准备升级
- sudo fedup-cli --iso /home/user/fedora-18.iso --debuglog=fedupdebug.log
- 一旦准备完毕,检查
fedupdebug.log
文件查看是否有来自fedup-cli
的错误输出
其他设备
光盘和其他可被挂载的设备均可被用作升级准备过程中使用的软件包安装源。
- 挂载源介质
- 为了便于说明,我们假设设备挂载于
/mnt/fedora
,不过您可以任意指定挂载位置。替换下面的/mnt/fedora
即可
- 为了便于说明,我们假设设备挂载于
- 执行下列命令准备升级
- sudo fedup-cli --device /mnt/fedora --debuglog=fedupdebug.log
- 一旦准备完毕,检查
fedupdebug.log
文件查看是否有来自fedup-cli
的错误输出
执行升级
- 如果
fedup
已完成工作且没有错误发生,则重启系统。 - 一旦系统重启,GRUB 菜单将会有一个新的条目,叫做
System Upgrade
- 如果您在启动参数里面添加
rd.upgrade.debugshell
,您会看到一个 shell 窗口,允许您在系统出现某些情况时进行修复
- 如果您在启动参数里面添加
- 选择
System Upgrade
条目继续- 备注: 如果grub菜单没有这一项,很可能是你装的grub是你电脑里其它系统装的,解决它很简单:重装grub:
- grub2-mkconfig -o /boot/grub2/grub.cfg
- grub2-install /dev/sda (用你常用的启动设备替代/dev/sda)
- 备注: 如果grub菜单没有这一项,很可能是你装的grub是你电脑里其它系统装的,解决它很简单:重装grub:
- 系统将会启动至升级环境,一个 plymouth 启动屏幕会显示出来
- 如果您按下 'esc' 键,一个更详细的进度日志会显示出来,但是如果您切换至之前的图形显示进度条界面,进度条会一直停留在 0%,不过您不必担心因为升级实际上在运行。这是一个 Bug。
- 一旦更新完成,系统将会重启,grub 菜单会多出一个启动 Fedora 41 的选项
GRUB 更新
更新 GRUB2 (BIOS 系统)
- 升级完成后,之前安装的 grub2 仍然会启动 F17 版本,您需要手工升级
清理
在做发行版同步时重建RPM数据可以阻止RPMDB校验报错:
sudo rpm --rebuilddb
There are a collection of post-upgrade things to do. Some of which are fixed by doing a distro sync:
sudo yum distro-sync --setopt=deltarpm=0
The rpmconf tool searches for .rpmnew, .rpmsave and .rpmorig files and asks you what to do with them: Keep current version, place back old version, watch the diff or merge.
sudo yum install rpmconf
sudo rpmconf -a
If you are using google-chrome from the Google repository, you must re-install google-chrome due to a packaging bug on the Google side of things. Make sure to adjust the command to the build type you would like to install:
sudo yum remove google-chrome-\* && sudo yum install google-chrome-[beta,stable,unstable]