Upgrading CentOS From 7 To 8

Home » CentOS » Upgrading CentOS From 7 To 8
CentOS 9 Comments

Hi,

I’m doing some tests of upgrading CentOS from 7 to 8 reading this step-by-step guide: https://netshopisp.medium.com/how-to-upgrade-linux-serveCentOS-7-to-CentOS-8-ec2db96a189b

I’m trying this upgrade in a VM, so I can save “snapshots” and restart in a past saved point. However, all my test ends wrong, exacly in Step 4 when I run “rpm -e `rpm -q kernel`”. Then, systems says that some packages are kernel dependencies. After I remove that dependencies, I can’t remove kernel…

Anybody has tested process upgrade from 7 to 8?

Thanks.

9 thoughts on - Upgrading CentOS From 7 To 8

  • It’s not supported. RH has a method that sometimes works for RHEL, but there is no safe CentOS way to do a major upgrade. You need to reinstall the OS and migrate your applications.


    J Martin Rushton MBCS

  • +1 The system “binary clone” of which CentOS is (or was rather) is not designed to be “upgraded”. The routine way is: install new release, copy all accounts, and data from old system to it, install services, configure them to a degree possible close to what was on old system.

    This horse have been beaten to death. The problem someone asking this is a consequence it people not doing search first (I for one use duckduckgo), and reading all search reveals with open eyes, not picking something to one’s liking. Like: I want to do an upgrade. No matter all search shows is: “install new release,…”. I did find one post about upgrade. But why it doesn’t work?! Just read any of other posts about upgrade, saying to the effect: it doesn’t, shouldn’t work, and going into various lengts of explaining why.

    I know what I said doesn’t make pleasant reading, but it hopefully will help someone with “modus operandi”.

    Valeri


    ++++++++++++++++++++++++++++++++++++++++
    Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
    ++++++++++++++++++++++++++++++++++++++++

  • El 29/9/21 a las 15:24, Gestió Servidors escribió:

    Me!, some worked, Others no. It’s easier in machines without a GUI, but failed without it also. A few got “upgraded”. Unable to say why ones worked and others no.

  • That’s the base problem. There is no reliable way to know which systems and installed software will work through an upgrade. So, you can do all the work of attempting an upgrade that will likely fail and still have to end up doing a fresh install and migration anyway. Might as well have saved all the time and effort and just started with the migration in the first place.

  • The way we did in place upgrades from CentOS 6 to 7 for our network appliance VMs:

    1. Take a backup of our appliance (database, settings, uploads, etc.). Store the backup on a separate partition/volume.
    2. Copy the CentOS 7 Minimal .iso, with our added packages, to the backup partition/volume (disk.iso in the below code).
    3. Copy the initrd and vmlinuz images to the boot partition (cp loop/isolinux/vmlinuz loop/isolinux/initrd.img /boot/).
    4. Backup the current GRUB config (cp /boot/grub/grub.conf /boot/grub/grub.conf.bakupgrade).
    5. Copy our custom kickstart file to the boot partition/volume.
    6. Drop the upgrade GRUB menu config on the boot partition/volume.

    “`
    default=0
    timeout=0
    serial –unit=0 –speed=9600
    terminal –dumb –timeout=5 serial console

    title upgrade
    root (hd0,0)
    kernel vmlinuz rd.lvm=1 rd.md=1 inst.ks=hd:/dev/${disk_device}1://ks.cfg inst.repo=hd:/dev/mapper/VolGroup-lv_backup://disk.iso inst.sshd inst.cmdline inst.noninteractive inst.noshell inst.headless net.ifnames=0 selinux=0 ip=dhcp ksdevice=eth0 vga=792 modprobe.blacklist=floppy consoleblank=0 biosdevname=0 console=tty0 console=ttyS0,115200n8
    initrd initrd.img
    “`

    ${disk_device} can be found using:

    “`
    disk_device=$(lsblk | grep disk | grep -e ‘^[h,s,v]da’ -e ‘xvda’ -e ‘nvme0n1’ | awk ‘{print $1}’ | head -1)
    “`

    I can’t guarantee the LVM route will work with CentOS 8, we had to use CentOS 7.3’s LiveOS image to do this, as after that version the ability to access the .iso on a LVM disappeared (I think it was an unintended feature of 7.3 and older).

    Gregory Young | Senior Developer/Systems Engineer | N-able

     [EXTERNAL] This email originated from outside of the organization.

    Hi,

    I’m doing some tests of upgrading CentOS from 7 to 8 reading this step-by-step guide: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnetshopisp.medium.com%2Fhow-to-upgrade-linux-serveCentOS-7-to-CentOS-8-ec2db96a189b&data=04%7C01%7Cgregory.young%40n-able.com%7C72def1d48a9046040eaa08d9834c7835%7C6324f4fb86ee4493ba16c819a916b487%7C1%7C0%7C637685187277163526%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=OkhDdiT29HzHE62C6AdI26qJ2f2YtCC9p0rH4vUbwuo%3D&reserved=0

    I’m trying this upgrade in a VM, so I can save “snapshots” and restart in a past saved point. However, all my test ends wrong, exacly in Step 4 when I run “rpm -e `rpm -q kernel`”. Then, systems says that some packages are kernel dependencies. After I remove that dependencies, I can’t remove kernel…

    Anybody has tested process upgrade from 7 to 8?

    Thanks.

  • That specific step is probably useless. Installing new kernels for CentOS8 will sooner or later remove older kernels coming form C7. If you really want to do this manually you could specify the version on your “rpm -e” command.

    If you are not ready to tweak the process a bit while upgrading and just expect a straightforward list of commands, well, as others have explained, there is no guaranteed script or method. If instead you have enough familiarity with the system to work around the obstacles,
    “impossible” things can often be done: for example, years ago I’ve managed to upgrade a Fedora 16 from i386 to x86_64, and everybody was swearing it was impossible to do.

    Regards.


    Roberto Ragusa mail at robertoragusa.it

  • One problem which could show up here is that kernel packages have changed/splitted and therefore things are more complicated. At least that’s what has happened in the past, don’t know about 7->8.

    I can confirm that because I also migrated a server from i386 to x86_64 in place. That was with an old RHEL release.

    I don’t remember exactly how I did it but I think I only used rpm for it, no yum.

    Unfortunately upgrading complex systems is still a lot of work these days, no matter what all the cloud experts try to tell you :-)

    Simon

  • There is no reason to do an in-place upgrade. It is just too risky.

    When you are going to do a major OS upgrade, one huge major issue is your actual data may not be usable as is on the new system and will require changes.

    This quite frequently happens with databases, either mysqlmMariadb or PostgreSQL. It happens with php based scripts. It happens iwth major apache configurations.

    It happens to a lesser extent with many other executable program configurations (samba configurations, for example).

    So, while you MIGHT be able to find a proper binary rpm to replace the actual running programs, the configuration files for all these binaries from the old system are not going to work and each one most likely will require individual changes.

    If you do an in-place upgrade, none of your services are likely going to start. That is why in every major upgrade I have ever conducted, I did so on newer installs while still running the previous version until I
    could duplicate everything working on new machine. Once everything is working and on the new machine and I know HOW and have developed steps to convert the data and configurations, THEN I convert anything newer than what i have already running .. and move that over to working system.

    This is by far the safest and cleanest way to migrate. It is the only way I would ever do it with my own data / systems and how I did do it for many many years as a system administrator.

  • I also want to point out .. CentOS Linux 8 is not what you want to upgrade to. CentOS Linux 8 has an EOL of 31 Dec 2021. If you want to upgrade to something CentOS 8 .. you will want to upgrade to CentOS
    Stream 8.

    If you don’t want to use CentOS Stream, and if you don’t want to use RHEL (you can now do that for up to 16 machines for free .. see the RHEL
    licensing for details) .. then there are any number of other options. This isn’t really the list to discuss how to use the other distros. Those distros all have lists and resources to discuss how to make a transition.

    But absolutely do not convert to CentOS Linux 8 at this point.

    CentOS Linux 7 will continue to be supported until 2024 June 30.