Error message

  • No file could be found.
  • Error retrieving file.

How to convert from CentOS Linux or Oracle Linux to RHEL

Updated -

This document provides instructions on how to convert your operating system from a different Linux distribution, namely CentOS Linux or Oracle Linux, to Red Hat Enterprise Linux (RHEL). The conversion is performed by the Convert2RHEL utility, which is available on GitHub.

Convert2RHEL is currently unsupported by Red Hat.

We recommend that you seek the support of Red Hat Consulting services to ensure that the conversion process is smooth.

The Red Hat packages installed as part of a successfully converted system are automatically eligible for Red Hat support.

Red Hat support may not be provided for the third-party packages that are left unchanged during the conversion process. See the Red Hat policy on supporting third-party software.

If you encounter any issues with the Convert2RHEL utility, file an issue in GitHub.

How OS conversion works

The automated conversion process is performed on a running system. The Convert2RHEL utility replaces all RPM packages from the original Linux distribution by their RHEL version. At the end of the process, it is necessary to restart the system to boot the RHEL kernel.

Packages that are available only in the original distribution and do not have corresponding counterparts in RHEL repositories, or third-party packages, which originate neither from the original Linux distribution nor from RHEL, are not affected by the conversion.

Available conversion paths

Currently, it is possible to convert your systems from the following Linux distributions and architectures to the corresponding major version of RHEL:

Source OS Target OS Architecture
CentOS Linux 8 RHEL 8 64-bit Intel
CentOS Linux 7.7 and later RHEL 7 64-bit Intel
CentOS Linux 6 RHEL 6 64-bit Intel
Oracle Linux 8 RHEL 8 64-bit Intel
Oracle Linux 7 RHEL 7 64-bit Intel
Oracle Linux 6 RHEL 6 64-bit Intel

RHEL 6 will exit the Maintenance Support 2 Phase of its life cycle on November 30, 2020. If you are unable to upgrade to RHEL 7 or upgrade to RHEL 8 after the conversion, and require continued maintenance for RHEL 6 after this date, we recommend that you purchase the Extended Life Cycle Support Add-on (ELS).

Conversions from CentOS Stream to RHEL are not currently possible.

Certain system setups are not currently supported for conversion. For more information, see Known Issues.


  • Back up your system and verify that you are able to restore it.
  • Install the Convert2RHEL utility for the appropriate major version of the OS:

    # yum install -y
    # yum install -y
    # yum install -y

    All Convert2RHEL dependencies are available in standard CentOS Linux/Oracle Linux repositories except CentOS Linux 6, which has reached end of life. CentOS Linux 6 repositories are archived in the Vault. Reconfigure your CentOS Linux 6 repositories to the Vault to make Convert2RHEL dependencies available.

  • Ensure that you have an access to RHEL packages through one of the following:

    • Red Hat Content Delivery Network (CDN) through Red Hat Subscription Manager (RHSM). You must have a Red Hat account and an appropriate RHEL subscription to access RHSM. Note that the OS will be converted to the latest minor version of RHEL for the appropriate major version.
    • Custom repositories configured in the /etc/yum.repos.d/ directory and pointing, for example, to RHEL ISO, FTP, or HTTP. Use custom repositories for systems that can connect to only local networks and cannot therefore access Red Hat CDN through RHSM. Note that the OS will be converted to the version of RHEL provided by these repositories. Make sure that the RHEL minor version is the same or later than the original OS minor version to prevent downgrading and potential conversion failures. See instructions on how to configure a repository.

    RHEL 8 content is distributed through two default repositories, BaseOS and AppStream. If you are accessing RHEL packages through custom repositories, you must configure both default repositories for a successful conversion. When running the Convert2RHEL utility, make sure to enable both repositories using the --enablerepo option. For more information about RHEL 8 repositories, see Considerations in adopting RHEL 8.

  • Recommended: Update packages from the original OS to the latest version that is available in the repositories accessible from the system, and reboot the system:

    # yum update -y
    # reboot

    Without performing this step, the rollback feature will not work correctly, and exiting the conversion in any phase may result in a dysfunctional system.

