Improve wording
This commit is contained in:
parent
f69cbfb19e
commit
33fea57879
1 changed files with 16 additions and 14 deletions
|
@ -14,7 +14,7 @@ tags:
|
|||
|
||||
I have installed Fedora on my computer 3 or 4 years ago. Since this installation, I have installed many packages and upgraded it every 6 months. Unfortunately, Gnome Software has never worked for me, and I never took the time to debug it. Like many people, I am using the old method with `dnf-system-upgrade`, which worked pretty well. But this time, I had a segfault on dnf during the offline upgrade. The only information I got was the following lines:
|
||||
|
||||
```
|
||||
```raw
|
||||
kernel: show_signal_msg: 7 callbacks suppressed
|
||||
kernel: dnf[846]: segfault at 8 ip 00007f39b860f724 sp 00007ffd00588520 error 4 in libc-2.25.so[7f39b8586000+1cb000]
|
||||
kernel: audit: type=1701 audit(1511598827.366:96): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=system_u:system_r:rpm_t:s0 pid=846 comm="dnf" exe="/usr/libexec/s
|
||||
|
@ -27,15 +27,15 @@ Just after the segfault, my computer rebooted on Fedora 26.
|
|||
|
||||
## How dnf-system-upgrade works
|
||||
|
||||
*Some information presented here could not be totally accurate. If you have a doubt, please follow the links.*
|
||||
*Some information presented here could be not totally accurate. If you have a doubt, please follow the links.*
|
||||
|
||||
`dnf-system-upgrade` use a feature of systemd described here: [Implementing Offline System Updates](https://www.freedesktop.org/software/systemd/man/systemd.offline-updates.html).
|
||||
By creating a symlink named `/system-update`, at the next reboot systemd will boot to a specific target named `system-update.target`
|
||||
|
||||
But when will this symlink created ? When you run the following command:
|
||||
|
||||
```
|
||||
# dnf system-upgrade reboot
|
||||
```raw
|
||||
dnf system-upgrade reboot
|
||||
```
|
||||
|
||||
We can see [in the source of the plugin](https://github.com/rpm-software-management/dnf-plugins-extras/blob/master/plugins/system_upgrade.py) that a symlink pointing to a dnf folder is created:
|
||||
|
@ -60,7 +60,7 @@ dnf-system-upgrade.service fwupd-offline-update.service packagekit-offline-upd
|
|||
We are specifically interested by `dnf-system-upgrade.service` which basically run the following command:
|
||||
|
||||
```raw
|
||||
# dnf --releasever=27 system-upgrade upgrade
|
||||
dnf --releasever=27 system-upgrade upgrade
|
||||
```
|
||||
|
||||
|
||||
|
@ -69,19 +69,21 @@ At the end of this script, the symlink `/system-update` is destroyed and the com
|
|||
## Upgrading online to bypass the bug
|
||||
|
||||
I didn't have any idea to debug this segfault in the offline mode.
|
||||
So I searched a way to run this command in an online system.
|
||||
So I searched a way to run this command on an online system.
|
||||
If the command segfaults, I'll have some tools to investigate it.
|
||||
If the command works, I'll have an upgraded system.
|
||||
In my case, everything went well.
|
||||
|
||||
|
||||
Before typing any command, you must know that this tool is not intended to be run this way.
|
||||
It may break your Fedora installation or kill your family.
|
||||
You really should run all your commands in a virtual terminal, as if Gnome crashes during the install, it will not kill dnf.
|
||||
You may break your Fedora installation or kill your family.
|
||||
You really should run all your commands in a virtual terminal as it will not kill dnf if Gnome crashes during the install.
|
||||
|
||||
First, you must have downloaded the update:
|
||||
|
||||
```
|
||||
# dnf upgrade --refresh
|
||||
# dnf system-upgrade download --releasever=27
|
||||
```raw
|
||||
dnf upgrade --refresh
|
||||
dnf system-upgrade download --releasever=27
|
||||
```
|
||||
|
||||
*For more information, you can refer to the article [Upgrading Fedora 26 to Fedora 27](https://fedoramagazine.org/upgrading-fedora-26-fedora-27/)*
|
||||
|
@ -108,13 +110,13 @@ Then, you will need to update dnf-system-upgrade configuration stored in `/var/l
|
|||
You must create the `/system-update` symlink, otherwise the upgrade command will fail:
|
||||
|
||||
```raw
|
||||
# ln -s /var/lib/dnf/system-upgrade /system-update
|
||||
ln -s /var/lib/dnf/system-upgrade /system-update
|
||||
```
|
||||
|
||||
And finally, you can run the upgrade command:
|
||||
|
||||
```raw
|
||||
# dnf --releasever=27 system-upgrade upgrade
|
||||
dnf --releasever=27 system-upgrade upgrade
|
||||
```
|
||||
|
||||
Your computer will automatically reboot at the end. Now you'll have either a working Fedora 27 or a borken Linux distribution. Good luck and have fun !
|
||||
Your computer will automatically reboot at the end. Now you'll have either a working Fedora 27 or a broken Linux distribution. Good luck and have fun !
|
||||
|
|
Loading…
Reference in a new issue