How to upgrade CentOS 6 to CentOS 7

Installing Redhat upgrade tool:

redhat-upgrade-tool is not available on standard repositories, you must setup the repository to install it.

# vi /etc/yum.repos.d/upgrade.repo

Place the following entries in it.


Install the following packages.

# yum -y install preupgrade-assistant-contents redhat-upgrade-tool preupgrade-assistant

PreUpgrade Assistant:

Run the following command to check the potential problem you might encounter with an upgrade from CentOS 6 to CentOS 7 before making a changes to the system.

# preupg

Note: Output of preupg command has been shorted to reduce the length of the post.

Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
that would require a full re-install of the system from installation media.
Do you want to continue? y/n
Gathering logs used by preupgrade assistant:
All installed packages : 01/10 ...finished (time 00:00s)
All changed files      : 02/10 ...finished (time 00:40s)
Changed config files   : 03/10 ...finished (time 00:00s)
All users              : 04/10 ...finished (time 00:00s)
All groups             : 05/10 ...finished (time 00:00s)
Service statuses       : 06/10 ...finished (time 00:00s)
All installed files    : 07/10 ...finished (time 00:01s)
All local files        : 08/10 ...finished (time 00:03s)
All executable files   : 09/10 ...finished (time 00:00s)
RedHat signed packages : 10/10 ...finished (time 00:00s)
Assessment of the system, running checks / SCE scripts:
001/100 ...done    (Configuration Files to Review)
002/100 ...done    (File Lists for Manual Migration)
003/100 ...done    (Bacula Backup Software)
004/100 ...done    (MySQL configuration)
005/100 ...done    (Migration of the MySQL data stack)
006/100 ...done    (General changes in default MySQL implementation)
007/100 ...done    (PostgreSQL upgrade content)
Assessment finished (time 00:00s)
Result table with checks and their results for main contents:
|System kickstart                                                                                            |notapplicable  |
|YUM                                                                                                         |notapplicable  |
|Check for usage of dangerous range of UID/GIDs                                                              |notapplicable  |
|Incorrect usage of reserved UID/GIDs                                                                        |notapplicable  |
|NIS ypbind config files back-up                                                                             |notapplicable  |
|NIS Makefile back-up                                                                                        |notapplicable  |
|NIS server maps check                                                                                       |notapplicable  |
|NIS server MAXUID and MAXGID limits check                                                                   |notapplicable  |
|NIS server config file back-up                                                                              |notapplicable  |
Tarball with results is stored here /root/preupgrade-results/preupg_results-140716022514.tar.gz .
The latest assessment is stored in directory /root/preupgrade .
Upload results to UI by command:
e.g. preupg -u -r /root/preupgrade-results/preupg_results-*.tar.gz .

From the above you can find what packages will be affected by this upgrade.

Perform upgrade:

We are going to use the repo file for the upgrade, issue the following command to import the GPG key.

# rpm --import

As per the man page, the following command is used to upgrade the CentOS 6; this will download the necesary packages from the internet.

# redhat-upgrade-tool --network 7.0 --instrepo

You may get an error asking you to force the upgrade:

setting up repos...
.treeinfo                                                                                                                                        | 1.1 kB     00:00
preupgrade-assistant has not been run.
To perform this upgrade, either run preupg or run redhat-upgrade-tool --force

Re-run the  redhat-upgrade-tool with the –force option, assuming you got the previous message

# redhat-upgrade-tool --network 7.0 --force --instrepo

Note: Output of redhat-upgrade-tool command has been shorted to reduce the length of the post.

setting up repos...
.treeinfo                                                                                                                                        | 1.1 kB     00:00
getting boot images...
vmlinuz-redhat-upgrade-tool                                                                                                                      | 4.7 MB     01:38
initramfs-redhat-upgrade-tool.img                                                                                                                |  32 MB     14:45
setting up update...
finding updates 100% [=================================================================================================================================================](1/272): acl-2.2.51-12.el7.x86_64.rpm                                                                                                            |  81 kB     00:00
(2/272): attr-2.4.46-12.el7.x86_64.rpm                                                                                                           |  66 kB     00:00
(3/272): audit-2.3.3-4.el7.x86_64.rpm                                                                                                            | 223 kB     00:01
(4/272): audit-libs-2.3.3-4.el7.x86_64.rpm                                                                                                       |  77 kB     00:00
(5/272): authconfig-6.2.8-8.el7.x86_64.rpm                                                                                                       | 399 kB     00:08
(6/272): basesystem-10.0-7.el7.centos.noarch.rpm                                                                                                 | 5.0 kB     00:00
(7/272): bash-4.2.45-5.el7.x86_64.rpm                                                                                                            | 1.0 MB     00:17
(270/272): yum-plugin-fastestmirror-1.1.31-24.el7.noarch.rpm                                                                                     |  28 kB     00:03
(271/272): zlib-1.2.7-13.el7.x86_64.rpm                                                                                                          |  89 kB     00:06
(272/272): zlib-devel-1.2.7-13.el7.x86_64.rpm                                                                                                    |  49 kB     00:01
setting up system for upgrade
Finished. Reboot to start upgrade.

Now reboot the server.

# reboot

Upgrade toCentOS 7:

The server will boot with the redhat-upgrade-tool kernel to upgrade the CentOS 6, now you can find the upgrade progress/activity via console.

Upgrade  from CentOS 6 to CentOS 7 - Upgrading the Packages

Now you can see the installation of the packages.

READ  Configure iSCSI Target & Initiator on CentOS 7 / RHEL7

Upgrade  from CentOS 6 to CentOS 7 - Upgrading the Packages

Once completed, you will get the login screen.

Upgrade  from CentOS 6 to CentOS 7 - Login

Verify using the following command.

# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

This should be it!

  • upgrade centos, centos 6, centos 7
  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

ownCloud Auto Install Script on Debian 7

Here is an easy way to install ownCloud on Debian 7 with a script, but first, for those who...

NGINX – Allow access only to certain IPs

Nginx has a nice module that not many people know about, it basically enables us...

How to configure NTP client in CentOS

What's NTP? NTP stands for Network Time Protocol, and it is an Internet protocol used to...

Initial Server Setup on CentOS 6

Here are some recommendations to setup your VPS or server when you first get it, some of these...

How To Install nginx on CentOS

What is NGINX? Nginx (pronounced "engine-x") is an open source reverse proxy server for HTTP,...