How To Revert OS Patching On CentOS 8 / RHEL 8

0
Revert OS Patching On CentOS 8
Revert OS Patching On CentOS 8

In the previous post, we saw how to update CentOS 8 / RHEL 8 system to have the latest updates on your system. Rarely, the updates may break your system or application that is running on top of it.

In this case, you may need to revert the updated packages to the previous version.

In this post, we will see the steps to revert OS patching on CentOS 8 / RHEL 8.

Update History

The yum history command will list all activities you did with yum command, including the OS patching.

yum history
Update History
Update History

From the above output, you can see

ID 4: OS patching (Command line: update) as it has (I)nstall and (U)pdate actions of 55 packages.

ID 3: Kernel update (Command line: update -y kernel) (I)nstall action of 3 packages

You can also find out what were the packages got updated during the history ID 4 or 3 with the below command.

I am checking the information of the history ID 3.

yum history info 3

Output:

Transaction ID : 3
Begin time     : Wed 23 Oct 2019 04:50:02 AM EDT
Begin rpmdb    : 390:36e45bfafdb36c1b565f744db484c136e60d027c
End time       : Wed 23 Oct 2019 04:52:29 AM EDT (147 seconds)
End rpmdb      : 393:2dbf7c6498447e95a25b76af117b689bccd11b20
User           : root 
Return-Code    : Success
Releasever     : 8
Command Line   : update -y kernel
Packages Altered:
    Install kernel-4.18.0-80.11.2.el8_0.x86_64         @BaseOS
    Install kernel-core-4.18.0-80.11.2.el8_0.x86_64    @BaseOS
    Install kernel-modules-4.18.0-80.11.2.el8_0.x86_64 @BaseOS
[root@centos8 ~]# yum history info 4
Transaction ID : 4
Begin time     : Wed 23 Oct 2019 04:57:30 AM EDT
Begin rpmdb    : 393:2dbf7c6498447e95a25b76af117b689bccd11b20
End time       : Wed 23 Oct 2019 05:02:37 AM EDT (5 minutes)
End rpmdb      : 394:2263176203aedb3134fb7478167919e2cb60450b
User           : root 
Return-Code    : Success
Releasever     : 8
Command Line   : update
Packages Altered:
    Install  grub2-tools-efi-1:2.02-66.el8_0.1.x86_64            @BaseOS
    Upgrade  bash-4.4.19-8.el8_0.x86_64                          @BaseOS
    Upgraded bash-4.4.19-7.el8.x86_64                            @@System
    Upgrade  bind-export-libs-32:9.11.4-17.P2.el8_0.1.x86_64     @BaseOS
    Upgraded bind-export-libs-32:9.11.4-16.P2.el8.x86_64         @@System
    Upgrade  grub2-common-1:2.02-66.el8_0.1.noarch               @BaseOS
    Upgraded grub2-common-1:2.02-66.el8.noarch                   @@System

.     .     .
.     .     .

    Upgrade  sssd-nfs-idmap-2.0.0-43.el8_0.3.x86_64              @BaseOS
    Upgraded sssd-nfs-idmap-2.0.0-43.el8.x86_64                  @@System
    Upgrade  systemd-239-13.el8_0.5.x86_64                       @BaseOS
    Upgraded systemd-239-13.el8.x86_64                           @@System
    Upgrade  systemd-libs-239-13.el8_0.5.x86_64                  @BaseOS
    Upgraded systemd-libs-239-13.el8.x86_64                      @@System
    Upgrade  systemd-pam-239-13.el8_0.5.x86_64                   @BaseOS
    Upgraded systemd-pam-239-13.el8.x86_64                       @@System
    Upgrade  systemd-udev-239-13.el8_0.5.x86_64                  @BaseOS
    Upgraded systemd-udev-239-13.el8.x86_64                      @@System
    Upgrade  epel-release-8-6.el8.noarch                         @epel
    Upgraded epel-release-8-5.el8.noarch                         @@System
Scriptlet output:
   1 warning: /etc/shadow created as /etc/shadow.rpmnew

