m (→Network: removed unneeded definition) |
m (/etc/default/grub) |
||
(25 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{admon/caution| | {{admon/caution|Upgrading before F18 GA|Some parts of fedup rely on variables which are not set until Fedora 18 is released. There are other side-effects of upgrading before GA (currently scheduled for 2013-01-15) which can cause minor issues on your system including not upgrading the kernel and not upgrading various Fedora 17 packages. This does not mean that the upgrade didn't work - you'll just have to either update to updates-testing or wait until the Fedora 18 updates repo is populated}} | ||
{{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 perfoming 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. }} | {{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 perfoming 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? = | |||
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 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. | ||
Line 9: | Line 9: | ||
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 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. | ||
{{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. | {{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? = | |||
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] | 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] | ||
== 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 before Fedora 18 is released. | ||
== 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. | ||
= Frequently Asked Questions = | |||
== Can I upgrade a Fedora 16 system with FedUp? == | |||
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. | 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. | ||
== How do I report issues that I find with upgrades? == | |||
The answer to this depends on the exact issue that you hit. | The answer to this depends on the exact issue that you hit. | ||
=== Issues with upgrade preparation === | |||
If you hit issues when using the FedUp client ({{package|fedup}}) before reboot, search for 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, search for 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 for or file a bug against {{package|fedup-dracut}} using the version you are upgrading '''to'''. | If you hit issues after upgrade preparation and the initial reboot, search for or file a bug against {{package|fedup-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. | 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 soon and linked to from here. | A troubleshooting and debug guide will be written soon and linked to from here. | ||
== 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. | This is a planned feature. See [https://bugzilla.redhat.com/show_bug.cgi?id=877623 Bug 877623] for a status update. | ||
== Where can I ask Questions == | |||
For now, the best place to ask questions is probably #fedora-qa on Freenode IRC or the [https://admin.fedoraproject.org/mailman/listinfo/test Fedora Test list]. | For now, the best place to ask questions is probably #fedora-qa on Freenode IRC or the [https://admin.fedoraproject.org/mailman/listinfo/test Fedora Test list]. | ||
= How Can I Upgrade My System with FedUp? = | |||
As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup. | As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup. | ||
== 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-01-08), that is fedup-0.7.2-1.fc17}} | |||
{{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 ( | |||
# Do a full system update and reboot to ensure that any kernel changes are running | # Do a full system update and reboot to ensure that any kernel changes are running | ||
# Install {{package|fedup}} | # Install {{package|fedup}} | ||
Line 65: | Line 60: | ||
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.). | 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.). | ||
=== Network === | |||
Using a network source is the easiest method of upgrading and will pull in updates while upgrading - eliminating the potential issue if {{FedoraVersion|previous}} has a newer kernel version than {{FedoraVersion}}. | Using a network source is the easiest method of upgrading and will pull in updates while upgrading - eliminating the potential issue if {{FedoraVersion|previous}} has a newer kernel version than {{FedoraVersion}}. | ||
{{admon/caution|Upgrading Before F18 Final GA|If you're following these instructions before F18 goes GA (currently scheduled for 2013-01-15), you '''do''' need to use the --instrepo argument as shown here. You may also end up with many fc17 packages on your system after upgrade - this is not a bug with fedup but a side effect of the release process. Once F18 goes GA, the updates repository will be available and this problem should go away}} | |||
# Start the upgrade prep by executing following command | # Start the upgrade prep by executing following command | ||
#* {{command|sudo fedup --network 18 --debuglog fedupdebug.log}} | #* {{command|sudo fedup --network 18 --debuglog fedupdebug.log --instrepo http://dl.fedoraproject.org/pub/alt/qa/fedup/f18-RC4/<arch>/}} | ||
#* <arch> is the arch of the system that you are upgrading - either i386 or x86_64 | |||
# Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | # Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | ||
=== 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-18.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. | 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-18.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. | ||
Line 81: | Line 79: | ||
# Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | # Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | ||
=== Other Device === | |||
Optical drives and other mountable storage can also be used as a package source for upgrade preparations. | Optical drives and other mountable storage can also be used as a package source for upgrade preparations. | ||
Line 87: | Line 85: | ||
#* 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. | #* 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. | ||
# Start the upgrade preparations by executing the following command | # Start the upgrade preparations by executing the following command | ||
#* | #* <nowiki>sudo fedup --device /mnt/fedora --debuglog=fedupdebug.log</nowiki> | ||
# Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | # Once the preparations have completed, check the {{filename|fedupdebug.log}} file if any errors show up in the output from {{command|fedup-cli}} | ||
== Executing the Upgrade == | |||
{{admon/ | {{admon/warning|Needs Reference|This section still needs a reference to the 'esc kills plymouth' bug once a suitable summary has been written}} | ||
# Reboot the system if {{command|fedup}} has completed without error. | # Reboot the system if {{command|fedup}} has completed without error. | ||
# Once the system reboots, there should be a new entry in the GRUB menu titled {{command|System Upgrade}}. | # Once the system reboots, there should be a new entry in the GRUB menu titled {{command|System Upgrade}}. | ||
#* Adding <nowiki>rd.upgrade.debugshell</nowiki> would be a decent idea | |||
# Select the {{command|System Upgrade}} option from the GRUB menu | # Select the {{command|System Upgrade}} option from the GRUB menu | ||
# The system should boot into the upgrade process and a plymouth boot screen should be displayed | # The system should boot into the upgrade process and a plymouth boot screen should be displayed | ||
#* | #* If you press 'esc', a more detailed log of progress will be desplayed but if you switch back to the graphical progress indicator, it will remain at 0% for the remainder of the upgrade but that does not mean the upgrade has stopped. See '''Need section reference here once it's written''' | ||
# Once the upgrade process has completed, the system will reboot and an option to boot {{FedoraVersion|long|next}} will be on the grub menu | # Once the upgrade process has completed, the system will reboot and an option to boot {{FedoraVersion|long|next}} will be on the grub menu | ||
== GRUB Updates == | |||
{{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/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}} | ||
=== Updating GRUB2 (BIOS systems) === | |||
* After upgrade, the grub2 you're booting from will still be the F17 version; upgrading must be done manually | * After upgrade, the grub2 you're booting from will still be the F17 version; upgrading must be done manually | ||
* Follow the steps in [[GRUB_2|this grub2 page]] to reinstall and update grub | * Follow the steps in [[GRUB_2|this grub2 page]] to reinstall and update grub | ||
=== Updating GRUB (UEFI systems) === | |||
{{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. | {{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.}} | |||
Grub2 is not installed as part of the upgrade process, so you'll have to install it: | Grub2 is not installed as part of the upgrade process, so you'll have to install it: | ||
Line 119: | Line 116: | ||
</pre> | </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. | ==== Migrating Grub Configuration ==== | ||
Unfortunately, most boot settings are not migrated to grub2 without manual intervention. To migrate these settings, you will need to look the existing grub configuration to migrate settings. Open the {{filename|/boot/efi/EFI/redhat/grub.conf}} and find the most recent boot entry. The version numbers don't need to exactly match the example, just find the most recent one. | |||
<pre> | |||
title Fedora (3.6.11-1.fc17.x86_64) | |||
root (hd0,2) | |||
kernel /vmlinuz-3.6.11-1.fc17.x86_64 rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 | |||
rd.md=0 rd.dm=0 KEYTABLE=us SYSFONT=True rd.lvm.lv=vg_test/lv_root | |||
root=/dev/mapper/vg_test-lv_root ro rd.lvm.lv=vg_test/lv_swap | |||
LANG=en_US.UTF-8 rhgb quiet | |||
initrd /initramfs-3.6.11-1.fc17.x86_64.img | |||
</pre> | |||
We are '''not''' interested in all of the arguments following {{filename|kernel}}, mostly arguments which start with {{filename|rd.}} and a few other specific arguments. In the example listed above, we're interested in: | |||
<pre> | |||
rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 | |||
rd.md=0 | |||
rd.dm=0 | |||
rd.lvm.lv=vg_test/lv_root | |||
root=/dev/mapper/vg_test-lv_root | |||
ro | |||
rd.lvm.lv=vg_test/lv_swap | |||
rhgb | |||
quiet | |||
</pre> | |||
To migrate the configuration, open {{filename|/etc/default/grub}} with sudo or as root and paste the following template in: | |||
<pre> | |||
GRUB_TIMEOUT=5 | |||
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" | |||
GRUB_DEFAULT=saved | |||
GRUB_CMDLINE_LINUX="" | |||
GRUB_DISABLE_RECOVERY="true" | |||
GRUB_THEME="/boot/grub2/themes/system/theme.txt" | |||
</pre> | |||
{{admon/note|non-us keymaps and languages|Need to write docs on how to figure out the vconsole lang and keymap args}} | |||
Take the kernel args that we extracted before and insert them inside the quotes following '''GRUB_CMDLINE_LINUX'''. In this example, it would look like the following. Note that formatting has been slightly altered for the wiki - there should be no newlines in the text following '''GRUB_CMDLINE_LINUX'''. | |||
<pre> | |||
GRUB_TIMEOUT=5 | |||
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" | |||
GRUB_DEFAULT=saved | |||
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 | |||
rd.md=0 rd.dm=0 rd.lvm.lv=vg_test/lv_root root=/dev/mapper/vg_test-lv_root | |||
ro rd.lvm.lv=vg_test/lv_swap rhgb quiet" | |||
GRUB_DISABLE_RECOVERY="true" | |||
GRUB_THEME="/boot/grub2/themes/system/theme.txt" | |||
</pre> | |||
Now that we've migrated the required grub settings, we can wrap up by generating a new grub configuration using these new settings and symlinking this new configuration to {{filename|/etc/grub2-efi.cfg}}. | |||
<pre> | |||
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg | |||
ln -s /boot/efi/EFI/fedora/grub.cfg /etc/grub2-efi.cfg | |||
</pre> | |||
==== Updating the EFI boot entry ==== | |||
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: | |||
<pre> | <pre> | ||
efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l \EFI\redhat\grub.efi | efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l \EFI\redhat\grub.efi | ||
Line 148: | Line 203: | ||
</pre> | </pre> | ||
Now your system should have a working grub2-efi bootloader and it should be loaded when you reboot. | |||
== Cleaning Up Post Upgrade == | |||
{{admon/warning|Pending|This part of the documentation is still being written }} | |||
<!-- Some of the stuff from [http://fedorasolved.org/Members/fenris02/post_upgrade_cleanup this post upgrade cleanup guide] might be wise --> | |||
= Docs TODO = | |||
* 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 notes about how to use other repos or link to discussion/instructions |
Latest revision as of 14:40, 23 January 2013
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.
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.
What Does FedUp do?
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 and yum. More details are available in a blog post written by FedUp's primary author
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 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.
Frequently Asked Questions
Can I upgrade a Fedora 16 system with FedUp?
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.
How do I report issues that I find with upgrades?
The answer to this depends on the exact issue that you hit.
Issues with upgrade preparation
If you hit issues when using the FedUp client (
) before reboot, search for or file a bug against fedup using the version you are upgrading from.
fedup
Issues During Upgrade
If you hit issues after upgrade preparation and the initial reboot, search for or file a bug against
using the version you are upgrading to.
fedup-dracut
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 soon and linked to from here.
Does FedUp verify the software it runs or installs during upgrade?
This is a planned feature. See Bug 877623 for a status update.
Where can I ask Questions
For now, the best place to ask questions is probably #fedora-qa on Freenode IRC or the Fedora Test list.
How Can I Upgrade My System with FedUp?
As alluded to above, there are three parts to upgrading with FedUp - preparation, execution and cleanup.
Preparing for the Upgrade
- Do a full system update and reboot to ensure that any kernel changes are running
- Install
fedup
- Be sure to get the latest release, this may involve enabling updates-testing (put
--enablerepo=updates-testing
betweenyum
andinstall
on the command line)
- Be sure to get the latest release, this may involve enabling updates-testing (put
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.).
Network
Using a network source is the easiest method of upgrading and will pull in updates while upgrading - eliminating the potential issue if 40 has a newer kernel version than 40.
- Start the upgrade prep by executing following command
sudo fedup --network 18 --debuglog fedupdebug.log --instrepo http://dl.fedoraproject.org/pub/alt/qa/fedup/f18-RC4/<arch>/
- <arch> is the arch of the system that you are upgrading - either i386 or x86_64
- Once the preparations have completed, check the
fedupdebug.log
file if any errors show up in the output fromfedup-cli
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-18.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.
- Download the 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-18.iso
but it can be anwhere in the filesystem as long as you alter the path below to reflect the actual location of the ISO.
- For the sake of example, we will assume that the iso exists at
- Start the upgrade prep by executing the following command
- sudo fedup --iso /home/user/fedora-18.iso --debuglog=fedupdebug.log
- Once the preparations have completed, check the
fedupdebug.log
file if any errors show up in the output fromfedup-cli
Other Device
Optical drives and other mountable storage can also be used as a package source for upgrade preparations.
- 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.
- For the sake of example, we will assume that this source is mounted at
- Start the upgrade preparations by executing the following command
- sudo fedup --device /mnt/fedora --debuglog=fedupdebug.log
- Once the preparations have completed, check the
fedupdebug.log
file if any errors show up in the output fromfedup-cli
Executing the Upgrade
- Reboot the system if
fedup
has completed without error. - Once the system reboots, there should be a new entry in the GRUB menu titled
System Upgrade
.- Adding rd.upgrade.debugshell would be a decent idea
- Select the
System Upgrade
option from the GRUB menu - The system should boot into the upgrade process and a plymouth boot screen should be displayed
- If you press 'esc', a more detailed log of progress will be desplayed but if you switch back to the graphical progress indicator, it will remain at 0% for the remainder of the upgrade but that does not mean the upgrade has stopped. See Need section reference here once it's written
- Once the upgrade process has completed, the system will reboot and an option to boot Fedora 41 will be on the grub menu
GRUB Updates
Updating GRUB2 (BIOS systems)
- After upgrade, the grub2 you're booting from will still be the F17 version; upgrading must be done manually
- Follow the steps in this grub2 page to reinstall and update grub
Updating GRUB (UEFI systems)
Grub2 is not installed as part of the upgrade process, so you'll have to install it:
sudo yum install grub2-efi
Migrating Grub Configuration
Unfortunately, most boot settings are not migrated to grub2 without manual intervention. To migrate these settings, you will need to look the existing grub configuration to migrate settings. Open the /boot/efi/EFI/redhat/grub.conf
and find the most recent boot entry. The version numbers don't need to exactly match the example, just find the most recent one.
title Fedora (3.6.11-1.fc17.x86_64) root (hd0,2) kernel /vmlinuz-3.6.11-1.fc17.x86_64 rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 rd.md=0 rd.dm=0 KEYTABLE=us SYSFONT=True rd.lvm.lv=vg_test/lv_root root=/dev/mapper/vg_test-lv_root ro rd.lvm.lv=vg_test/lv_swap LANG=en_US.UTF-8 rhgb quiet initrd /initramfs-3.6.11-1.fc17.x86_64.img
We are not interested in all of the arguments following kernel
, mostly arguments which start with rd.
and a few other specific arguments. In the example listed above, we're interested in:
rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 rd.md=0 rd.dm=0 rd.lvm.lv=vg_test/lv_root root=/dev/mapper/vg_test-lv_root ro rd.lvm.lv=vg_test/lv_swap rhgb quiet
To migrate the configuration, open /etc/default/grub
with sudo or as root and paste the following template in:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_CMDLINE_LINUX="" GRUB_DISABLE_RECOVERY="true" GRUB_THEME="/boot/grub2/themes/system/theme.txt"
Take the kernel args that we extracted before and insert them inside the quotes following GRUB_CMDLINE_LINUX. In this example, it would look like the following. Note that formatting has been slightly altered for the wiki - there should be no newlines in the text following GRUB_CMDLINE_LINUX.
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12 rd.md=0 rd.dm=0 rd.lvm.lv=vg_test/lv_root root=/dev/mapper/vg_test-lv_root ro rd.lvm.lv=vg_test/lv_swap rhgb quiet" GRUB_DISABLE_RECOVERY="true" GRUB_THEME="/boot/grub2/themes/system/theme.txt"
Now that we've migrated the required grub settings, we can wrap up by generating a new grub configuration using these new settings and symlinking this new configuration to /etc/grub2-efi.cfg
.
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg ln -s /boot/efi/EFI/fedora/grub.cfg /etc/grub2-efi.cfg
Updating the EFI boot entry
Once the
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 /var/log/anaconda/anaconda.program.log and should end with a command similar to:
grub2-efi
efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l \EFI\redhat\grub.efi
Find the current boot number for fedora using efibootmgr
:
efibootmgr -v
You are looking for a line similar to:
Boot0004* Fedora HD(1,800,34800,6733749f-b42a-4b8c-a0de-5a1d3505f8af)File(\EFI\redhat\grub.efi)
The boot number in this example is 0004.
Remove the old boot entry using the following command (<boot number>) is the boot number you found above:
efibootmgr -b <boot number> -B
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:
sudo efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l '\EFI\fedora\grubx64.efi' -b <boot number>
Now your system should have a working grub2-efi bootloader and it should be loaded when you reboot.
Cleaning Up Post Upgrade
Docs TODO
- 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 notes about how to use other repos or link to discussion/instructions