From Fedora Project Wiki

(→‎Known Issues: adding 873459 to known issues)
(→‎Enabling the Upgrade Shell: adding some more systemd related args for debugging)
Line 131: Line 131:
Under the heading "System Upgrade":
Under the heading "System Upgrade":
* add the following to the end of the kernel boot args <pre>rd.upgrade.debugshell</pre>
* add the following to the end of the kernel boot args <pre>rd.upgrade.debugshell</pre>
* These kernel boot params can also be useful for debugging <pre>rd.debug systemd.log_level=debug console=tty0 console=ttyS0,115200n8</pre>
* These kernel boot params can also be useful for debugging <pre>rd.debug systemd.log_target=console systemd.jounald.forward_to_console=1 systemd.log_level=debug console=tty0 console=ttyS0,115200n8</pre>


== Running the Upgrade ==
== Running the Upgrade ==

Revision as of 18:40, 13 November 2012

Warning.png
Early Code
Fedup is still under active development and may still have major bugs. Feel free to try using it but at the moment, upgrading a F17 install that you care about is not recommended
Note.png
Draft Page
This page is still a bit of a draft and will be changing over time, if you find something wrong; please fix it or tell someone

Overview

Fedup is a new tool for upgrading Fedora installations that is replacing preupgrade and the DVD methods of upgrading that have been used in previous Fedora releases. It utilizes systemd for much of the upgrade functionality and will eventually be able to source packages from a DVD and use the regular install repos instead of needing a specially created side repo.

State

Fedup is not complete but the following parts are currently working:

  • Network upgrade using custom side repo

The instructions here involve the use of an unofficial side repo which contains a kernel and the upgrade initramfs needed to complete the upgrade. The process around how this will work once F18 beta and final are released has not yet been determined.

Testing and Filing Bugs

Since fedup is still very young, there may still be bugs in the code. If you run into problems, please file bugs in bugzilla under the 'fedup' component.

Known Issues

At the moment, there are several known issues with fedup.

Upgraded system does not reboot if a kernel upgrade is part of the upgrade

Bug 873459

If a kernel upgrade is included as part of the package set to upgrade (which shouldn't happen until the f18 kernel from updates-testing hits stable), the upgraded system doesn't boot due to kernel panic. The error messages shown indicate that the kernel is unable to load the initramfs.

fedup giving grubby backtrace

Bug 872088 Sometimes, fedup will exit with the following backtrace:

setting up system for upgrade
Traceback (most recent call last):
  File "/bin/fedup-cli", line 267, in <module>
    main(args)
  File "/bin/fedup-cli", line 244, in main
    prep_boot(kernel, initrd, bootloader=args.bootloader)
  File "/usr/lib/python2.7/site-packages/fedup/download.py", line 330, in prep_boot
    modify_bootloader(kernel, initrd)
  File "/usr/lib/python2.7/site-packages/fedup/download.py", line 300, in modify_bootloader
    default = bootloader.default_entry()
  File "/usr/lib/python2.7/site-packages/fedup/grubby.py", line 74, in default_entry
    return self.get_entry(self.default_index())
  File "/usr/lib/python2.7/site-packages/fedup/grubby.py", line 50, in get_entry    out = self._grubby("--info", index)
  File "/usr/lib/python2.7/site-packages/fedup/grubby.py", line 45, in _grubby
    return check_output(cmd + [str(a) for a in args], stderr=PIPE)
  File "/usr/lib64/python2.7/subprocess.py", line 544, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['grubby', '--info', '-3']' returned non-zero exit status 1

This has been fixed in git but the fix hasn't been pushed to the fedora package

TypeError: argument of type 'NoneType' is not iterable

Bug 872899.

If the --instrepo arg isn't used, fedup will exit with the following traceback:

Traceback (most recent call last):
  File "/bin/fedup-cli", line 253, in <module>
    args = parse_args()
  File "/bin/fedup-cli", line 179, in parse_args
    if '://' in args.instrepo:
TypeError: argument of type 'NoneType' is not iterable

At the moment, fedup requires the --isntrepo argument in order to find the kernel and initramfs needed for the upgrade process. This will change once the initramfs changes make it into the regular tree but until that happens, the --instrepo command will be required.

Requested Information in Filed Bugs

If you do file a bug, please include the following information:

  • upgrade.out from the upgraded system
    • /var/log/upgrade.out from the booted system
    • /sysroot/var/log/upgrade.out from the dracut shell
  • system log from the upgraded system
  • fedupdebug.log from running fedup-cli
    • should be in the same directory that you ran fedup from

Where to ask questions

The following are good places to ask questions about upgrades:

If you really need to find someone specifc, you can try the following people, but remember that we're not always online and are often busy:

Doing an Upgrade

This is the current process for doing an upgrade from F17 to F18 using fedup. This documentation will change over time as the process evolves.

Note.png
sudo or root
The commands listed below use sudo but could also be run as root

It is possible to install fedup on an F17 system using either git or the fedora package (in updates-testing at the time of this writing). Choose one method or the other, preferably using git only if there are problems with using the fedora package.

Preparation With Fedora Package

On an f17 system, run the follwoing command:

sudo yum --enablerepo=updates-testing install fedup

Preparation Using Git

On an f17 system, make sure that all of the dependencies are installed:

sudo yum install python-devel make

Update the F17 system using yum, packagekit or however you prefer to update but don't use updates-testing

sudo yum --disablerepo=updates-testing update

Clone the fedup git repo

git clone git://github.com/wgwoods/fedup.git

Install fedup on the F17 system

sudo make install

Running Fedup

Using the fedup-cli command, prepare the upgrade using the following command:

Important.png
Using the correct arch
Make sure that you replace <insert-arch-here> below with the arch that you're upgrading - either x86_64 or i386
sudo fedup-cli --network 18 --debuglog fedupdebug.log --instrepo=http://tflink.fedorapeople.org/fedup/f18-upgrade/<insert-arch-here>/

At this point, the F17 system is pretty much ready for upgrade. However, if you want to be able to montor the upgrade process or otherwise interact with the system during the upgrade, you need to enable the upgrade debug shell.

Enabling the Upgrade Shell

In order to enable the Upgrade shell, you need to edit the grub config file (/boot/grub2/grub.cfg on BIOS systems, /boot/EFI/redhat/grub.conf on UEFI systems)

Under the heading "System Upgrade":

  • add the following to the end of the kernel boot args
    rd.upgrade.debugshell
  • These kernel boot params can also be useful for debugging
    rd.debug systemd.log_target=console systemd.jounald.forward_to_console=1 systemd.log_level=debug console=tty0 console=ttyS0,115200n8

Running the Upgrade

Once you reboot, there will be a 'System Upgrade' boot option at the grub prompt. Note that it is not the default and will need to be selected manually in order for the upgrade process to continue.

If all goes as it should, you might see a few boot messages but will eventually see the fedup plymouth theme Insert screenshot here

Note.png
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

If you enabled the upgrade debug shell, you can access that by switching to VT2 (ctl-alt-F2). Note that you won't be able to access the debug shell until after the upgrade process has started, so you'll want to wait a minute or two before switching.

Once you've switched to VT2, you should see the dracut prompt:

dracut#

In order to get into the actual upgrade debug shell, you may need to exit the currently running shell (another will start up right afterwards) so that you can access all the binaries present in the initramfs

exit

To view the upgrade progress, use:

cat /sysroot/var/log/upgrade.out

If you want to see the system logs, use journalctl

journalctl -a -o cat

Post Upgrade

Once the upgrade process is complete, the system will automatically reboot. At this time, you will still be running a kernel from F17 due to repository status but the system should mostly work.