Likewise, you can see the information of other ID’s.

Revert Updates

Once you have identified the OS patching ID and Kernel update ID (Optional as most the time updated Kernel is installed along with OS patching), please go ahead to revert the update one by one.

Kernel

This step is not applicable if the Kernel was installed along with OS patching (yum update).

Use the yum history undo with 3 to revert the activities (remove kernel updates).

yum history undo 3

Output:

Last metadata expiration check: 1:24:58 ago on Wed 23 Oct 2019 05:19:07 AM EDT.
Undoing transaction 3, from Wed 23 Oct 2019 04:50:02 AM EDT
    Install kernel-4.18.0-80.11.2.el8_0.x86_64         @BaseOS
    Install kernel-core-4.18.0-80.11.2.el8_0.x86_64    @BaseOS
    Install kernel-modules-4.18.0-80.11.2.el8_0.x86_64 @BaseOS
Dependencies resolved.
============================================================================================================================
 Package                        Arch                   Version                                Repository               Size
============================================================================================================================
Removing:
 kernel                         x86_64                 4.18.0-80.11.2.el8_0                   @BaseOS                   0
 kernel-core                    x86_64                 4.18.0-80.11.2.el8_0                   @BaseOS                  57 M
 kernel-modules                 x86_64                 4.18.0-80.11.2.el8_0                   @BaseOS                  19 M

Transaction Summary
============================================================================================================================
Remove  3 Packages

Freed space: 76 M
Is this ok [y/N]: Y  << Press Y and Enter to revert Kernel
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                    1/1
  Erasing          : kernel-4.18.0-80.11.2.el8_0.x86_64                                                                 1/3
  Running scriptlet: kernel-4.18.0-80.11.2.el8_0.x86_64                                                                 1/3
  Erasing          : kernel-modules-4.18.0-80.11.2.el8_0.x86_64                                                         2/3
  Running scriptlet: kernel-modules-4.18.0-80.11.2.el8_0.x86_64                                                         2/3
  Running scriptlet: kernel-core-4.18.0-80.11.2.el8_0.x86_64                                                            3/3
  Erasing          : kernel-core-4.18.0-80.11.2.el8_0.x86_64                                                            3/3
  Running scriptlet: kernel-core-4.18.0-80.11.2.el8_0.x86_64                                                            3/3
  Verifying        : kernel-4.18.0-80.11.2.el8_0.x86_64                                                                 1/3
  Verifying        : kernel-core-4.18.0-80.11.2.el8_0.x86_64                                                            2/3
  Verifying        : kernel-modules-4.18.0-80.11.2.el8_0.x86_64                                                         3/3

Removed:
  kernel-4.18.0-80.11.2.el8_0.x86_64  kernel-core-4.18.0-80.11.2.el8_0.x86_64  kernel-modules-4.18.0-80.11.2.el8_0.x86_64

Complete!

Packages

Use the yum history undo with 4 to revert the activities (revert OS updates).

yum history undo 4

Output:

Last metadata expiration check: 1:38:10 ago on Wed 23 Oct 2019 05:19:07 AM EDT.
Undoing transaction 4, from Wed 23 Oct 2019 04:57:30 AM EDT
    Install  grub2-tools-efi-1:2.02-66.el8_0.1.x86_64            @BaseOS
    Upgrade  bash-4.4.19-8.el8_0.x86_64                          @BaseOS
    Upgraded bash-4.4.19-7.el8.x86_64                            @@System
    Upgrade  bind-export-libs-32:9.11.4-17.P2.el8_0.1.x86_64     @BaseOS
    Upgraded bind-export-libs-32:9.11.4-16.P2.el8.x86_64         @@System
    Upgrade  grub2-common-1:2.02-66.el8_0.1.noarch               @BaseOS
    Upgraded grub2-common-1:2.02-66.el8.noarch                   @@System
    Upgrade  grub2-pc-1:2.02-66.el8_0.1.x86_64                   @BaseOS
    Upgraded grub2-pc-1:2.02-66.el8.x86_64                       @@System
    Upgrade  grub2-pc-modules-1:2.02-66.el8_0.1.noarch           @BaseOS

