How do I migrate from RHEL5 to RHEL7?
Contents
- Upgrade support restrictions
- Hardware requirements and support
- Subscription management
- Kernel, boot, and init
- Basic administration
- File systems and storage
- Networking
- Security and access control
- Clustering
- Desktop
- Command changes for common tasks
- Preupgrade Assistant
This article covers the major differences between version 5 and version 7 of Red Hat Enterprise Linux, to assist customers who have recently moved versions, or are planning to move versions soon.
Upgrade support restrictions
Red Hat does not support upgrading directly from RHEL 5 to RHEL 7. However, if you intend to move from RHEL 5 to RHEL 7 by backing up your data and restoring data on a fresh installation of RHEL 7, these notes will help you understand the major changes between these distributions.
Note that RHEL 7 is supported on a limited number of architectures; see the RHEL 7 Release Notes for details.
Hardware requirements and support
Red Hat Enterprise Linux 7 requires:
- 10 GiB minimum disk space (20 GiB recommended)
- 1 GiB minimum memory (1 GiB per logical core recommended)
Hardware that was certified under Red Hat Enterprise Linux 5 may not be certified under Red Hat Enterprise Linux 7. Check for your hardware at This content is not included.Red Hat Customer Portal Hardware Certification before you upgrade.
For other requirement and support details, see Red Hat Enterprise Linux technology capabilities and limits.
Subscriptions
Subscriptions are now handled through the subscription-manager tool. While subscription-manager and rhn_register are interoperable, a single system can only be registered to one of these services at a time. There are some extenuating circumstances here; see footnotes for details1 3.
| Task | RHEL5 | RHEL7 |
|---|---|---|
| View subscription information | /etc/sysconfig/rhn/systemid | subscription-manager identity |
| Configure subscription | rhn_register1 | subscription-manager2 rhn_register 3 |
Kernel, boot, and init
The init system has undergone several large changes between RHEL 5 and RHEL 7.
-
The boot loader has been updated to GRUB2. This update removes support for installing the boot loader to a formatted partition on BIOS machines with MBR-style partition tables. This behavior change was made because some file systems have automated optimisation features that move parts of the core boot loader image, which could break the GRUB legacy boot loader. With GRUB2, the boot loader is installed in the space available between the partition table and the first partition on BIOS machines with MBR-style partition tables. BIOS machines with GPT-style partition tables can avoid this problem by creating a special BIOS Boot Partition for the boot loader. UEFI machines continue to install the boot loader to the EFI System Partition. See Section 6.10.1.1 MBR and GPT Considerations in the RHEL7 Installation Guide for related considerations for MBR- and GPT-style partitioning schemes. See This content is not included.Section 3.2.1 New Boot Loader in the RHEL7 Migration Planning Guide for further details about the move from GRUB legacy to GRUB2.
The recommended minimum partition sizes have also changed as a result of the new boot loader. The table below gives a summary of the new recommendations. Further information is available in Section 6.10.1.1 MBR and GPT Considerations of the Red Hat Enterprise Linux 7 Installation Guide.
Partition BIOS & MBR BIOS & GPT UEFI & GPT /boot 500 MB / 10 GB swap At least twice the RAM. See Section 6.10.4.5. Recommended Partitioning Scheme in the Red Hat Enterprise Linux 7 Installation Guide for details. boot loader N/A (Installed between the partition table and the first partition) 1 MB (BIOS Boot Partition) 200 MB (EFI System Partition
-
Systemd replaces the SysV init system, allowing greater control over process startup and helps minimize startup time. An overview is available here.
- While systemd is designed to be compatible with SysV init scripts, compatibility is limited in some cases; see This content is not included.Section 3.2.2.1 Backwards Compatibility in the RHEL7 Migration Planning Guide for details.
- The systemd administrative tool,
systemctl, changes many administrative commands, as outlined in this cheat sheet. - Run levels have been replaced with targets, which can be customised similar to previously supported run levels 7, 8, and 9. See the System Administrator's Guide for a detailed explanation.
- See this This content is not included.collection of systemd resources for more information.
-
Significant changes to boot parameters; see This content is not included.Section 3.2.3.1 Boot Parameter Changes in the RHEL7 Migration Planning Guide for details.
-
Graphical mode initialization now assigned to the kernel via kernel modesetting; disable with
nomodesetparameter at kernel cmdline.
| Task | RHEL5 | RHEL7 |
|---|---|---|
| View run level/target | runlevel who -r | systemctl get-default who -r |
| Change run level/target | /etc/inittab init run_level | systemctl isolate name.target systemctl set-default |
| Configure default run level/target | /etc/inittab | systemctl set-default |
| Single user/rescue mode | append 1 or s or init=/bin/bash to kernel cmdline | append rd.break or init=/bin/bash to kernel cmdline |
| Shut down system | shutdown | shutdown systemctl shutdown |
| Power off system | poweroff | poweroff systemctl poweroff |
| Halt system | halt | halt systemctl halt |
| Reboot system | reboot | reboot systemctl reboot |
| Configure GRUB bootloader | /boot/grub/grub.conf | /etc/default/grub grub2-mkconfig grub-set-default |
Installation
- The installer has been redesigned to minimise the interaction and time required to complete a default installation. See This content is not included.Section 3.2.3. New Installer in the RHEL7 Migration Planning Guide for details.
- Text installer automatically selects Base and Core group packages only. It configures the bootloader (except in kickstart installations), but cannot handle custom file system layouts or prompt for information regarding package selection, partitioning. See Section 2.3 Text-based Installer of the RHEL6 Migration Planning Guide for details.
- During installation or upgrade, no more than 15 partitions can be detected; if your system has more than 15 partitions, migrate the disk to logical volumes before upgrading.
- The installer now uses NetworkManager to configure network interfaces during installation.
Basic administration
- UIDs from 1-999 are now reserved for system use; new users will be assigned UIDs above this range.
- The maximum number of processes available to non-root users in a single pam session (
ulimit -u) is now 4096 processes by default, as specified in /etc/security/limits.d/*-nproc.conf. When this file is not present on your system, the maximum number of processes is calculated according to the processes described in What determines the default value of nproc(ulimit -u) on Red Hat Enterprise Linux?. - New logging framework, journald, captures data from syslog, kernel, initial RAM disk and early boot messages, as well as messages sent to standard output and standard error output. It stores this data in binary journal files, and forwards data to rsyslog, which can perform further processing and store text-based log files, maintaining compatibility with systems that require rsyslog. Journald is configured with the new
journalctltool rather than in the /etc/syslogd.conf file. See This content is not included.Section 2.4.3 New Logging Framework in the RHEL7 Migration Planning Guide for details.
File system changes
- XFS replaces ext3 as the new default file system. Ext3 remains supported, so there is no immediate need to migrate, but you may find XFS features and support useful. In-place migration is not possible; copy data from the ext3 file system to a freshly prepared XFS file system using
rsyncor similar. When you copy data to the new file system, ensure that you reviewrsyncoptions carefully so that file attributes and access controls transfer appropriately. For example, use the-Hoption to preserve hard links, the-Aoption to preserve access control lists, and the-Xoption to preserve extended attributes such as SELinux attributes on the new file system. Refer to the following resources for assistance moving from ext3 to XFS.- Is it possible to perform an in-place migration from ext4 to XFS?
- This content is not included.Section 3.5.1 New Default File System: XFS
- This content is not included.Section 6.9.2 Behavioral and Administrative Differences Between Ext3/4 and XFS
- This content is not included.How to choose your Red Hat Enterprise Linux file system
- This content is not included.Section 6.9 Migrating from Ext4 to XFS
- /lib, /lib64, /bin, and /sbin directories moved into the /usr directory, as /usr no longer needs root file system-level utilities to mount. /lib, /lib64, /bin, and /sbin are now symbolic links to the same directories under /usr. See This content is not included.Section 3.3.1 New layout for root file system in the RHEL7 Migration Planning Guide for details.
- The /tmp directory can be used as a mount point for a temporary file storage system (tmpfs). This appears as a mounted file system, but stores content in volatile memory instead of on a persistent storage device. See This content is not included.Section 3.3.2 Temporary storage space of the RHEL7 Migration Planning Guide for details.
- NFS version 2 no longer supported.
- targetcli replaces tgtd.
- Upgrading from dmraid to mdraid is not supported. See Section 3.2 RAID in the RHEL6 Migration Planning Guide for details.
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Default file system | ext3 | xfs |
| Create/modify disk partitions | fdisk parted | fdisk gdisk parted ssm create |
| Format disk partition | mkfs.filesystem_type (ext4, xfs) mkswap | mkfs.filesystem_type (ext4, xfs) mkswap ssm create |
| Defragment disk space | copy data to new file system fsck (look for 'non-contiguous inodes') | copy data to new file system fsck (look for 'non-contiguous inodes') xfs_fsr |
| Mount storage | mount /etc/fstab | mount /etc/fstab ssm mount |
| Create physical volume | pvcreate | pvcreate ssm create (if backend is lvm) |
| Create volume group | vgcreate | vgcreate ssm create (if backend is lvm) |
| Create logical volume | lvcreate | lvcreate ssm create (if backend is lvm) |
| Enlarge volumes formatted with default file system | vgextend lvextend resize2fs | vgextend lvextend xfs_growfs ssm resize |
| Shrink volumes formatted with default file system | resize2fs lvreduce vgreduce | XFS cannot currently be shrunk; copy desired data to a smaller file system. |
| Check/repair file system | fsck | fsck ssm check |
| Configure NFS share | /etc/exports service nfs reload | /etc/exports systemctl reload nfs.service |
Networking
- The hostname variable is now defined in /etc/hostname, instead of /etc/sysconfig/network.
- Network interfaces now named according to new schema. See This content is not included.Section 3.7.3 New Network Naming Schema in the RHEL7 Migration Planning Guide for details.
Security and access control
- Firewall rules are now configured through the firewalld configuration tools, firewall-config, firewall-cmd, and firewall-applet (not included in the default RHEL7 installation). See This content is not included.3.11.1.1. Migrating rules to firewalld in the RHEL7 Migration Planning Guide for details.
- kerberos clients and servers default to not using keys for des-cbc-crc, des-cbc-md4, des-cbc-md5, des-cbc-raw, des3-cbc-raw, des-hmac-sha1, and arcfour-hmac-exp ciphers. Systems that need these ciphers require allow_weak_crypto = yes in the libdefaults section of /etc/krb5.conf
- policykit now reads .rules files in lexicographic order from /etc/polkit-1.rules.d and /usr/share/polkit-1/rules.d directories; first matching rule takes precedence, and /etc/polkit-1.rules.d is read before /usr/share/polkit-1/rules.d.
- libuser no longer supports configurations with both ldap and shadow or ldap and files modules because doing so results in ambiguity in password handling
Clustering
- keepalived replaces piranha
- pcs replaces luci, but can only handle RHEL7 pacemaker-based clusters, not previous rgmanager-based clusters
- online migration for clusters is not supported
- new quorum implementation, votequorum, replaces qdiskd for most use cases
See This content is not included.Section 3.8 Clustering and High-Availability in the RHEL7 Migration Planning Guide for details.
Desktop
GNOME Classic is the new desktop environment in RHEL 7; see the RHEL 7 Desktop Migration and Administration Guide for details.
Command changes for common tasks
System basics
| Task | RHEL5 | RHEL7 |
|---|---|---|
| View subscription information | /etc/sysconfig/rhn/systemid | subscription-manager identity |
| Configure subscription | rhn_register1 | subscription-manager2 rhn_register 3 |
| View system profile | sosreport dmidecode hwbrowser | sosreport dmidecode lstopo lscpu |
Basic configuration
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Graphical configuration tools | system-config-* | gnome-control-center |
| Configure network | system-config-network | nmcli nmtui nm-connection-editor |
| Configure system language | system-config-language | localectl |
| Configure time and date | system-config-date date | timedatectl date |
| Synchronize time and date | ntpdate /etc/ntp.conf | timedatectl /etc/chrony.conf ntpdate |
| Configure keyboard | system-config-keyboard | localectl |
Jobs and services
| Task | RHEL5 | RHEL7 |
|---|---|---|
| List all services | chkconfig --list ls /etc/init.d/ | systemctl -at service ls /etc/systemd/system/*.service ls /usr/lib/systemd/system/*.service |
| List running services | service --status-all | systemctl -t service --state=active |
| Start/stop service | service name start service name stop | systemctl start name.service systemctl stop name.service |
| Enable/disable service | chkconfig name on chkconfig name off | systemctl enable name.service systemctl disable name.service |
| View service status | service name status | systemctl status name.service |
| Check if service is enabled | chkconfig name --list | systemctl is-enabled name |
| Create new service file or modify configuration | chkconfig --add | systemctl daemon-reload /etc/systemd/system/*.service |
| View run level/target | runlevel who -r | systemctl get-default who -r |
| Change run level/target | /etc/inittab init run_level | systemctl isolate name.target systemctl set-default |
| Configure logging | /etc/syslog.conf | /etc/rsyslog.conf /etc/rsyslog.d/*.conf /var/log/journal systemd-journald.service |
| View logs | /var/log | /var/log journalctl |
Kernel, boot, and hardware
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Single user/rescue mode | append 1 or s or init=/bin/bash to kernel cmdline | append rd.break or init=/bin/bash to kernel cmdline |
| Shut down system | shutdown | shutdown systemctl shutdown |
| Power off system | poweroff | poweroff systemctl poweroff |
| Halt system | halt | halt systemctl halt |
| Reboot system | reboot | reboot systemctl reboot |
| Configure default run level/target | /etc/inittab | systemctl set-default |
| Configure GRUB bootloader | /boot/grub/grub.conf | /etc/default/grub grub2-mkconfig grub-set-default |
| View hardware configured | hwbrowser | lshw (in EPEL) |
Software management
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Install software | yum install yum groupinstall | yum install yum group install |
| View software info | yum info yum groupinfo | yum info yum group info |
File systems, volumes, and disks
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Default file system | ext3 | xfs |
| Create/modify disk partitions | fdisk parted | fdisk gdisk parted ssm create |
| Format disk partition | mkfs.filesystem_type (ext4, xfs) mkswap | mkfs.filesystem_type (ext4, xfs) mkswap ssm create |
| Defragment disk space | copy data to new file system fsck (look for 'non-contiguous inodes') | copy data to new file system fsck (look for 'non-contiguous inodes') xfs_fsr |
| Mount storage | mount /etc/fstab | mount /etc/fstab ssm mount |
| Create physical volume | pvcreate | pvcreate ssm create (if backend is lvm) |
| Create volume group | vgcreate | vgcreate ssm create (if backend is lvm) |
| Create logical volume | lvcreate | lvcreate ssm create (if backend is lvm) |
| Enlarge volumes formatted with default file system | vgextend lvextend resize2fs | vgextend lvextend xfs_growfs ssm resize |
| Shrink volumes formatted with default file system | resize2fs lvreduce vgreduce | XFS cannot currently be shrunk; copy desired data to a smaller file system. |
| Check/repair file system | fsck | fsck ssm check |
| Configure NFS share | /etc/exports service nfs reload | /etc/exports systemctl reload nfs.service |
Networking
| Task | RHEL5 | RHEL7 |
|---|---|---|
| Configure name resolution | /etc/hosts /etc/resolv.conf | /etc/hosts /etc/resolv.conf nmcli con mod |
| Configure hostname | /etc/sysconfig/network | hostnamectl /etc/hostname nmtui |
| View network interface info | ip addr ifconfig brctl | ip addr nmcli dev show teamdctl brctl bridge |
| Configure network interface | /etc/sysconfig/network-scripts/ifcfg-* | /etc/sysconfig/network-scripts/ifcfg-* nmcli con [add|mod|edit] nmtui nm-connection-editor |
| Configure routes | ip route add system-config-network /etc/sysconfig/route-iface | ip route add nmcli nmtui nm-connection-editor /etc/sysconfig/route-iface |
| Configure firewall | iptables and ip6tables /etc/sysconfig/ip*tables | firewall-cmd firewall-config |
| View ports/sockets | ss lsof netstat | ss lsof |
Resource management
| Task | RHEL5 | RHEL7 |
|---|---|---|
| View system usage | top ps sar iostat netstat vmstat mpstat numastat | top ps sar iostat ss vmstat mpstat numastat tuna |
| View disk usage | df | df iostat |
-
Be aware of potential issues when using subscription-manager on Red Hat Enterprise Linux 5: https://access.redhat.com/solutions/129003. ↩
-
subscription-manager is used for Satellite 6, Satellite 5.6 with SAM and newer, and Red Hat's CDN. ↩
-
RHN tools are deprecated on Red Hat Enterprise Linux 7. rhn_register should be used for Satellite server 5.6 and newer only. For details, see: This content is not included.Satellite 5.6 unable to register RHEL 7 client system due to rhn-setup package not included in Minimal installation↩
Preupgrade Assistant
The Preupgrade Assistant (preupg command) lets you check for potential problems you might encounter with a Red Hat Enterprise Linux 5 to Red Hat Enterprise LInux 7 migration. This will help you assess your chances of successfully migration to Red Hat Enterprise Linux 7.