Converting the system

  1. Start Convert2RHEL.
    You can use Convert2RHEL with either RHSM or custom repositories.

    • Using RHSM:
    # convert2rhel --username <username> --password <password> --pool <pool_id>

    Replace username and password with your Red Hat Account credentials. Replace pool_id with the pool ID of the subscription that you want to attach to the system. If you do not know the pool ID, omit the --pool option to generate a list of all subscriptions available for the account.

    • Using custom repositories:
    # convert2rhel --disable-submgr --enablerepo <RHEL_RepoID1> --enablerepo <RHEL_RepoID2> --debug

    Replace RHEL_RepoID with your custom repository configured in the /etc/yum.repos.d/ directory, for example, rhel-7-server-rpms or rhel-8-baseos and rhel-8-appstream.

    To display all available options, use the -h, --help option:

    # convert2rhel -h
  2. Before Convert2RHEL starts replacing packages from the original distribution with RHEL packages, the following warning message is displayed:

    The tool allows rollback of any action until this point. 
    By continuing all further changes on the system will need to be reverted manually by the user, if necessary.

    Changes made by Convert2RHEL up to this point can be automatically reverted. Confirm that you wish to proceed with the conversion process.

  3. Wait until Convert2RHEL installs the RHEL packages.

  4. If you used custom repositories for the conversion, subscribe and update your RHEL system:

    • Install the subscription-manager command line utility:
    # yum install subscription-manager -y
    # yum update -y
  5. At this point, the system still runs with the original distribution kernel loaded in RAM. Reboot the system to boot into the newly installed RHEL kernel.

    # reboot
  6. Remove third-party packages from the original OS that remained unchanged (typically packages that do not have a RHEL counterpart). To get a list of such packages, use:

    # yum list extras --disablerepo="*" --enablerepo=<RHEL_RepoID>
  7. If necessary, reconfigure system services after the conversion.



The Convert2RHEL utility stores the convert2rhel.log file in the /var/log/convert2rhel/ directory. Its content is identical to what is printed to the standard output.

The output of the rpm -Va command, which is run automatically unless the --no-rpm-va option is used, is stored in the /var/log/convert2rhel/rpm_va.log file for debugging purposes.


The Convert2RHEL utility provides a limited rollback functionality. If the conversion is cancelled by the user or if it fails, the utility performs a rollback of changes made during the conversion process under the following conditions:

  • Only changes performed until Convert2RHEL starts replacing packages from the original distribution with RHEL packages can be reverted. This moment is indicated by the warning message:

    The tool allows rollback of any action until this point. 
    By continuing all further changes on the system will need to be reverted manually by the user, if necessary.

    followed by a question whether you wish to continue with the process.

  • Access to repositories providing packages from the original distribution is required, especially to the base repository, otherwise Convert2RHEL will be unable to restore the system to the original state even if the tool execution is stopped in the early stages of the conversion. That is because Convert2RHEL removes certain packages during the conversion process and needs to preemptively download them from the original repository for the case of a rollback.

  • A rollback is feasible only on a system where all packages from the original OS are updated to the latest version that is available in the repositories accessible from the system. Therefore use the yum update command before starting the conversion process.

NOTE: If the -y option is used, the question indicating the moment after which the automated rollback is no longer possible is skipped.

WARNING: If the conversion process is cancelled or fails after Convert2RHEL has started the package replacement phase, the system can become dysfunctional. In such a case, manual fixes are needed. Please contact Red Hat Consulting services for help.