.     .     .
.     .     .

    Upgrade  epel-release-8-6.el8.noarch                         @epel
    Upgraded epel-release-8-5.el8.noarch                         @@System
Dependencies resolved.
============================================================================================================================
 Package                                 Arch                Version                             Repository            Size
============================================================================================================================
Removing:
 grub2-tools-efi                         x86_64              1:2.02-66.el8_0.1                   @BaseOS              1.9 M
Downgrading:
 bash                                    x86_64              4.4.19-7.el8                        BaseOS               1.5 M
 bind-export-libs                        x86_64              32:9.11.4-16.P2.el8                 BaseOS               1.1 M
 grub2-common                            noarch              1:2.02-66.el8                       BaseOS               880 k
 grub2-pc                                x86_64              1:2.02-66.el8                       BaseOS                35 k
 grub2-pc-modules                        noarch              1:2.02-66.el8                       BaseOS               899 k

.     .     .
.     .     .

 systemd                                 x86_64              239-13.el8                          BaseOS               3.4 M
 systemd-libs                            x86_64              239-13.el8                          BaseOS               550 k
 systemd-pam                             x86_64              239-13.el8                          BaseOS               221 k
 systemd-udev                            x86_64              239-13.el8                          BaseOS               1.3 M
 epel-release                            noarch              8-5.el8                             extras                22 k

Transaction Summary
============================================================================================================================
Remove      1 Package
Downgrade  50 Packages

Total download size: 46 M
Is this ok [y/N]: Y  << Press Y and Enter to Revert Updates
Downloading Packages:
(1/50): bash-4.4.19-7.el8.x86_64.rpm                                                        966 kB/s | 1.5 MB     00:01
(2/50): grub2-common-2.02-66.el8.noarch.rpm                                                 530 kB/s | 880 kB     00:01
(3/50): grub2-pc-2.02-66.el8.x86_64.rpm                                                     537 kB/s |  35 kB     00:00
(4/50): bind-export-libs-9.11.4-16.P2.el8.x86_64.rpm                                        640 kB/s | 1.1 MB     00:01
(5/50): grub2-tools-2.02-66.el8.x86_64.rpm                                                  3.7 MB/s | 1.9 MB     00:00
(6/50): grub2-pc-modules-2.02-66.el8.noarch.rpm                                             1.4 MB/s | 899 kB     00:00
(7/50): grub2-tools-minimal-2.02-66.el8.x86_64.rpm                                          2.0 MB/s | 196 kB     00:00

.     .     .
.     .     .

(46/50): systemd-pam-239-13.el8.x86_64.rpm                                                  1.6 MB/s | 221 kB     00:00
(47/50): selinux-policy-targeted-3.14.1-61.el8.noarch.rpm                                   3.7 MB/s |  15 MB     00:04
(48/50): python3-libs-3.6.8-1.el8.0.1.x86_64.rpm                                            1.6 MB/s | 7.9 MB     00:04
(49/50): systemd-udev-239-13.el8.x86_64.rpm                                                 1.7 MB/s | 1.3 MB     00:00
(50/50): epel-release-8-5.el8.noarch.rpm                                                     77 kB/s |  22 kB     00:00
----------------------------------------------------------------------------------------------------------------------------
Total                                                                                       4.1 MB/s |  46 MB     00:11
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                    1/1
  Running scriptlet: bash-4.4.19-7.el8.x86_64                                                                           1/1
  Downgrading      : bash-4.4.19-7.el8.x86_64                                                                         1/101
  Running scriptlet: bash-4.4.19-7.el8.x86_64                                                                         1/101
  Downgrading      : platform-python-3.6.8-1.el8.0.1.x86_64                                                           2/101
  Running scriptlet: platform-python-3.6.8-1.el8.0.1.x86_64                                                           2/101
  Downgrading      : python3-libs-3.6.8-1.el8.0.1.x86_64                                                              3/101
  Downgrading      : grub2-common-1:2.02-66.el8.noarch                                                                4/101

