From Fedora Project Wiki

m (→‎Executing the Upgrade: Changed some repeated wording and smoothed out some grammar. And why the reference to an unwritten section?)
(47 intermediate revisions by 22 users not shown)
Line 1: Line 1:
{{autolang|base=yes}}
{{autolang|base=yes}}
{{admon/note|New Software and Documentation|FedUp is new for Fedora 18 and as such, will be changing before Fedora 18 is released. If you find this documentation to be wrong or out of date, please fix it or let someone know}}
{{admon/warning|Security Considerations| FedUp does not yet ensure that only trusted software from Fedora is run on your system when you are doing upgrade over the network.  Refer to [[rhbug:877623|Bugzilla: #877623]] for more details.  You can download the ISO release image and verify the authenticity independently before performing a upgrade with Fedup via media or ISO images methods to workaround this issue.  Note that neither Anaconda not Preupgrade verified the authenticity of the source either and this is not a regression. }}


= What is FedUp? =
= What is FedUp? =


FedUp (FEDora UPgrader) is the name of a new system for upgrading Fedora installs in Fedora 18 and above releases. It replaces all of the currently recommended upgrade methods ([[PreUpgrade]] and DVD) that have been used in previous Fedora releases.  Anaconda, the Fedora installer does have not any in-built upgrade functionality in Fedora 18 or above releases.  It has been completely delegated to Fedup.
FedUp (FEDora UPgrader) is the name of a new system for upgrading Fedora installs in Fedora 18 and later. It replaces all of the previously recommended upgrade methods ([[PreUpgrade]] and DVD) that were been used in previous Fedora releases.  Anaconda, the Fedora installer, has no built-in upgrade functionality in Fedora 18 or later.  It has been completely delegated to FedUp.


Currently, FedUp is capable of upgrading Fedora 17 installs to Fedora 18 using a networked repository, similar to how [[PreUpgrade]] worked. More methods for upgrade are currently planned and this page will be updated as those features are completed.
Currently, FedUp is capable of handling upgrades between all still-supported Fedora releases using a network repository or a DVD image as the package source. Upgrades from EOL Fedora releases may work, but are not supported. More methods for upgrade are currently planned and this page will be updated as those features are completed.


{{admon/warning|Fedora 16 and Older|The FedUp client does not build or run on anything older than Fedora 17. If you want to upgrade an older Fedora installation, please [[Upgrade|upgrade]] to Fedora 17 before continuing.}}
= What Does FedUp do? =


= What Does FedUp do? =
The FedUp system consists of two parts - the client used to download packages and prepare for the upgrade and a pre-boot environment which does the actual upgrade using [[Systemd|systemd]] and yum. More details are available in [http://ohjeezlinux.wordpress.com/2012/11/13/fedup-a-little-background/ a blog post written by FedUp's primary author].


The FedUp system consistes of two parts - the client used to download packages and prepare for the upgrade and a pre-boot environment which does the actual upgrade using [[Systemd|systemd]] and yum. More details are available in [http://ohjeezlinux.wordpress.com/2012/11/13/fedup-a-little-background/ a blog post written by FedUp's primary author]
Files are downloaded to /var/tmp/system-upgrade (or the specified --cachedir [to be implemented?]) and will be automatically cleaned up after the upgrade process is finished.


== The FedUp Client ==
== The FedUp Client ==


The FedUp client runs on the system to be upgraded. It gathers the packages needed for upgrade in addition to downloading the required initramfs and kernel needed for the actual upgrade. At this time, only the fedup command-line interface is implemented but a GUI interface is expected before Fedora 18 is released.
The FedUp client runs on the system to be upgraded. It gathers the packages needed for upgrade in addition to downloading the required initramfs and kernel needed for the actual upgrade. At this time, only the fedup command-line interface is implemented but a GUI interface is expected...sometime.


== The Upgrade ==
== The Upgrade ==


The actual upgrade takes place when the system has been rebooted after running the FedUp client. The filesystems are mounted during boot, the already downloaded packages are installed and some upgrade-related tasks are performed. During the upgrade process, a special plymouth theme is used which has a progress bar to indicate current upgrade progress.
The actual upgrade takes place when the system has been rebooted after running the FedUp client. The filesystems are mounted during boot, the already downloaded packages are installed and some upgrade-related tasks are performed. During the upgrade process, a special plymouth theme is used which has a progress bar to indicate current upgrade progress.
== The Aftermath ==
Once the upgrade is complete, FedUp will reboot the system automatically. This is so you can run this part of the process unattended and return to the upgraded system, but if you leave any bootable media attached to the system during the upgrade process, the system may boot from that medium instead of the hard disk once the upgrade is complete. If you leave your system upgrading, come back, and see the Fedora installer or something similar...that's probably what happened!


= Frequently Asked Questions =
= Frequently Asked Questions =
== Can I upgrade a Fedora 16 system with FedUp? ==
== Why does my upgrade to Fedora 20 fail (immediately reboot to my old Fedora)? ==
No, this is not currently possible. The FedUp client does not currently build or run on Fedora 16 and you need to be running at least Fedora 17 in order to run the client. If you are upgrading from Fedora 16, use Preupgrade to upgrade to Fedora 17 first.
Because we messed up! Sorry about that. FedUp 0.7, which was in the Fedora 18 and 19 stable repositories at the time of Fedora 20's release, cannot successfully upgrade to Fedora 20. FedUp 0.8, though, can do it just fine. You should use FedUp 0.8 to upgrade to Fedora 20. If you're upgrading from Fedora 18, you'll need to pass <tt>--nogpgcheck</tt>. See [[Common_F20_bugs#fedup-07-fail|the Common Bugs page]] for all the details.


== How do I report issues that I find with upgrades? ==
== How do I report issues that I find with upgrades? ==
First see [[Common F18 bugs#Upgrade_issues]] whether the problem is not one of a very prominent issue we already know of. If it is not there, the component for reporting problems depends on the exact issue that you hit:
First see [[Common F19 bugs]] or [[Common F20 bugs]] to check if the problem is a very prominent issue we already know of. If it is not there, the component for reporting problems depends on the exact issue that you hit:


=== Issues with upgrade preparation ===
=== Issues with upgrade preparation ===
If you hit issues when using the FedUp client ({{package|fedup}}) before reboot, [https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=fedup&resolution=--- search] or file a bug against fedup using the version you are upgrading '''from'''.
If you hit issues when using the FedUp client ({{package|fedup}}) before reboot, [https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=fedup&resolution=--- search] or file a bug against FedUp using the version you are upgrading '''from'''.


=== Issues During Upgrade ===
=== Issues During Upgrade ===
Line 41: Line 41:
If you hit issues after upgrade with a specific package, file a bug against the package with which you are having issues.
If you hit issues after upgrade with a specific package, file a bug against the package with which you are having issues.


== How do I Debug Issues During Upgrade ==
== How do I Debug Issues During Upgrade? ==
A troubleshooting and debug guide will be written soon and linked to from here.
A troubleshooting and debug guide will be written at some point and linked to from here.


== Does FedUp verify the software it runs or installs during upgrade? ==
== Does FedUp verify the software it runs or installs during upgrade? ==
This is a planned feature. See [https://bugzilla.redhat.com/show_bug.cgi?id=877623 Bug 877623] for a status update.
Since version 0.8, it does so by default. The package signing keys for newer Fedora releases are now sent to older Fedora releases in order to allow FedUp to verify the integrity of the packages it downloads. You can disable this function with the --nogpgcheck parameter if you need to do so for any reason.


== Where can I ask Questions ==
== Will packages in third party repositories be upgraded? ==
For now, the best place to ask questions is probably {{fpchat|#fedora-qa}} on Freenode IRC or the {{fplist|test}} mailing list.


= How Can I Upgrade My System with FedUp? =
Yes, if they are set up like regular yum repositories and do not hard code the repository path. Commonly-used third party repositories usually work fine, but if you attempt to upgrade prior to or soon after an official Fedora release, they may not have updated their repository paths yet, and FedUp may be unable to find their packages. This will usually not prevent the upgrade running successfully, though, and you can update the packages from the third-party repository later.


As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup.
== Can I use FedUp to upgrade to a pre-release (e.g. a beta)? ==


Before you start doing anything, be sure to have a look at [[Common F18 bugs#Upgrade_issues]] and read about the most common bugs found.
Yes. After a Fedora release has been branched, it should be possible to upgrade to it using FedUp. It should also work after the Alpha and Beta releases. Of course, this function is as subject to temporary breakage as any other aspect of a pre-release.


== Preparing for the Upgrade ==
See this [http://lists.fedoraproject.org/pipermail/devel/2013-May/183508.html email to the Fedora devel mailing list] for more details.
{{admon/important|Note|This method is for network upgrade only.}}
# Do a full system update running '''<code>su -c "yum clean all | yum upgrade"</code>''' on Terminal and reboot to ensure that any kernel changes are running.
# After reboot, open the Terminal and run '''<code>su -c "yum install fedup"</code>''' to install the latest version of FedUp.


This will install FedUp on your system and get your Fedora 17 ready for upgrade.
= How Can I Upgrade My System with FedUp? =
As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup.


== Executing the Upgrade ==
Before you start doing anything, be sure to have a look at [[Common F20 bugs#Upgrade_issues]] and read about the most common bugs found.
# Open Terminal and run '''<code>su -c "fedup-cli --network 18 --debuglog fedupdebug.log""</code>'''.
# Reboot your system.
# Once you Reboot, you'll see the option 'System Upgrade' on the GRUB prompt. Just press Enter.
# The system will boot into a special environment to perform the upgrade. The screen will show a graphical progress screen during upgrade.


{{admon/note|Go get some coffee|The upgrade process usually takes a while (anywhere from 45-90 minutes, depending on the system), be patient and wait for it to finish. The system will boot into the new version of Fedora when the upgrade is complete.}}
== Preparing for the Upgrade ==
{{admon/important|Latest fedup|Make sure that you install the latest version of the fedup client on the system to be upgraded. At the time of this writing (2013-12-17), that is fedup-0.8.0-3.}}
# Do a full system update and reboot to ensure that any kernel changes are running
# Install {{package|fedup}}
#* Usually, it is best to try first with the latest fedup available in the stable update repository for the release you are running. If you encounter problems with the upgrade, and a newer fedup is available in the updates-testing repository for your current release, you may wish to try with this newer version: {{command|yum --enablerepo<nowiki>=</nowiki>updates-testing install fedup}} at the command line)


== GRUB Updates ==
There are three options for sourcing the packages needed for upgrade - using a network repository, a local ISO file or a local device (hard drive, optical disk etc).
{{admon/warning|Needs update|This part of the documentation is outdated. Update it or tell someone to do it.}}


{{admon/note|Somewhat Optional|While updating GRUB on your upgraded system isn't strictly required, it is recommended for BIOS systems and '''very strongly''' recommended for UEFI systems due to the transition from grub-efi to grub2-efi}}
{{admon/important|Network upgrade is strongly recommended|It is strongly recommended to use the network upgrade instead of offline update modes (ISO, local device). Network upgrade will ensure you receive the latest packages from the target release. If you use local media containing older packages, you might end up with a mixture of packages from your former and target release, and the system might not work properly until you fully update it after reboot (if it boots at all).}}


=== Updating GRUB2 (BIOS systems) ===
=== Network ===
Using a network source is the easiest method of upgrading and will pull in updates while upgrading - eliminating the potential issue if your current system has a newer kernel version than the Fedora release to which you are upgrading.


* '''After upgrade, the grub2 you're booting from will still be the F17 version; upgrading must be done manually'''
# Start the upgrade prep by executing following commands
* Follow the steps in [[GRUB_2|this grub2 page]] to reinstall and update grub
#* {{command|sudo yum update fedup fedora-release}}
#* {{command|sudo fedup --network 20}}
# Once the preparations have completed, check the {{filename|/var/log/fedup.log}} file if any errors show up in the output from {{command|fedup}}


=== Updating GRUB (UEFI systems) ===
=== ISO File ===
{{admon/note|Problems Upgrading Grub on UEFI|Late in testing, we found some potentially serious problems with manually upgrading grub-efi to grub2-efi. Until this is figured out, we recommend that users continue to use grub-efi as it should work for the near future}}
In order to use an ISO file, it needs to exist locally on the filesystem of the system to be upgraded. The documentation is written as if that file is /home/user/fedora-20.iso but you will need to replace all instances of that path with the actual path of the ISO. Updates will be pulled in if you have network access on the machine to be upgraded.
<!-- This is commented out due to some problems found late in testing fedup on EFI, will modify once this gets worked out
{{admon/caution|Intel Macs|These instructions will not work for Fedora installs on Intel macs. We're still working out separate instructions but for now, just continue to use grub-efi and upgrade to grub2 later.}}
{{admon/note|Secure Boot| Secure Boot functionality was not completed in time for Fedora 18 beta and these instructions do not cover using {{package|shim}} or the signed kernel. Once Secure Boot functionality is available, these instructions will be updated.}}


{{admon/note|Grub Theme|With the migration to grub2-efi in Fedora 18, you will see no grub splash after initial upgrade nor after upgrading to grub2-efi}}
# Download the Fedora {{FedoraVersion}} ISO appropriate for the arch that you are running
#* For the sake of example, we will assume that the ISO exists at {{filename|/home/user/fedora-20.iso}} but it can be anywhere in the filesystem as long as you alter the path below to reflect the actual location of the ISO. Make sure you have downloaded Fedora DVD ISO image otherwise you will get an error "The given ISO probably isn't an install DVD image" when run {{command|fedup-cli}} command.
# Start the upgrade prep by executing the following command
#* {{command|sudo fedup-cli --iso /home/user/fedora-20.iso}}
# Once the preparations have completed, check the {{filename|/var/log/fedup.log}} file if any errors show up in the output from {{command|fedup-cli}}


Grub2 is not installed as part of the upgrade process, so you'll have to install it:
=== Other Device ===
<pre>
Optical drives and other mountable storage can also be used as a package source for upgrade preparations.
sudo yum install grub2-efi
</pre>


Once the {{package|grub2-efi}} package is installed, we need to add a new EFI boot entry. The easiest way to do this is to just modify the command used when Fedora was first installed. Note that you will not be using the exact same command when upgrading to grub2 as the location of some files has changed. The older reference command can be found in <nowiki>/var/log/anaconda/anaconda.program.log</nowiki> and should end with a command similar to:
# Mount the source material
<pre>
#* For the sake of example, we will assume that this source is mounted at {{filename|/mnt/fedora}} but you can mount it anywhere as long as you replace {{filename|/mnt/fedora}} in the command below with the actual mounted location of the upgrade source.
efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l \EFI\redhat\grub.efi
# Start the upgrade preparations by executing the following command
</pre>
#* {{command|sudo fedup-cli --device /mnt/fedora --debuglog<nowiki>=</nowiki>fedupdebug.log}}
# Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}}


Find the current boot number for fedora using <code>efibootmgr</code>:
== Executing the Upgrade ==
<pre>
# Reboot the system if {{command|fedup}} has completed without error.
efibootmgr -v
# Once the system reboots, there should be a new entry in the GRUB menu titled {{command|'''System Upgrade'''}}.
</pre>
#* If you add <code>rd.upgrade.debugshell</code> boot argument, you will get a login shell on VT2, allowing you to tinker with the system in case something goes wrong
# Select the {{command|'''System Upgrade'''}} option from the GRUB menu
#*'''Remark:''' If the {{command|'''System Upgrade'''}} item is not shown in the grublist at boot, it is most often caused by having a different grub, most often installed by another Linux distribution you may have in multiboot. To correct this quickly: reinstall grub:
#*# grub2-mkconfig -o /boot/grub2/grub.cfg
#*# grub2-install /dev/sda '''(replace /dev/sda by any other device you prefer to boot from)'''
# The system should boot into the upgrade process and a plymouth boot screen should be displayed
#* Press 'esc' to see a more detailed log. If you switch back to the graphical progress indicator, it will show 0% for the remainder of the upgrade but that does not mean the upgrade has stopped.
# Once the upgrade process has completed, the system will reboot and an option to boot {{FedoraVersion|long|current}} will be on the grub menu


You are looking for a line similar to:
== Cleaning Up Post Upgrade ==
<pre>
Boot0004* Fedora  HD(1,800,34800,6733749f-b42a-4b8c-a0de-5a1d3505f8af)File(\EFI\redhat\grub.efi)
</pre>


The boot number in this example is 0004.
<!-- Some of the stuff from [http://fedorasolved.org/Members/fenris02/post_upgrade_cleanup this post upgrade cleanup guide] might be wise -->
 
Remove the old boot entry using the following command (<nowiki><boot number></nowiki>) is the boot number you found above:
<pre>
efibootmgr -b <boot number> -B
</pre>


{{admon/warning|Using Quotes|Make sure you put quotes around '\EFI\fedora\grubx64.efi' or bash will interpret \E, \f and \g as control characters and your system will not boot properly}}
It is worth rebuilding the RPM DB to prevent RPMDB checksum error when doing a distribution sync:


Once you have the command that was used and the boot number of the old boot entry, you can change it to use the new grub2-efi installation:
{{command|sudo rpm --rebuilddb}}
<pre>
sudo efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l '\EFI\fedora\grubx64.efi' -b <boot number>
</pre>


In order to get a bootable UEFI system, you need to regenerate the grub configuration and symlink it to <code>/etc/grub2-efi.cfg</code>
There are a collection of post-upgrade things to do. Some of which are fixed by doing a distro sync:
<pre>
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
</pre>


Once the system reboots, you should be using grub2-efi instead of grub-efi
{{command|sudo yum distro-sync --setopt<nowiki>=</nowiki>deltarpm<nowiki>=</nowiki>0}}
-->


== Cleaning Up Post Upgrade ==
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:


{{admon/warning|Pending|This part of the documentation is still being written }}
{{command|sudo yum remove google-chrome-\* && sudo yum install google-chrome-[beta,stable,unstable]}}
<!-- Some of the stuff from [http://fedorasolved.org/Members/fenris02/post_upgrade_cleanup this post upgrade cleanup guide] might be wise -->


= Docs TODO =
= Docs TODO =
* Write fedup troubleshooting and debug guide
* Write fedup troubleshooting and debug guide
* add details for secureboot/shim installation
* write commonbugs entries and link to them from this page
* add note about blob drivers if needed
* add note about blob drivers if needed
* add notes about how to use other repos or link to discussion/instructions

Revision as of 16:19, 5 January 2014

What is FedUp?

FedUp (FEDora UPgrader) is the name of a new system for upgrading Fedora installs in Fedora 18 and later. It replaces all of the previously recommended upgrade methods (PreUpgrade and DVD) that were been used in previous Fedora releases. Anaconda, the Fedora installer, has no built-in upgrade functionality in Fedora 18 or later. It has been completely delegated to FedUp.

Currently, FedUp is capable of handling upgrades between all still-supported Fedora releases using a network repository or a DVD image as the package source. Upgrades from EOL Fedora releases may work, but are not supported. More methods for upgrade are currently planned and this page will be updated as those features are completed.

What Does FedUp do?

The FedUp system consists of two parts - the client used to download packages and prepare for the upgrade and a pre-boot environment which does the actual upgrade using systemd and yum. More details are available in a blog post written by FedUp's primary author.

Files are downloaded to /var/tmp/system-upgrade (or the specified --cachedir [to be implemented?]) and will be automatically cleaned up after the upgrade process is finished.

The FedUp Client

The FedUp client runs on the system to be upgraded. It gathers the packages needed for upgrade in addition to downloading the required initramfs and kernel needed for the actual upgrade. At this time, only the fedup command-line interface is implemented but a GUI interface is expected...sometime.

The Upgrade

The actual upgrade takes place when the system has been rebooted after running the FedUp client. The filesystems are mounted during boot, the already downloaded packages are installed and some upgrade-related tasks are performed. During the upgrade process, a special plymouth theme is used which has a progress bar to indicate current upgrade progress.

The Aftermath

Once the upgrade is complete, FedUp will reboot the system automatically. This is so you can run this part of the process unattended and return to the upgraded system, but if you leave any bootable media attached to the system during the upgrade process, the system may boot from that medium instead of the hard disk once the upgrade is complete. If you leave your system upgrading, come back, and see the Fedora installer or something similar...that's probably what happened!

Frequently Asked Questions

Why does my upgrade to Fedora 20 fail (immediately reboot to my old Fedora)?

Because we messed up! Sorry about that. FedUp 0.7, which was in the Fedora 18 and 19 stable repositories at the time of Fedora 20's release, cannot successfully upgrade to Fedora 20. FedUp 0.8, though, can do it just fine. You should use FedUp 0.8 to upgrade to Fedora 20. If you're upgrading from Fedora 18, you'll need to pass --nogpgcheck. See the Common Bugs page for all the details.

How do I report issues that I find with upgrades?

First see Common F19 bugs or Common F20 bugs to check if the problem is a very prominent issue we already know of. If it is not there, the component for reporting problems depends on the exact issue that you hit:

Issues with upgrade preparation

If you hit issues when using the FedUp client (Package-x-generic-16.pngfedup) before reboot, search or file a bug against FedUp using the version you are upgrading from.

Issues During Upgrade

If you hit issues after upgrade preparation and the initial reboot, search or file a bug against Package-x-generic-16.pngfedup-dracut using the version you are upgrading to.

Issues After Upgrade

If you hit issues after upgrade with a specific package, file a bug against the package with which you are having issues.

How do I Debug Issues During Upgrade?

A troubleshooting and debug guide will be written at some point and linked to from here.

Does FedUp verify the software it runs or installs during upgrade?

Since version 0.8, it does so by default. The package signing keys for newer Fedora releases are now sent to older Fedora releases in order to allow FedUp to verify the integrity of the packages it downloads. You can disable this function with the --nogpgcheck parameter if you need to do so for any reason.

Will packages in third party repositories be upgraded?

Yes, if they are set up like regular yum repositories and do not hard code the repository path. Commonly-used third party repositories usually work fine, but if you attempt to upgrade prior to or soon after an official Fedora release, they may not have updated their repository paths yet, and FedUp may be unable to find their packages. This will usually not prevent the upgrade running successfully, though, and you can update the packages from the third-party repository later.

Can I use FedUp to upgrade to a pre-release (e.g. a beta)?

Yes. After a Fedora release has been branched, it should be possible to upgrade to it using FedUp. It should also work after the Alpha and Beta releases. Of course, this function is as subject to temporary breakage as any other aspect of a pre-release.

See this email to the Fedora devel mailing list for more details.

How Can I Upgrade My System with FedUp?

As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup.

Before you start doing anything, be sure to have a look at Common F20 bugs#Upgrade_issues and read about the most common bugs found.

Preparing for the Upgrade

Important.png
Latest fedup
Make sure that you install the latest version of the fedup client on the system to be upgraded. At the time of this writing (2013-12-17), that is fedup-0.8.0-3.
  1. Do a full system update and reboot to ensure that any kernel changes are running
  2. Install Package-x-generic-16.pngfedup
    • Usually, it is best to try first with the latest fedup available in the stable update repository for the release you are running. If you encounter problems with the upgrade, and a newer fedup is available in the updates-testing repository for your current release, you may wish to try with this newer version: yum --enablerepo=updates-testing install fedup at the command line)

There are three options for sourcing the packages needed for upgrade - using a network repository, a local ISO file or a local device (hard drive, optical disk etc).

Important.png
Network upgrade is strongly recommended
It is strongly recommended to use the network upgrade instead of offline update modes (ISO, local device). Network upgrade will ensure you receive the latest packages from the target release. If you use local media containing older packages, you might end up with a mixture of packages from your former and target release, and the system might not work properly until you fully update it after reboot (if it boots at all).

Network

Using a network source is the easiest method of upgrading and will pull in updates while upgrading - eliminating the potential issue if your current system has a newer kernel version than the Fedora release to which you are upgrading.

  1. Start the upgrade prep by executing following commands
    • sudo yum update fedup fedora-release
    • sudo fedup --network 20
  2. Once the preparations have completed, check the /var/log/fedup.log file if any errors show up in the output from fedup

ISO File

In order to use an ISO file, it needs to exist locally on the filesystem of the system to be upgraded. The documentation is written as if that file is /home/user/fedora-20.iso but you will need to replace all instances of that path with the actual path of the ISO. Updates will be pulled in if you have network access on the machine to be upgraded.

  1. Download the Fedora 40 ISO appropriate for the arch that you are running
    • For the sake of example, we will assume that the ISO exists at /home/user/fedora-20.iso but it can be anywhere in the filesystem as long as you alter the path below to reflect the actual location of the ISO. Make sure you have downloaded Fedora DVD ISO image otherwise you will get an error "The given ISO probably isn't an install DVD image" when run fedup-cli command.
  2. Start the upgrade prep by executing the following command
    • sudo fedup-cli --iso /home/user/fedora-20.iso
  3. Once the preparations have completed, check the /var/log/fedup.log file if any errors show up in the output from fedup-cli

Other Device

Optical drives and other mountable storage can also be used as a package source for upgrade preparations.

  1. Mount the source material
    • For the sake of example, we will assume that this source is mounted at /mnt/fedora but you can mount it anywhere as long as you replace /mnt/fedora in the command below with the actual mounted location of the upgrade source.
  2. Start the upgrade preparations by executing the following command
    • sudo fedup-cli --device /mnt/fedora --debuglog=fedupdebug.log
  3. Once the preparations have completed, check the fedupdebug.log file if any errors show up in the output from fedup-cli

Executing the Upgrade

  1. Reboot the system if fedup has completed without error.
  2. Once the system reboots, there should be a new entry in the GRUB menu titled System Upgrade.
    • If you add rd.upgrade.debugshell boot argument, you will get a login shell on VT2, allowing you to tinker with the system in case something goes wrong
  3. Select the System Upgrade option from the GRUB menu
    • Remark: If the System Upgrade item is not shown in the grublist at boot, it is most often caused by having a different grub, most often installed by another Linux distribution you may have in multiboot. To correct this quickly: reinstall grub:
      1. grub2-mkconfig -o /boot/grub2/grub.cfg
      2. grub2-install /dev/sda (replace /dev/sda by any other device you prefer to boot from)
  4. The system should boot into the upgrade process and a plymouth boot screen should be displayed
    • Press 'esc' to see a more detailed log. If you switch back to the graphical progress indicator, it will show 0% for the remainder of the upgrade but that does not mean the upgrade has stopped.
  5. Once the upgrade process has completed, the system will reboot and an option to boot Fedora 40 will be on the grub menu

Cleaning Up Post Upgrade

It is worth rebuilding the RPM DB to prevent RPMDB checksum error when doing a distribution sync:

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

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]

Docs TODO

  • Write fedup troubleshooting and debug guide
  • add note about blob drivers if needed