Known issues

  • UEFI-based systems cannot currently be converted to RHEL. (BZ#1899314)
  • The conversion fails if any files are mounted directly to the /mnt/ directory or if the /sys/ directory is mounted as read-only. (BZ#1887513)

Obtaining support

Convert2RHEL is currently not supported by Red Hat.

To report a bug in Convert2RHEL, file an issue in GitHub.

Additional resources

Convert2RHEL download page
Red Hat Enterprise Linux technology capabilities and limits
Red Hat Enterprise Linux documentation
Migration planning guide - migration to RHEL 6
Migration planning guide - migration to RHEL 7
How do I upgrade from Red Hat Enterprise Linux 6 to Red Hat Enterprise Linux 7?
Considerations in adopting RHEL 8
Upgrading to RHEL 8
How to create a local mirror of the latest update for Red Hat Enterprise Linux 5, 6, 7, 8 without using Satellite server?
Blog post: Converting from CentOS to RHEL with Convert2RHEL and Satellite


When rebooting the server may be you meet some issue with the grub. To avoid this problem please launch the following command:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Hi Rim. Can you please give us more details? We haven't encountered issues with grub in our testing. What was the source system vendor and version? What was the issue you were facing about?

Hi Michel. It was a special situation, we had to install servers with centos 7.7 template provided by OVH (OVH does not provide RHEL 7.7 templates) then convert to RHEL 7.7. That's why we encountered this Grub problem.

Their command to regen grub.cfg on an EFI machine is the solution to BZ 1898314 listed in your "known-issues" above in this article.

All the points to Rim for fixing my issue, thank you so much!

Step 2 of Converting the system indicates "Replace RHEL_RepoID with your custom repository configured in the /etc/yum.repos.d/ directory, for example, rhel-7-server-rpms." This did not provide enough information for me to know what to update in /etc/yum.repos.d.

Hello Lucas, Thank you very much for your feedback. Please help me improve the documentation by clarifying what was insufficient.

Did you follow the instructions in prerequisites, referring to the RHEL 7 documentation about configuring repos:

Is there anything unclear or incomplete in these instructions?

Or is the placement under prerequisites rather unfortunate and can be easily missed?

Or was the problem different? Could you describe what problems you had and how you resolved them in your own words?

Thanks a lot! Lenka

The Link to "instructions on how to configure a repository." is not working (404). Also it would be great if the tool installs the repos that are needed for the conversion itself.

Thanks, Stefan, for pointing that out. Before we fix that, you can use this link:

Regarding the second point of yours - this article explains how to use convert2rhel with custom repositories. Since Red Hat does not have the RHEL repositories public, we leave it up to the user where they obtain the RHEL repositories. For example, when they have a subscribed RHEL system in their company, they can create a mirror of the RHEL repositories available on that system by following this guide:

However, convert2rhel is also able to connect to Red Hat Subscription Management (RHSM), and for that you need to provide the subscription-manager package and pass the subscription credentials to convert2rhel. Then the convert2rhel chooses the right repository to use for the conversion. You can find the step by step guide for that in

We are working on improving the user experience related to the use of RHSM.

Thanks, Stefan, for your feedback, and thanks, Michal, for the information. The link has been fixed and I added the documents Michal mentioned to Additional resources at the end of this article.

This system could have been done much much much much better.

I do not see any point for this utility if it does not work .. i.e. is "working" like this.

Nice that it rollbacks everything. For rollbacking feature it gets 1 out of 10 points.

I followed this article exactly but ran into issues with grub. After the conversion process /boot/grub2/grub.cfg was missing. There was also no grub.cfg in /boot/efi/EFI/redhat/ but there was one in /boot/efi/EFI/centos/.

$/boot/efi/EFI> ls centos/ grub.cfg grubenv

$/boot/efi/EFI> ls redhat/ BOOTX64.CSV fonts grubx64.efi mmx64.efi shimx64.efi shimx64-redhat.efi

I had to run "grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg" and link it to "/boot/grub2/grub.cfg"

Hi Ivan, I'm sorry for that. Conversions of UEFI-based systems are currently not possible. I'll have this article updated as soon as possible to mention this limitation. You can follow this bugzilla for any news around the fix:

Yup I also ran into this.. really needs to be noted ;)

For anyone else - don't panic. Using grub2-mkconfig as above is enough to make the system boot again (Phew!)

You may need to do this from a chroot environment if you use an md array (I did)

Hi Ivan, thank you for your feedback. The KB article has been updated to include this limitation.

This states that CentOS 8 to RHEL 8 is supported, but is it possible to go from CentOS Stream to RHEL 8? We just migrated from CentOS 8 to CentOS Stream before the announcement that RHEL will be free for up to 16 production servers.

Hi Darin. The conversion path between CentOS Stream and RHEL is being investigated. As of now we can't comment when/if the conversion path becomes available. Please reach out to your Technical Account Manager for more information.

Before conversion, is there prerequesits and consideration, such as checklist, how many disk capacity reserved,etc.?

Hi Fan, we don't have other prerequisites or considerations to mention apart from what is already in the document. Take a look at the Known issues section, and make sure you backup the system and also try to restore from the backup to make sure it works. Regarding the disk capacity needed, we are not able to tell ahead of the conversion. It depends on where are the repositories you enable for the conversions available (locally/remotely), how many packages you have installed, etc.

Thanks a lot, Michal!

Hi, Michal. I found there is still CentOS screen when booting after CentOS6.9 consersion.

Hi Fan, I'd need the convert2rhel.log from /var/log/convert2rhel/ to figure out what went wrong. Please create a new issue in GitHub with the log as an attachment. Thanks.

I would like to migrate from CentOS 8 to RHEL with the new licensing. If your account has an available RHEL license to use, is --disable-submgr and subsequent --enablerepo necessary? My understanding is: if I run this utility without --disable-submgr that it will ask for account credentials and register an activation?

Hi Michael. To use your RHEL subscriptions for the conversion, follow the steps described in this blog post: The steps involve pre-downloading subscription-manager and other packages and copying them on the right place before running convert2rhel. Then it's as you write, you just omit the --disable-submgr and optionally use the --username, --password, and --pool to have the utility run without interactively asking you for the subscription information. We are working on changes that will not require you to pre-download any package except convert2rhel.

Ok, so what about Centos Stream? The doc says that conversion isn't supported via convert2rhel. I was formerly running Centos 8, then saw the notice about it going away while Centos 8 Stream was "staying", so I switched my installation to Stream. Now I'd like to take advantage of the no-cost subscription to RHEL. How do I get there from here?

I'm trying to migrate, however the installation is failing on CentOs 8. Error log:

Hi Tobias,

For your next conversions, please use the latest version, 0.16, released recently.

Double-check that you have configured the 'rhel-8-baseos' and 'rhel-8-appstream' repositories manually prior the conversion. Doing so is explained in the Prerequisites section, step "Ensure that you have an access to RHEL packages through one of the following: ... Custom repositories configured ..."

With the version 0.16 though, you can now convert the system much easier without the need to configure the above repositories manually. Read the updated article on how to use convert2rhel with Red Hat Subscription Manager (RHSM).

Thanks for the response! I was now ably to complete the system conversion.

I agree with some of the other commenters that there seems to be little value to this utility, it does not make centos->redhat any easier, and at worse, makes it much more confusing. The whole yum.repos.d part is poorly done and the referral to "sec-configuring_yum_and_yum_repositories#sec-Setting_repository_Options" describes the syntax of the repo definition, but does not help in setting it up correctly for this specific conversion (I was expecting to download a redhat.repo and be done with it). It says you can use http/ftp/or local files, and coming from centos we obviously were used to http, but since rhel online repos are locked down, this seems impossible. Since you're going to be downloading and installing rpms manually, may as well skip the useless tool.

The method we used, thanks to "Luc de Louw's Blog" is what actually worked, along with a few tweaks of our own to not have to deal with dvds (ugh).

  1. remove centos-release: rpm -e centos-release --nodeps
  2. got to redhat Access -> downloads -> select corresponding RHEL version -> packages
  3. dowload the following rpms (use the search field). install with rpm -ivh (I dont know if every single one of these is absolutely required, but it worked for us)

    • dnf-plugin-subscription-manager-1.*.rpm
    • librhsm-0.0.3-3.*.rpm
    • python3-subscription-manager-rhsm-1*.rpm
    • redhat-release-8.*.rpm
    • redhat-release-eula-*.rpm
    • rhsm-icons-1.*.noarch.rpm
    • subscription-manager-1.*.rpm
    • subscription-manager-plugin-container*.rpm
    • subscription-manager-plugin-ostree-*.rpm
    • subscription-manager-rhsm-certificates-*.rpm
  4. remove the centos repos from /etc/yum.repos.d

  5. register the system with "subscription-manager register"
  6. attach license with "subscription-manager attach"
  7. You should now have working official redhat repos in yum, and a licensed instance!
  8. make sure everything is pure: yum -y reinstall "*"
  9. if using EFI DO NOT FORGET TO: grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg otherwise you will not boot and will fall to the grub> prompt (if this happens boot grub manually, you can also probably copy /boot/efi/EFI/centos/grub.cfg to /boot/efi/EFI/redhat/grub.cfg and escape from this problem in a pinch)

Thank you Zach. This was a lot more smooth than the script above.

Hi Zack. Thank you for the feedback. Today we've added the option of using convert2rhel with subscription-manager (RHSM) which is much simpler than setting up you own RHEL repositories. Just provide your Red Hat account credentials under which you have RHEL subscriptions available and basically that's it. For those with air-gapped/local network-only servers, we still allow using custom set-up RHEL repositories instead of RHSM. For that we are now pointing to an article explaining in more detail how to set up these RHEL repositories:

That sounds great. Since the user is going to need credentials anyways, supplying them up front and then letting the tool take care of the rest, seems like a good way to perform the conversion.

The tool needs a little workaround when a proxy server is involved.

After launching the tool, get to the point where subscription-manager is deployed. It should fail to register and re-prompt you. Alternatively, do what I did, and neglect to enter the password because I don't like having that on a command-line. Once you're at the subscription manger prompt for username/password, open another terminal, configure the proxy info in /etc/rhsm/rhsm.conf, and it'll continue.

This tool needs more work. yum check was clean in centos 7.9 but broke my installation in RHEL 7.9. I had to manually migrate packages like abrt, dhcp-common, dhcp-libs dhclient, dracut-network, kexec-tool, libreport, libreport-filesystem, basesystem and yum. Yum was the more tricky. I had to install it along with all dependencies via rpm.