Upgrade from CentOS 6 to CentOS 7

Two days back, i wrote Step by step installation CentOS 7 ; which is the clean installation of OS. As per the CentOS 7 announcement, it is possible to upgrade the CentOS 6 to CentOS 7 with the help of redhat-upgrade-tool. CentOS has not yet posted any official document on upgrading the CentOS 6, since there is no official documentation; we are not recommending this upgrade on production environment. If you like to give a try on development, you can just follow the simple steps.

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.

[upgrade]
name=upgrade
baseurl=http://dev.centos.org/centos/6/upg/x86_64/
enabled=1
gpgcheck=0

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
y
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 http://127.0.0.1:8099/submit/ -r /root/preupgrade-results/preupg_results-*.tar.gz .

From the above you can find what all are the packages and application will be affected by this upgrade, if you are ok with it; you can go ahead for the next step.

Perform upgrade:

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

# rpm --import http://centos.excellmedia.net/7.0.1406/os/x86_64/RPM-GPG-KEY-CentOS-7

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

# redhat-upgrade-tool --network 7.0 --instrepo http://centos.excellmedia.net/7.0.1406/os/x86_64/

But when i issued the command, it gave me the error to re-run the preupgrade-assistant again. I tried multiple times but no luck.

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 (not recommended, but this is only solution as of now)

# redhat-upgrade-tool --network 7.0 --force --instrepo http://centos.excellmedia.net/7.0.1406/os/x86_64/

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 up-gradation activity via console.

Upgrade from CentOS 6 to CentOS 7 – Pre upgrading the Packages

Now you can see the installation of the packages.

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 Screen

Verify using the following command.

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

That’s All!, successfully upgraded the CentOS 6 to CentOS 7.We welcome your feedback, place your valuable comments below.

centos 7rhel 7upgrade
Comments (7)
Add Comment
  • bobby

    Hi, I was following your instructions and I was stuck in middle with the following

    /dev/vg_lab1-lv_root doesnot exist
    /dev/vg_lab1-lv_swap doesnot exist

    starting emergency shell dracut

    This is what I was doing I have a server with CD, I didn’t find LiveCD for CentOS 7 so I took 6.5 Live CD and installed it on the server and stared following your instructions

    any help from you is appreciated

  • Net Nut

    I have used this upgrade methods on two machines and it worked great.. the only problem I run into is that GDM does not work afterwards.. startx is fine, but gdm will give nothing but a blank screen with a mouse cursor.. and I can’t seem to find the cause. (nothing in any log etc.. ) This has happened on two centos 65 machines with not much else related. when I gave up on one and nuked it for a fresh install gdm was fine. I can’t do that to the other host.

    I am wondering if you have seen this or have any suggestions (even tried rsyncing conf files from a fresh install machine )

    Thanks in advance for your input.

    • HugoNo1

      I upgraded my CentOS 6.6 system to CentOS 7.0 and ran into the same problem. Since then I couldnt get gdm to work again. I did install “lightdm” to get a graphical login.
      Blocking Screen doesnt work either.
      root and user sessions are seperated with no way to give access to the user which leads to serveral problems on a daily basis.
      Now with CentOS 7.1 1503 I reached a dead end since the new kernel 3.10-229 doesnt boot the system anymore.

  • city classifieds

    What I feel 6.6 is stable than 7, becoz 7 has bit buggy stuff on the iptables firewall.

  • Faux

    From http://wiki.centos.org/TipsAndTricks/CentOSUpgradeTool:

    Warning: use of this tool is currently not recommended as several system-critical packages are of a higher version number in CentOS 6.6 than they are in CentOS 7 so those do not get upgraded correctly. This renders yum and several other system tools non-functional.

    • envoy510

      Any progress in fixing that?

      • KNERDY

        you have access to the same information . As you can see the same thing is still being posted there.