.     .     .
.     .     .

  Verifying        : epel-release-8-5.el8.noarch                                                                     99/101
  Verifying        : epel-release-8-6.el8.noarch                                                                    100/101
  Verifying        : grub2-tools-efi-1:2.02-66.el8_0.1.x86_64                                                       101/101

Downgraded:
  bash-4.4.19-7.el8.x86_64                                 bind-export-libs-32:9.11.4-16.P2.el8.x86_64
  grub2-common-1:2.02-66.el8.noarch                        grub2-pc-1:2.02-66.el8.x86_64
  grub2-pc-modules-1:2.02-66.el8.noarch                    grub2-tools-1:2.02-66.el8.x86_64
  grub2-tools-extra-1:2.02-66.el8.x86_64                   grub2-tools-minimal-1:2.02-66.el8.x86_64
  initscripts-10.00.1-1.el8.x86_64                         iptables-1.8.2-9.el8.x86_64
  iptables-ebtables-1.8.2-9.el8.x86_64                     iptables-libs-1.8.2-9.el8.x86_64
  kernel-tools-4.18.0-80.el8.x86_64                        kernel-tools-libs-4.18.0-80.el8.x86_64
  kmod-25-11.el8.x86_64                                    kmod-libs-25-11.el8.x86_64
  kpartx-0.7.8-7.el8.x86_64                                libdnf-0.22.5-4.el8.x86_64
  libnfsidmap-1:2.3.3-14.el8.x86_64                        libsss_autofs-2.0.0-43.el8.x86_64
  libsss_certmap-2.0.0-43.el8.x86_64                       libsss_idmap-2.0.0-43.el8.x86_64
  libsss_nss_idmap-2.0.0-43.el8.x86_64                     libsss_sudo-2.0.0-43.el8.x86_64
  microcode_ctl-4:20180807a-2.el8.x86_64                   p11-kit-0.23.14-4.el8.x86_64
  p11-kit-trust-0.23.14-4.el8.x86_64                       platform-python-3.6.8-1.el8.0.1.x86_64
  python3-hawkey-0.22.5-4.el8.x86_64                       python3-libdnf-0.22.5-4.el8.x86_64
  python3-libs-3.6.8-1.el8.0.1.x86_64                      python3-perf-4.18.0-80.el8.x86_64
  python3-rpm-4.14.2-9.el8.x86_64                          rpm-4.14.2-9.el8.x86_64
  rpm-build-libs-4.14.2-9.el8.x86_64                       rpm-libs-4.14.2-9.el8.x86_64
  rpm-plugin-selinux-4.14.2-9.el8.x86_64                   rpm-plugin-systemd-inhibit-4.14.2-9.el8.x86_64
  selinux-policy-3.14.1-61.el8.noarch                      selinux-policy-targeted-3.14.1-61.el8.noarch
  setup-2.12.2-1.el8.noarch                                sssd-client-2.0.0-43.el8.x86_64
  sssd-common-2.0.0-43.el8.x86_64                          sssd-kcm-2.0.0-43.el8.x86_64
  sssd-nfs-idmap-2.0.0-43.el8.x86_64                       systemd-239-13.el8.x86_64
  systemd-libs-239-13.el8.x86_64                           systemd-pam-239-13.el8.x86_64
  systemd-udev-239-13.el8.x86_64                           epel-release-8-5.el8.noarch

Removed:
  grub2-tools-efi-1:2.02-66.el8_0.1.x86_64

Complete!

Reboot the system.

reboot

Verify

Kernel

Very that the system is booted with the old kernel using the below command.

uname -a

Output:

Linux centos8.itzgeek.local 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Packages

Compare the version of the package and ensure the packages are downgraded with rpm -qa <package_name>.

Conclusion

That’s All. I hope this post helped you to revert OS patching on CentOS 8 / RHEL 8. Please share your feedback in the comments section.

You might also like