Migration Planning Guide

Migrating to Red Hat Enterprise Linux 6

Edition 1.1

Link to Original Document


Legal Notice

Copyright © 2010 Red Hat, Inc..
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
All other trademarks are the property of their respective owners.


1801 Varsity Drive
 RaleighNC 27606-2072 USA
 Phone: +1 919 754 3700
 Phone: 888 733 4281
 Fax: +1 919 754 3701

Abstract
This guide documents migration of systems running Red Hat Enterprise Linux 5 to Red Hat Enterprise Linux 6.

Preface
1. Document Conventions
1.1. Typographic Conventions
1.2. Pull-quote Conventions
1.3. Notes and Warnings
2. We Need Feedback!
1. Introduction
1.1. Red Hat Enterprise Linux 6
1.2. Application Compatibility
2. Installation
2.1. Kernel and Boot Options
2.2. Graphical Installer
2.2.1. Devices and Disks
2.2.2. Kickstart
2.2.3. Networking
2.3. Text-Based Installer
3. Storage and File Systems
3.1. RAID
3.2. ext4
3.3. fusecompress
3.4. blockdev
4. Networking and Services
4.1. Interfaces and Configuration
4.2. Service Initialization
4.3. IPTables/Firewalls
4.4. BIND
4.5. NTP
4.6. Kerberos
4.7. Mail
4.7.1. Sendmail
4.7.2. Exim
4.7.3. Dovecot
4.8. MySQL®
4.9. PostgreSQL
4.10. Drupal
4.11. Squid
4.12. Bluetooth
4.13. Cron
4.14. Logging
5. Command Line Tools
5.1. Grep
5.2. Sed
5.3. Pcre
5.4. Shells
6. Desktop
7. Security and Authentication
7.1. SELinux
7.2. SSSD
7.3. LDAP
7.3.1. Converting slapd configuration
7.4. Checksums
7.5. Pluggable Authentication Modules (PAM)
7.6. System Users
8. Kernel
8.1. Kernel
9. Package And Driver Changes
9.1. System Configuration Tools Changes
9.2. Bash (Bourne-Again Shell)
9.3. Other Package Changes
9.4. Driver Changes
9.5. Library Changes
A. Revision History

Preface

1. Document Conventions

This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.
In PDF and paper editions, this manual uses typefaces drawn from the Liberation Fonts set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default.

1.1. Typographic Conventions

Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.
Mono-spaced Bold
Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:
To see the contents of the file my_next_bestselling_novel in your current working directory, enter the cat my_next_bestselling_novel command at the shell prompt and press Enter to execute the command.
The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context.
Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:
Press Enter to execute the command.
Press Ctrl+Alt+F2 to switch to the first virtual terminal. Press Ctrl+Alt+F1 to return to your X-Windows session.
The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously).
If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in mono-spaced bold. For example:
File-related classes include filesystem for file systems, file for files, and dir for directories. Each class has its own associated set of permissions.
Proportional Bold
This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:
Choose SystemPreferencesMouse from the main menu bar to launch Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click Close to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).
To insert a special character into a gedit file, choose ApplicationsAccessoriesCharacter Map from the main menu bar. Next, choose SearchFind… from the Character Map menu bar, type the name of the character in the Search field and click Next. The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the Copy button. Now switch back to your document and choose EditPaste from the gedit menu bar.
The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context.
Mono-spaced Bold Italic or Proportional Bold Italic
Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:
To connect to a remote machine using ssh, type ssh username@domain.name at a shell prompt. If the remote machine is example.com and your username on that machine is john, type ssh john@example.com.
The mount -o remount file-system command remounts the named file system. For example, to remount the /home file system, the command is mount -o remount /home.
To see the version of a currently installed package, use the rpm -q package command. It will return a result as follows: package-version-release.
Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system.
Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
Publican is a DocBook publishing system.

1.2. Pull-quote Conventions

Terminal output and source code listings are set off visually from the surrounding text.
Output sent to a terminal is set in mono-spaced roman and presented thus:
books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs
Source-code listings are also set in mono-spaced roman but add syntax highlighting as follows:
package org.jboss.book.jca.ex1;

import javax.naming.InitialContext;

public class ExClient
{
   public static void main(String args[]) 
       throws Exception
   {
      InitialContext iniCtx = new InitialContext();
      Object         ref    = iniCtx.lookup("EchoBean");
      EchoHome       home   = (EchoHome) ref;
      Echo           echo   = home.create();

      System.out.println("Created Echo");

      System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
   }
}

1.3. Notes and Warnings

Finally, we use three visual styles to draw attention to information that might otherwise be overlooked.

Note

Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier.

Important

Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' will not cause data loss but may cause irritation and frustration.

Warning

Warnings should not be ignored. Ignoring warnings will most likely cause data loss.

2. We Need Feedback!

If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Bugzilla: http://bugzilla.redhat.com/ against the product Red Hat Enterprise Linux.
When submitting a bug report, be sure to mention the manual's identifier: doc-Migration_Guide and version number: 6.
If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, please include the section number and some of the surrounding text so we can find it easily.

Chapter 1. Introduction

1.1. Red Hat Enterprise Linux 6
1.2. Application Compatibility
The Migration Planning Guide documents the migration of any minor version of a Red Hat Enterprise Linux 5 installation to Red Hat Enterprise Linux 6 by highlighting key behavioral changes worthy of note when migrating.
This guide is intended to increase ease of use of Red Hat Enterprise Linux 6 by providing guidelines for changes in the product between Red Hat Enterprise Linux 5 and Red Hat Enterprise Linux 6. This guide is however not designed to explain all new features: it is focused on changes to the behavior of applications or components which were part of Red Hat Enterprise Linux 5 and have changed in Red Hat Enterprise Linux 6 or whose functionality has been superseded by another package.

1.1. Red Hat Enterprise Linux 6

Red Hat Enterprise Linux is the leading platform for open source computing. It is sold by subscription, delivers continuous value and is certified by top enterprise hardware and software vendors. From the desktop to the datacenter, Enterprise Linux couples the innovation of open source technology and the stability of a true enterprise-class platform.
Red Hat Enterprise Linux 6 is the next generation of Red Hat's comprehensive suite of operating systems, designed for mission-critical enterprise computing and certified by top enterprise software and hardware vendors. This release is available as a single kit on the following architectures:
  • i386
  • AMD64/Intel64
  • System z
  • IBM Power (64-bit)
In this release, Red Hat brings together improvements across the server, systems and the overall Red Hat open source experience. The following are some of the many improvements and new features that are included in this release:
Power Management
Tickless kernel and improvements through the application stack to reduce wakeups, power consumption measurement by PowerTOP, Power Management (ASPM, ALPM), and adaptive system tuning by Tuned.
Next Generation Networking
Comprehensive IPv6 support (NFS 4, CIFS, mobile support [RFC 3775], ISATAP support), FCoE, iSCSI, and a new and improved mac80211 wireless stack.
Reliability, Availability, and Serviceability
System level enhancements from industry collaborations to make the most of hardware RAS capabilities and NUMA architectures.
Fine-grained Control and Management
Improved scheduler and better resource management in the kernel via Completely Fair Scheduler (CFS) and Control Groups (CG).
Scalable Filesystems
ext4 is the default filesystem, and xfs offers robustness, scalability, and high-performance.
Virtualization
KVM includes performance improvements and new features, sVirt protects the host, VMs, and data from a guest breach, SRIOV and NPIV deliver high performance virtual use of physical devices, and libvirt leverages kernel CG controller functionality.
Enterprise Security Enhancement
SELinux includes improved ease of use, application sandboxing, and significantly increased coverage of system services, while SSSD provides unified access to identity and authentication services as well as caching for off-line use.
Development and Runtime Support
SystemTap (allows instrumentation of a running kernel without recompilation), ABRT (simple collection of bug information), and improvements to GCC (version 4.4.3), glibc (version 2.11.1), and GDB (version 7.0.1).

1.2. Application Compatibility

This release of Red Hat Enterprise Linux provides dependencies so applications designed to run on earlier versions of the operating system continue to run with minimum disruption. To that end, older versions of key libraries are included to preserve legacy interfaces that might have changed between this release and prior versions. These libraries serve as dependencies primarily for applications written in C/C++.
Please note that it is not necessary to re-test or re-certify applications between minor releases of Red Hat Enterprise Linux. Red Hat Enterprise Linux compatibility policies ensure that applications running on a version of the release will continue to run throughout the life of the release. For example, applications certified on Red Hat Enterprise Linux 6.0 will be fully compatible on Red Hat Enterprise Linux 6.1 and so on.
Refer to the following table for details on these compatibility packages:
Table 1.1. Compatibility Libraries
Package Description
compat-db The Berkeley DB database compatibility library. The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications. This package contains various versions of Berkeley DB which were included in previous releases.
compat-expat1 Expat is a stream-oriented XML parser. This package provides library compatibility with previous versions.
compat-glibc glibc is the C library used for system calls and other basic facilities. This package provides compatibility (and runtime libraries) for the compiling of binaries that require older glibc versions, and allows them to run on this release of Red Hat Enterprise Linux.
compat-libf2c-34 This package provides older versions of Fortran 77 shared libraries, which are needed to run dynamically-linked Fortran 77 programs.
compat-libgcc-296 Contains the 2.96 libgcc.a library and support object files to retain compatibility with older versions of GCC.
compat-libgfortran-41 This package includes a Fortran 95 runtime library for compatibility with GCC 4.1.x compiled Fortran applications.
compat-libstdc++-295 Provides compatibility with the GNU standard C++ library version 2.95.
compat-libstdc++-296 Provides compatibility with the GNU standard C++ library version 2.96.
compat-libstdc++-33 Provides compatibility with the GNU standard C++ library version 3.3.
compat-libtermcap This package provides compatibility for older termcap-based programs.
compat-openldap OpenLDAP is an open source suite of LDAP (Lightweight Directory Access Protocol) applications and development tools. The compat-openldap package includes older versions of the OpenLDAP shared libraries which may be required by some applications.
openssl098e This package provides OpenSSL 0.98e, which may be required for some SSL applications.

Chapter 2. Installation

2.1. Kernel and Boot Options
2.2. Graphical Installer
2.2.1. Devices and Disks
2.2.2. Kickstart
2.2.3. Networking
2.3. Text-Based Installer
This section outlines the differences between the Red Hat Enterprise Linux 6 and Red Hat Enterprise Linux 5 installation procedures. Depending on which release of Red Hat Enterprise Linux 5 you are migrating from, not all of the options and techniques listed here may be relevant to your environment, as they may already be present in your Red Hat Enterprise Linux 5 environment.

2.1. Kernel and Boot Options

  • You may perform memory testing before you install Red Hat Enterprise Linux by entering memtest86 at the boot: prompt. This option runs the Memtest86 stand alone memory testing software in place of the Anaconda system installer. Once started, Memtest86 memory testing loops continually until the Esc key is pressed.
  • The rdloaddriver kernel parameter is now needed to define the order of module loading, instead of the old scsi_hostadapter option.

2.2. Graphical Installer

This section describes what behaviors have changed in the graphical installer.

2.2.1. Devices and Disks

  • Use of the /dev/hdX device name is deprecated on the i386 and x86_64 architecture for IDE drives, and has changed to /dev/sdX. This change does not apply to the PPC architecture.
  • If you have difficulties with the installation not detecting a Smart Array card, enter linux isa at the installer prompt. This lets you manually select the required card.
  • Whereas older IDE drivers supported up to 63 partitions per device, SCSI devices are limited to 15 partitions per device. Anaconda uses the new libata driver in the same fashion as the rest of Red Hat Enterprise Linux, so it is unable to detect more than 15 partitions on an IDE disk during the installation or upgrade process. If you are upgrading a system with more than 15 partitions, you may need to migrate the disk to Logical Volume Manager (LVM).
  • A change in the way that the kernel handles storage devices means that device names like /dev/hdX or /dev/sdX may differ from the values used in earlier releases. Anaconda solves this problem by relying on partition labels. If these labels are not present, then Anaconda provides a warning that these partitions need to be labelled. Systems that use Logical Volume Management (LVM) and the device mapper usually do not require relabeling.
  • Support is included for installation to encrypted block devices, including the root file system.
  • Not all IDE RAID controllers are supported. If your RAID controller is not yet supported by mdraid, you may combine drives into RAID arrays by configuring Linux software RAID. For supported controllers, configure the RAID functions in the computer BIOS.
  • The version of GRUB included in Red Hat Enterprise Linux 6 now supports ext4, so Anaconda now allows you to use the ext4 file system on any partition, including the /boot and root partitions.

2.2.2. Kickstart

This section describes what behaviors have changed with related to automated installations (Kickstart).

2.2.2.1. Behavioral Changes

  • Previously, a Kickstart file that did not have a network line resulted in the assumption that DHCP should be used to configure the network. This was inconsistent with the rest of Kickstart in that all other missing lines mean installation should halt and prompt for input. Now, having no network line means that installation will halt and prompt for input. Also, the --bootproto=query option is deprecated. If you want to continue using DHCP without interruption, add network --bootproto=dhcp to your Kickstart file.
  • Traditionally, disks have been referred to throughout Kickstart by a device node name (such as sda). The Linux kernel has moved to a more dynamic method where device names are not guaranteed to be consistent across reboots, so this can complicate usage in Kickstart scripts. To accomodate stable device naming, you can use any item from /dev/disk in place of a device node name. For example, instead of:
    part / --fstype=ext4 --onpart=sda1
    
    You could use an entry similar to one of the following:
    part / --fstype=ext4 --onpart=/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0-part1
    part / --fstype=ext4 --onpart=/dev/disk/by-id/ata-ST3160815AS_6RA0C882-part1
    
    This provides a consistent way to refer to disks that are more meaningful than just sda. This is especially useful in large storage environments.
  • You can also use shell-like entries to refer to disks. This is primarily intended to make it easier to use the clearpart and ignoredisk commands in large storage environments. For example, instead of:
    ignoredisk --drives=sdaa,sdab,sdac
    
    You could use an entry similar to one of the following:
    ignoredisk --drives=sda?
    ignoredisk --drives=/dev/disk/by-path/pci-0000:00:05.0-scsi-*
    
  • Kickstart will halt with an error in more cases than previous versions. For example, if you refer to a disk that does not exist, the installation will halt and inform you of the error. This is designed to help detect errors in Kickstart files before they lead to larger problems. As a side-effect, files that are designed to be generic across different machine configurations may fail more often. These should be dealt with on a case-by-case basis.
  • When using a Kickstart configuration file via HTTP, an error may occur that indicates the file could not be retrieved. Click the OK button several times without making modifications to override this error successfully. As a workaround, use one of the other supported methods to retrieve Kickstart configurations.
  • The /tmp/netinfo file used for Kickstart network information has been removed. Anaconda now uses NetworkManager for interface configuration, and stores configuration in the ifcfg files in /etc/sysconfig/network-scripts/. It is possible to use this new location as a source of network settings for %pre and %post scripts.

2.2.2.2. Command Changes

This sections lists the most important changes to commands and their options:
  • The network --device option can now refer to devices by MAC addresses instead of device name. Similar to disks, network device names can also change across reboots depending on the order in which devices are probed. In order to allow consistent naming in Kickstart, you could use an entry similar to the following:
    network --device=00:11:22:33:44:55 --bootproto=dhcp
    
  • The langsupport, key and mouse commands have been removed. Any use of these commands will result in a syntax error. The monitor command has also been deprecated.
    Instead of langsupport, add the appropriate group to the %packages section of your Kickstart file. For example, to include French support, add @french-support.
    There is no replacement for the key option, as an installation key is no longer requested during install. Simply remove this option from your file.
    The mouse and monitor commands are not required as X can detect and configure settings automatically. For the same reason, the xconfig --resolution= command is no longer valid, and these can all be safely removed from the file.
  • The part --start and part --end commands have been deprecated and have no effect. Anaconda no longer allows creating partitions at specific sector boundaries. If you require a more strict level of partitioning, use an external tool in %pre and then tell anaconda to use existing partitions with the part --onpart command. Otherwise, create partitions with a certain size or use --grow.
  • Instead of creating groups manually in %post, you can now use the group command to create them for you. Please refer to the complete Kickstart documentation for more details.
  • The default autopart algorithm has changed. For all machines, autopart will create a /boot (or other special bootloader partitions as required by the architecture) and swap. For machines with at least 50 GB of free disk space, autopart will create a reaosnably sized root partition (/) and the rest will be assigned to /home. For those machines with less space, only root (/) will be created.
    If you do not want a /home volume created for you, do not use autopart. Instead, specify /boot, swap and /, making sure to allow the root volume to grow as necessary.
  • Anaconda now includes a new storage filtering interface to control which devices are visible during installation. This interface corresponds to the existing ignoredisk, clearpart and zerombr commands. Because ignoredisk is optional, excluding it from the Kickstart file will not cause the filter UI to appear during installation. If you wish to use this interface, add:
    ignoredisk --interactive
    
  • The --size=1 --grow option from the /tmp/partition-include file can no longer be used. You must specify a reasonable default size and partitions will grow accordingly.

2.2.2.3. Packages Changes

These changes affect the %packages section:
  • The --ignoreDeps and --resolveDeps arguments have been removed. Anaconda automatically resolves dependencies, but will skip installation of packages that have unmet dependencies.
  • If you want to get the exact same set of packages via Kickstart that you would in a default GUI install accepting all of the defaults, add the following:
    %packages --defaultPackages
    %end
    
  • You can also optionally specify the arcitecture of packages that you want installed for multi-arch installs. For instance:
    %packages
    glibc.i686
    %end
    
    This would add the x86 glibc package to the set, which can be handy on an x86-64 system that requires the x86 packages for compatibility reasons.
  • It is not possible to audit and migrate all of the packages and groups in the %packages section. Some packages and groups have been removed, some added, and some have had their name changed. Please refer to the Release Notes for more details.

2.2.2.4. Script Changes

These changes affect the use of %pre, %post and %traceback scripts.
  • Logging of errors while running scripts has been improved. Scripts are no longer removed after they are run, so they can be inspected. This is most useful on systems where the scripts are dynamically generated so you can see what was run. In addition, the stderr and stdout output is always logged for every script. This has one important side effect: if your scripts use an interactive program, you must pass --logfile=/dev/tty3 to the header of your scripts. Otherwise, you will not be able to interact with the program.

2.2.2.5. Syntax Changes

Changes to the core Kickstart syntax are quite rare. However, there are two important syntax changes to be aware of:
  • The %include option can now accept a URL as an argument, in addition to a file name.
  • The %packages, %post, %pre and %traceback sections should now have an %end option at the end. Previously, these sections had no explicit ending token, but ended where another began. Starting in Red Hat Enterprise Linux 6, using %end is recommended (and in future releases will be required). At that point, files without an %end token will fail. Please begin adding this to files as soon as possible to prevent problems in the future.

2.2.2.6. Summary of Differences

This section lists the difference in commands and options in Red Hat Enterprise Linux 6:
Commands removed:
  • key
  • langsupport
  • mouse
Commands deprecated:
  • monitor
Commands added:
  • fcoe
  • group
  • rescue
  • sshpw
  • updates

2.2.2.7. pykickstart

The pykickstart package contains utilities that can be used to make migration easier. Make sure you have the latest package installed. The ksverdiff command takes a starting and ending syntax version, and reports differences in commands and options for the two given versions. It states the new, deprecated and removed commands and options. For example:
$ ksverdiff --from RHEL5 --to RHEL6

The following commands were removed in RHEL6:
langsupport mouse key

The following commands were deprecated in RHEL6:
monitor

The following commands were added in RHEL6:
sshpw group rescue updates fcoe
 ...
You can also check the validity of your kickstart file with the ksvalidator command. This command checks the validity of the file against any kickstart syntax version that you specify. However, it can not inform you about problems that would only happen at install time, for example if you specify part --ondisk=sdr and no such device exists. Example usage:
$ ksvalidator --version RHEL6 my-rhel5-ks.cfg

2.2.3. Networking

This section describes what behaviors have changed in the graphical installer, relating to networking.
  • Anaconda is now using NetworkManager for configuration of network interfaces during installation. The main network interface configuration screen in Anaconda has been removed. Users are only prompted for network configuration details if they are necessary during installation. The settings used during installation are then written to the system for later use.
  • When using boot.iso to boot the installer, Anaconda defaults to using the Red Hat Enterprise Linux mirrorlist URL as the installation source. The method selection screen no longer appears by default. If you do not wish to use the mirrorlist URL, either add repo=your-installation-source or add askmethod to the installer boot parameters. The askmethod option causes the source selection screen to appear as it did in previous releases.
  • When PXE booting and using a .iso file mounted via NFS for the installation media, add repo=nfs:server:/path/ to the command line. The install.img file also needs to be extracted and/or placed into the nfs:server:/path/images/ directory.
  • Some systems with multiple network interfaces may not assign eth0 to the first network interface as recognized by the system BIOS. This can cause the installer to attempt to use a different network interface than was initially used by PXE. To change this behavior, use the following in pxelinux.cfg/* configuration files:
    IPAPPEND 2 APPEND
          ksdevice=bootif
    
  • This configuration option causes the installer to use the same network interface as the system BIOS and PXE use. You can also use the following option, which will cause the installer to use the first network device it finds that is linked to a network switch:
     
    ksdevice=link
    

2.3. Text-Based Installer

The text-mode installation option in Red Hat Enterprise Linux 6 is significantly more streamlined than it was in earlier versions. Text-mode installation now omits the more complicated steps that were previously part of the process, and provides you with an uncluttered and straightforward experience. This section describes the changes in behavior when using the text-based installer:
  • Anaconda now automatically selects packages only from the base and core groups. These packages are sufficient to ensure that the system is operational at the end of the installation process, ready to install updates and new packages.
  • Anaconda still presents you with the initial screen from previous versions that allows you to specify where anaconda should install Red Hat Enterprise Linux on your system. You can choose to use a whole drive, to remove existing Linux partitions, or to use the free space on the drive. However, anaconda now automatically sets the layout of the partitions and does not ask you to add or delete partitions or file systems from this basic layout. If you require a customized layout at installation time, you should perform a graphical installation over a VNC connection or a kickstart installation. More advanced options, such as logical volume management (LVM), encrypted filesystems, and resizable filesystems are still only available only in graphical mode and kickstart.
  • Anaconda now performs bootloader configuration automatically in the text-based installer.
  • Text-mode installations using kickstart are carried out in the same way that they were in previous versions. However, because package selection, advanced partitioning, and bootloader configuration are now automated in text mode, anaconda cannot prompt you for information that it requires during these steps. You must therefore ensure that the kickstart file includes the packaging, partitioning, and bootloader configurations. If any of this information is missing, anaconda will exit with an error message.

Chapter 3. Storage and File Systems

3.1. RAID
3.2. ext4
3.3. fusecompress
3.4. blockdev

3.1. RAID

Upgrades
Performing an upgrade from a dmraid set to an mdraid set is not supported. A warning will be displayed when an upgrade of this type is attempted. Upgrades from existing mdraid sets and creation of new mdraid sets are possible.
The new default superblock can cause problems when upgrading sets. This new superblock format (used on all devices except when creating a RAID1 /boot partition) is now at the beginning of the array, and any file system or LVM data is offset from the beginning of the partition. When the array is not running, LVM and file system mount commands may not detect the device as having a valid volume or file system data. This is intentional, and means that if you want to mount a single disk in a RAID1 array, you need to start the array having only that single disk in it, then mount the array. You can not mount the bare disk directly. This change has been made as mounting a bare disk directly can silently corrupt the array if a resync is not forced.
On subsequent reboots, the RAID system may then consider the disk that was not included in the array as being incompatible, and will disconnect that device from the array. This is also normal. When you are ready to re-add the other disk back into the array, use the mdadm command to hot add the disk into the array, at which point a resync of the changed parts of the disk (if you have write intent bitmaps) or the whole disk (if you have no bitmap) will be performed, and the array will once again be synchronized. From this point, devices will not be disconnected from the array, as the array is considered to be properly assembled.
The new superblock supports the concept of named mdraid arrays. Dependency on the old method of array enumeration (for instance, /dev/md0 then /dev/md1, etc.) for distinguishing between arrays has been dropped. You can now choose an arbitrary name for the array (such as home, data, or opt). Create the array with your chosen name using the --name=opt option. Whatever name is given to the array, that name will be created in /dev/md/ (unless a full path is given as a name, in which case that path will be created; or unless you specify a single number, such as 0, and mdadm will start the array using the old /dev/mdx scheme). The Anaconda installer does not currently allow for the selection of array names, and instead uses the simple number scheme as a way to emulate how arrays were created in the past.
The new mdraid arrays support the use of write intent bitmaps. These help the system identify problematic parts of an array, so that in the event of an unclean shutdown, only the problematic parts need to be resynchronized, and not the entire disk. This drastically reduces the time required to resynchronize. Newly created arrays will automatically have a write intent bitmap added when suitable. For instance, arrays used for swap and very small arrays (such as /boot arrays) do not benefit from having write intent bitmaps. It is possible to add a write intent bitmap to your previously existing arrays after the upgrade is complete via the mdadm --grow command on the device, however write intent bitmaps do incur a modest performance hit (about 3-5% at a bitmap chunk size of 65536, but can increase to 10% or more at small bitmap chunk sizes such as 8192). This means that if a write intent bitmap is added to an array, it is best to keep the chunk size reasonably large. The recommended size is 65536.

3.2. ext4

Migration from ext3
It is recommended that those wishing to make use of ext4 start with a freshly formatted partition. However, you may install Red Hat Enterprise Linux 6 with the ext4migrate boot option if you wish to convert your legacy ext3 partitions to ext4. It is important to note that by doing this you will not receive all of the benefits ext4 offers, since the data currently residing on the partition will not make use of the extents features and other changes. New data will however make use of extents. Passing this boot option to migrate to ext4 is not recommended and it is strongly recommended that you back up file systems before attempting this migration.
Behavioral changes
Red Hat Enterprise Linux 6 provides full support for ext4 and it is the default file system for new installations. This section explains the major changes in behaviour that this new file system introduces.
  • The included version of the GRUB bootloader provides full support for ext4 partitions. The installer also allows you to place any /boot file system on an ext4 partition.
  • The included version of the e2fsprogs package is fully compatible with ext4.
  • In some cases, ext4 file systems created under Red Hat Enterprise Linux 5.3 with the e4fsprogs package created an ext4dev file system type. The test_fs feature flag identifying these file systems as a development version can be removed with the following command: tune2fs -E ^test_fs. This is done so that these file systems will be recognized as regular ext4 file systems.

3.3. fusecompress

fusecompress
Fusecompress is a compressing filesystem mountable by unprivileged users. Red Hat Enterprise Linux 6 includes an updated version that fixes several bugs but changes the on-disk format. Users with existing fusecompress filesystems will need to migrate their data to the new format. Unless decompression is performed before upgrading, the fusecompress_offline1 package is required.

3.4. blockdev

blockdev
The blockdev --rmpart command option is no longer supported. The partx(8) and delpart(8) commands now provide this functionality.

Chapter 4. Networking and Services

4.1. Interfaces and Configuration
4.2. Service Initialization
4.3. IPTables/Firewalls
4.4. BIND
4.5. NTP
4.6. Kerberos
4.7. Mail
4.7.1. Sendmail
4.7.2. Exim
4.7.3. Dovecot
4.8. MySQL®
4.9. PostgreSQL
4.10. Drupal
4.11. Squid
4.12. Bluetooth
4.13. Cron
4.14. Logging

4.1. Interfaces and Configuration

NetworkManager
Red Hat Enterprise Linux 6 uses NetworkManager by default when configuring network interfaces.
Infiniband
Infiniband support (specifically the openib start script and the openib.conf file) was provided by the openib package in Red Hat Enterprise Linux 5. The package name has changed in Red Hat Enterprise Linux 6 to reflect its functionality more accurately. The Infiniband functionality is now distributed in the rdma package. The service is now called rdma, and the configuration file is located at /etc/rdma/rdma.conf.

4.2. Service Initialization

xinetd
Xinetd is a daemon used to start network services on demand. The changes in xinetd are related to the allowed limit of open file descriptors:
  • The listening mechanism has changed from select() to poll(). With this change, the limit of open file descriptors used by xinetd can be changed.
  • File descriptor limit can also now be changed on a per-service basis. This can be done in the configuration file for the service via the rlimit_files directive. The value can be a positive integer or UNLIMITED.
Runlevels
In Red Hat Enterprise Linux 6, the custom runlevels 7, 8 and 9 are no longer supported and can not be used.
Upstart
In Red Hat Enterprise Linux 6, init from the sysvinit package has been replaced with Upstart, an event-based init system. This system handles the starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running. For more information on Upstart itself, refer to the init(8) man page.
Processes are known to Upstart as jobs and are defined by files in the /etc/init directory. Upstart is very well documented via man pages. Command overview is in init(8) and job syntax is described in init(5).
Upstart provides the following behavioral changes in Red Hat Enterprise Linux 6:
  • The /etc/inittab file is deprecated, and is now used only for setting up the default runlevel via the initdefault line. Other configuration is done via upstart jobs in the /etc/init directory.
  • The number of active tty consoles is now set by the ACTIVE_CONSOLES variable in /etc/sysconfig/init, which is read by the /etc/init/start-ttys.conf job. The default value is ACTIVE_CONSOLES=/dev/tty[1-6], which starts a getty on tty1 through tty6.
  • A serial getty is still automatically configured if the serial console is the primary system console. In prior releases, this was done by kudzu, which would edit /etc/inittab. In Red Hat Enterprise Linux 6, configuration of the primary serial console is handled by /etc/init/serial.conf.
  • To configure a getty running on a non-default serial console, you must now write an Upstart job instead of editing /etc/inittab. For example, if a getty on ttyS1 is desired, the following job file (/etc/init/serial-ttyS1.conf) would work:
    # This service maintains a getty on /dev/ttyS1.
    
    start on stopped rc RUNLEVEL=[2345]
    stop on starting runlevel [016]
    
    respawn
    exec /sbin/agetty /dev/ttyS1 115200 vt100-nav
    
As in prior releases, you should still make sure that ttyS1 is in /etc/securetty if you wish to allow root logins on this getty.
Because of the move to Upstart, using /etc/shutdown.allow for defining who can shut the machine down is no longer supported.

4.3. IPTables/Firewalls

IPTables includes a SECMARK target module. This is used to set the security mark value associated with the packet for use by security subsystems such as SELinux. It is only valid in the mangle table. Refer to the following for example usage:
iptables -t mangle -A INPUT -p tcp --dport 80 -j SECMARK --selctx \ system_u:object_r:httpd_packet_t:s0

4.4. BIND

There are several major changes in BIND configuration:
  • Default ACL configuration - in Red Hat Enterprise Linux 5, the default ACL configuration allowed queries and offered recursion for all hosts. By default in Red Hat Enterprise Linux 6, all hosts can make queries for authoritative data but only hosts from the local network can make recursive queries.
  • New allow-query-cache option - the allow-recursion option has been deprecated in favor of this option. It is used to control access to server caches, which include all non-authoritative data (like recursive lookups and root nameserver hints).
  • Chroot environment management - the bind-chroot-admin script, which was used to create symlinks from a non-chroot environment to a chroot enviromnent, is deprecated and no longer exists. Instead, configuration can be managed directly in a non-chroot environment and init scripts automatically mount needed files to the chroot environment during named startup in the case that files are not already present in the chroot.
  • /var/named directory permissions - The /var/named directory is no longer writable. All zone files that need to be writable (such as dynamic DNS zones, DDNS) should be placed in the new writable directory: /var/named/dynamic.
  • The dnssec [yes|no] option no longer exists - The global dnssec [yes|no] options have been split into two new options: dnssec-enable and dnssec-validation. The dnssec-enable option enables DNSSEC support. The dnssec-validation option enables DNSSEC validation. Note that setting dnssec-enable to "no" on recursive server means that it cannot be used as a forwarder by another server that performs DNSSEC validation. Both options are set to yes by default.
  • You no longer need to specify the controls statement in /etc/named.conf if you use the rndc management utility. The named service automatically allows control connections via the loopback device and both named and rndc use the same secret key generated during installation (located in /etc/rndc.key).
In a default installation, BIND is installed with DNSSEC validation enabled, and uses the ISC DLV register. This means all signed domains (such as gov., se., cz.), that have their key in the ISC DLV register, are cryptographically validated on the recursive server. If validation fails due to attempts at cache poisoning, then the end user will not be given this forged/spoofed data. DNSSEC deployment is now a widely-implemented feature, is an important step in making the Internet more secure for end users, and is fully supported in Red Hat Enterprise Linux 6. As previously mentioned, DNSSEC validation is controlled with the dnssec-validation option in /etc/named.conf.

4.5. NTP

NTP (Network Time Protocol) is used to synchronize the clocks of computer systems over the network. In Red Hat Enterprise Linux 6, the default configuraton file, /etc/ntp.conf, now has the following lines commented:
#server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10
This configuration means that ntpd will only distribute time information to network clients if it is specifically synchronized to an NTP server or a reference clock. To get ntpd to offer this information even when not synchronized, the two lines should be uncommented.
Also, when ntpd is started with the -x option (in OPTIONS in the /etc/sysconfig/ntpd file), or if there are servers specified in /etc/ntp/step-tickers, the service no longer runs the ntpdate command before starting. There is now a separate ntpdate service which can be enabled independently from the ntpd service. This ntpdate service is disabled by default, and should be used only when other services require the correct time before starting, or do not function properly when time modifications occur later by ntpd.
You may encounter problems running this service with the default NetworkManager configuration. It may be necessary to add NETWORKWAIT=1 to /etc/sysconfig/network, as described in the Red Hat Enterprise Linux Deployment Guide.

4.6. Kerberos

In Red Hat Enterprise Linux 6, Kerberos clients and servers (including KDCs) will default to not using keys for the ciphers des-cbc-crc, des-cbc-md4, des-cbc-md5, des-cbc-raw, des3-cbc-raw, des-hmac-sha1, and arcfour-hmac-exp. By default, clients will not be able to authenticate to services which have keys of these types.
Most services can have a new set of keys (including keys for use with stronger ciphers) added to their keytabs and experience no downtime, and the ticket granting service's keys can likewise be updated to a set which includes keys for use with stronger ciphers, using kadmin's cpw -keepold command.
As a temporary workaround, systems that need to continue to use the weaker ciphers require the allow_weak_crypto option in the libdefaults section of the /etc/krb5.conf file. This variable is set to false by default, and authentication will fail without having this option enabled:
[libdefaults]
allow_weak_crypto = yes
Additionally, support for Kerberos IV, both as an available shared library and as a supported authentication mechanism in applications, has been removed. Newly-added support for lockout policies requires a change to the database dump format. Master KDCs which need to dump databases in a format which older KDCs can consume should run kdb5_util's dump command with the -r13 option.

4.7. Mail

4.7.1. Sendmail

In some releases of Red Hat Enterprise Linux 5, the sendmail Mail Transport Agent (MTA) accepted network connections from external hosts by default. In Red Hat Enterprise Linux 6, sendmail by default only accepts connections from the local system (localhost). To grant sendmail the ability to act as a server for remote hosts, perform one of the following steps:
  • Edit /etc/mail/sendmail.mc and change the DAEMON_OPTIONS line to also listen on network devices
  • Comment out the DAEMON_OPTIONS line in /etc/mail/sendmail.mc. Then install the sendmail-cf package and regenerate /etc/mail/sendmail.cf by running the following commands:
    su -c 'yum install sendmail-cf'
    su -c 'make -C /etc/mail'
    

4.7.2. Exim

Exim has been removed from Red Hat Enterprise Linux 6. Postfix is the default and recommended MTA.

4.7.3. Dovecot

Dovecot configuration
The configuration for Dovecot 2.x has changed. The master configuration file /etc/dovecot.conf has moved to /etc/dovecot/dovecot.conf and other parts of Dovecot configuration have moved to /etc/dovecot/conf.d/*.conf. The majority of the configuration is the same and is compatible with this new version; however, you can test your configuration and list which options have been renamed, removed, or otherwise changed in this new version with the following command:
doveconf [-n] -c /old/dovecot.conf

4.8. MySQL®

DBD Driver
The MySQL DBD driver has been dual-licensed and the related licensing issues have been resolved. The resulting apr-util-mysql package is now included in the Red Hat Enterprise Linux 6 software repositories.

4.9. PostgreSQL

New Release
This release includes an updated version of PostgreSQL. For more information, refer to http://wiki.postgresql.org/wiki/WhatsNew84.
Upgrading Databases
Before upgrading an existing Red Hat Enterprise Linux 6 system with a PostgreSQL database, it could be necessary to follow the procedure described here: http://www.postgresql.org/docs/8.4/interactive/install-upgrading.html. Otherwise the data may be not accessible by the new version of PostgreSQL, due to changes in the data format.

4.10. Drupal

Drupal has been updated from the 5.x series to 6.x. For details, refer to: http://drupal.org/ Remember to log in to your site as the admin user, and disable any third-party modules before upgrading this package. After upgrading the package:
  • Copy /etc/drupal/default/settings.php.rpmsave to /etc/drupal/default/settings.php, and repeat for any additional sites' settings.php files.
  • To run the upgrade script, browse to its location using the web interface of your installed host. For example, http://hostname.example.com/drupal/update.php.

4.11. Squid

Squid has been updated to 3.1, and now provides native IPv6 support. The configuration file /etc/squid/squid.conf has been significantly shortened; the configuration options for Squid 3.1 have changed and are not entirely backwards compatible with some older versions. For complete details on configuration and other changes, please refer to the Squid 3.1 release notes: http://www.squid-cache.org/Versions/v3/3.1/RELEASENOTES.html.
Squid provides the ability to authenticate users via ncsa_auth and pam_auth helpers. The permissions of these helpers has changed in Red Hat Enterprise Linux 6. Previous releases enabled the setuid flag for the ncsa_auth and pam_auth, as elevated privileges were needed to access system files needed for authentication. Now, in Red Hat Enterprise Linux 6, Squid does not require the setting of the setuid flag for these helpers. This change has been made because of the security risks present when running setuid flags. Normal functionality has been maintained without setting these flags.

4.12. Bluetooth

Bluetooth Service On Demand
In order to support Bluetooth devices, the Bluetooth background service was started by default in previous versions of Red Hat Enterprise Linux. In this release, the Bluetooth service is started on demand when needed and automatically stops 30 seconds after the use of the device has stopped. This reduces overall initial startup time and resource consumption.

4.13. Cron

Vixie cron and Cronie
Red Hat Enterprise Linux 6 includes the cronie package as a replacement for vixie-cron. The main difference between these packages is how the regular jobs (daily, weekly, monthly) are done. Cronie uses the /etc/anacrontab file, which by default looks like the following:
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45

# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

# period in days   delay in minutes   job-identifier   			command

1			5		cron.daily	nice run-parts	/etc/cron.daily
7			25		cron.weekly	nice run-parts	/etc/cron.weekly
@monthly		45		cron.monthly	nice run-parts	/etc/cron.monthly
These regular jobs will be executed once a day in the 03:00-22:00 time interval, including a random delay. For example, cron.daily will have a 5 minute forced delay plus a random delay of 0-45 minutes. You could also run jobs with no delays, between 4 and 5:
RANDOM_DELAY=0 # or don't use this option at all

START_HOURS_RANGE=4-5

# period in days   delay in minutes   job-identifier   			command
1			0		cron.daily	nice run-parts	/etc/cron.daily
7			0		cron.weekly	nice run-parts	/etc/cron.weekly
@monthly		0		cron.monthly	nice run-parts	/etc/cron.monthly
Features of cronie include:
  • Random delay for starting the job in /etc/anacrontab.
  • Time range of regular jobs can be defined in /etc/anacrontab.
  • Each cron table can have its own defined time zone with the CRON_TZ variable.
  • By default, the cron daemon checks for changes in tables with inotify.
For further details about cronie and cronie-anacron, please refer to the Red Hat Enterprise Linux Deployment Guide.

4.14. Logging

The dateext option is now enabled by default in /etc/logrotate.conf. This option archives old versions of log files by adding a extension representing the date (in YYYYMMDD format). Previously, a number was appended to files.

Chapter 5. Command Line Tools

5.1. Grep
5.2. Sed
5.3. Pcre
5.4. Shells
This section descibes the behavioral changes of command-line tools in Red Hat Enterprise Linux 6.

5.1. Grep

The behavior of the grep command has changed with regards to searching for upper and lower case strings. Using interval searching in the [a-z] format is dependent on the LC_COLLATE variable.
You can set LC_COLLATE=C to preserve old behavior and to achieve proper results when performing interval searching with this method; however, in Red Hat Enterprise Linux 6, the recommended way of interval searching is to use the [[:lower:]],[[:upper:]] format.
This change can significantly affect output, so scripts and processes should be reviewed to continue to achieve the correct results.

5.2. Sed

The sed command with the -i option lets you delete the contents of a read-only file and lets you delete other protected files. The permissions on a file define what actions can take place to that file, while the permissions on a directory define what actions can be taken to the list of files in that directory. For this reason, sed does not let you use -i on a write-enabled file in a read-only directory, and will break symbolic or hard links when the -i option is used on such a file.

5.3. Pcre

The pcre package has been updated to 7.8. It includes the following behavioral changes:
  • UTF-8 checking now references RFC 3629 instead of RFC 2279. This makes it more restrictive in the strings that it accepts. For example, the UTF-8 character ordinal value is now limited to 0x0010FFFF:
    $ echo -ne "\x00\x11\xff\xff" | recode UCS-4-BE..UTF8 | pcregrep --utf-8 '.'
    pcregrep: pcre_exec() error -10 while matching this line:
    
    Please refer to the RFC for more details: http://tools.ietf.org/html/rfc3629#section-12.
  • Saved patterns that were compiled by earlier versions of PCRE must be recompiled. This affects applications that serialize precompiled PCRE expressions to external memory (for example, a file) and load them later. This is usually done for performance reasons, for example in large spam filters.

5.4. Shells

The location of the shell binary files has changed. For example, the bash and ksh binaries are no longer in /usr/bin. Both binaries are now found in /bin. Scripts will require updating to point to the new location of the binary.

Chapter 6. Desktop

GDM Configuration
A number of GDM settings are now managed within GConf.
The GDM default greeter is called the simple Greeter and is configured via GConf. Default values are stored in GConf in the gdm-simple-greeter.schemas file. Use gconftool2 or gconf-editor to edit these values. The following options exist for the Greeter:
Plugins can also be disabled using GConf. For example, if you want to disable the sound plugin then unset the following key: /apps/gdm/simple-greeter/settings-manager-plugins/sound/active.

Chapter 7. Security and Authentication

7.1. SELinux
7.2. SSSD
7.3. LDAP
7.3.1. Converting slapd configuration
7.4. Checksums
7.5. Pluggable Authentication Modules (PAM)
7.6. System Users
This chapter covers behavioral changes for security and authentication, including SELinux, SSSD, LDAP, Checksums, and PAM.

7.1. SELinux

The sshd daemon is now a confined service.

7.2. SSSD

SSSD (System Security Services Daemon) offers access to remote identity and authentication mechanisms, referred to as providers. It allows those providers to be plugged in as SSSD back-ends, abstracting the local and network identity and authentication sources and allowing any kind of identity data provider to be plugged in. A domain is a database containing user information, which may serve as the source of a provider’s identity information. Multiple identity providers are supported, allowing two or more identity servers to act as separate user namespaces. Collected information is available to applications on the front-end through standard PAM and NSS interfaces.
SSSD runs as a suite of services, independent of the applications that use it. Those applications therefore no longer need to make their own connections to remote domains, or even be aware of which is being used. Robust local caching of identity and group membership information allows operations regardless of where identity comes from (e.g., LDAP, NIS, IPA, DB, Samba, etc.), offers improved performance, and allows authentication to be performed even when operating offline and online authentication is unavailable. SSSD also allows the use of multiple providers of the same type (e.g., multiple LDAP providers) and allows domain-qualified identity requests to be resolved by those different providers. Further details can found in the Red Hat Enterprise Linux 6 Deployment Guide.

7.3. LDAP

OpenLDAP
The configuration required for the OpenLDAP service has changed in Red Hat Enterprise Linux 6. In previous versions, slapd was configured via the /etc/openldap/slapd.conf file. The slapd configuration in Red Hat Enterprise Linux 6 is now stored in a special LDAP directory (/etc/openldap/slapd.d/) with a pre-defined schema and Directory Information Tree (DIT). Further details of this configuration schema can be found at openldap.org. The following section details an example on how to convert the old configuration file to work with the new directory:

7.3.1. Converting slapd configuration

This example assumes that the file to convert from the old slapd configuration is located at /etc/openldap/slapd.conf and the new directory for OpenLDAP configuration is located at /etc/openldap/slapd.d/.
  • Remove the contents of the new /etc/openldap/slapd.d/ directory:
     # rm -rf /etc/openldap/slapd.d/* 
  • Run slaptest to check the validity of the configuration file and specify the new configuration directory:
     slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 
  • Configure permissions on the new directory:
     chown -R ldap:ldap /etc/openldap/slapd.d 
     chmod -R 000 /etc/openldap/slapd.d 
     chmod -R u+rwX /etc/openldap/slapd.d 
  • Once the service is confirmed to be working in the new configuration directory, remove the old configuration file:
     rm -rf /etc/openldap/slapd.conf 

7.4. Checksums

Red Hat Enterprise Linux now uses the SHA-256 digest algorithm for data verification and authentication in more places than before, upgrading from the cryptographically weaker SHA-1 and MD5 algorithms.

7.5. Pluggable Authentication Modules (PAM)

Common configuration for PAM services is located in the /etc/pam.d/system-auth-ac file.
Authentication modules are now also written into additional PAM configuration files: /etc/pam.d/password-auth-ac, etc/pam.d/smartcard-auth-ac and /etc/pam.d/fingerprint-auth-ac.
The PAM module for sshd and other remote services such as ftpd now include the /etc/pam.d/password-auth file in Red Hat Enterprise Linux 6 instead of /etc/pam.d/system-auth.

7.6. System Users

The threshold for statically assigned UID/GID numbers (defined by the setup package in the /usr/share/doc/setup-*/uidgid file) has increased from 100 (in Red Hat Enterprise Linux 3, 4, and 5) to 200 in Red Hat Enterprise Linux 6. This change can affect systems that have 100-200 dynamically or statically assigned UID/GIDs, and cause failure in the installation and running of some appications.
Dynamic UID/GID allocation now ranges from 499 downward in Red Hat Enterprise Linux 6. For static system user creation without reservations enforced by the setup package, it is recommended to use the UID/GID area of 300 and above.

Chapter 8. Kernel

8.1. Kernel

8.1. Kernel

The dracut tool has replaced the use of mkinitrd. Also, the /etc/modprobe.conf file is no longer used by default in the management of kernel modules, however it can still be used if manually created. Refer to the following for an example usage of the dracut tool.:
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-new.img
# dracut --force /boot/initramfs-$(uname -r).img $(uname -r)

Chapter 9. Package And Driver Changes

9.1. System Configuration Tools Changes
9.2. Bash (Bourne-Again Shell)
9.3. Other Package Changes
9.4. Driver Changes
9.5. Library Changes
The list of included packages and system drivers undergoes regular changes in Red Hat Enterprise Linux releases. This is done for a number of reasons: packages and drivers are added or updated in the operating system to provide new functionality, or the packages and drivers may represent out-of-date hardware and are removed. The upstream project for the packages and drivers might no longer be maintained, or hardware-specific packages and drivers are no longer supported by a hardware vendor and are removed.
This chapter lists the new and updated packages and drivers in Red Hat Enterprise Linux 6, as well as those that have been deprecated and discontinued (removed).

9.1. System Configuration Tools Changes

system-config-bind
The system-config-bind tool has been deprecated and removed without replacement. Editing the name server configuration manually via the named.conf file is recommended in Red Hat Enterprise Linux 6. Comprehensive BIND documentation is installed as part of the bind package in /usr/share/doc/bind-x.y.z. Also, sample configurations can be found in the /usr/share/doc/bind-x.y.z/sample directory. The system-config-bind tool from previous versions does, however, generate standard BIND configuration, so depending on your environment it is possible to migrate to the version of BIND found in Red Hat Enterprise Linux 6 by moving old configuration files to the correct location and performing sufficient testing.
system-config-boot
The system-config-boot tool allowed graphical configuration of the GRUB bootloader. In Red Hat Enterprise Linux 6 it has been deprecated and removed without replacement. The default GRUB configuration is sufficient for many users, however if manual changes are required, the boot configuration can be accessed and changed in the grub.conf file, located in the /boot/grub directory. Full documentation for configuring GRUB can be found at the GRUB homepage: http://www.gnu.org/software/grub/.
system-config-cluster
The system-config-cluster tool has been deprecated and removed without replacement. Using ricci and luci (from the Conga project) is recommended.
system-config-display
The system-config-display tool has been replaced by XRandr configuration tools as found in both supported desktops: GNOME and KDE. There is no explicit configuration file (xorg.conf) in the default X server installation as display management is now done dynamically via one of the following menu options:
GNOME: System -> Preferences -> Display
KDE: System Settings -> Computer Administration -> Display
Note: The command line utility (xrandr) can be also used for display configuration. See the xrandr --help command or the manual page via the man xrandr command for further details.
system-config-httpd
The system-config-httpd tool has been deprecated and removed without replacement. Users should configure web servers manually. Configuration can be done in the /etc/httpd directory. The main configuration file is located at /etc/httpd/conf/httpd.conf. This file is well documented with detailed comments in the file for most server configurations; however if required, the complete Apache web server documentation is shipped in the httpd-manual package.
system-config-lvm
The system-config-lvm tool has been deprecated. Users should perform management of logical volumes via the gnome-disk-util or the lvm tools.
system-config-netboot
The system-config-netboot tool has been deprecated and removed without replacement. Using Red Hat Satellite is recommended.
system-config-network
The system-config-network tool has been replaced by NetworkManager - a modern and powerful network configuration tool. NetworkManager-applet (nm-applet) is installed by default in both supported desktop environments and can be found in the system tray panel area. See the NetworkManager home page for further information: http://projects.gnome.org/NetworkManager/.
system-config-nfs
The system-config-nfs tool has been deprecated and removed without replacement. Users should set up NFS server configuration manually.
system-config-rootpassword
The system-config-rootpassword tool has been replaced by the system-config-users tool - a powerful user management and configuration tool. The root password can be set in the system-config-users tool by unchecking the "Hide system users and groups" option in the Preferences dialog. The root user will now be shown in the main listing, and the password can be modified like any other user.
system-config-samba
The system-config-samba tool has been deprecated and removed without replacement. Users should set up SMB server configuration manually.
system-config-securitylevel
The system-config-securitylevel tool has been obsoleted by the system-config-firewall tool.
system-config-soundcard
The system-config-soundcard tool has been removed. Sound card detection and configuration is done automatically.
system-config-switchmail
The system-config-switchmail tool has been deprecated and removed without replacement. Postfix is the preferred and default MTA (Mail Transfer Agent) in Red Hat Enterprise Linux 6. If you are using another MTA, it should be configured manually according to its specific configuration files and techniques.

9.2. Bash (Bourne-Again Shell)

Red Hat Enterprise Linux 6 includes version 4.1 of Bash as its default shell. This section describes the compatibility issues that this version introduces over previous versions.
  • Bash-4.0 and later now allows process substitution constructs to pass unchanged through brace expansion, so any expansion of the contents will have to be separately specified, and each process subsitution will have to be separately entered.
  • Bash-4.0 and later now allows SIGCHLD to interrupt the wait builtin, as Posix specifies, so the SIGCHLD trap is no longer always invoked once per exiting child if you are using `wait' to wait for all children.
  • Since Bash-4.0 and later now follows Posix rules for finding the closing delimiter of a $() command substitution, it will not behave as previous versions did, but will catch more syntax and parsing errors before spawning a subshell to evaluate the command substitution.
  • The programmable completion code uses the same set of delimiting characters as readline when breaking the command line into words, rather than the set of shell metacharacters, so programmable completion and readline should be more consistent.
  • When the read builtin times out, it attempts to assign any input read to specified variables, which also causes variables to be set to the empty string if there is not enough input. Previous versions discarded the characters read.
  • In Bash-4.0 and later, when one of the commands in a pipeline is killed by a SIGINT while executing a command list, the shell acts as if it received the interrupt.
  • Bash-4.0 and later versions change the handling of the set -e option so that the shell exits if a pipeline fails (and not just if the last command in the failing pipeline is a simple command). This is not as Posix specifies. There is work underway to update this portion of the standard; the Bash-4.0 behavior attempts to capture the consensus at the time of release.
  • Bash-4.0 and later fixes a Posix mode bug that caused the . (source) builtin to search the current directory for its filename argument, even if "." is not in the system PATH. Posix says that the shell shouldn't look in the PWD variable in this case.
  • Bash-4.1 uses the current locale when comparing strings using operators to the [[ command. This can be reverted to the previous behavior by setting one of the compatNN shopt options.
Regular Expressions
Further to the points already listed, quoting the pattern argument to the regular expression matching conditional operator =~ may cause regexp matching to stop working. This occurs on all architectures. In versions of bash prior to 3.2, the effect of quoting the regular expression argument to the [[ command's =~ operator was not specified. The practical effect was that double-quoting the pattern argument required backslashes to quote special pattern characters, which interfered with the backslash processing performed by double-quoted word expansion and was inconsistent with how the == shell pattern matching operator treated quoted characters.
In bash version 3.2, the shell was changed to internally quote characters in single- and double-quoted string arguments to the =~ operator, which suppresses the special meaning of the characters that are important to regular expression processing (`.', `[', `\', `(', `), `*', `+', `?', `{', `|', `^', and `$') and forces them to be matched literally. This is consistent with how the == pattern matching operater treats quoted portions of its pattern argument.
Since the treatment of quoted string arguments was changed, several issues have arisen, chief among them the problem of white space in pattern arguments and the differing treatment of quoted strings between bash 3.1 and bash 3.2. Both problems may be solved by using a shell variable to hold the pattern. Since word splitting is not performed when expanding shell variables in all operands of the [[ command, this provides the ability to quote patterns as you wish when assigning the variable, then expand the values to a single string that may contain whitespace. The first problem may be solved by using backslashes or any other quoting mechanism to escape the white space in the patterns.
Bash 4.0 introduces the concept of a compatibility level, controlled by several options to the shopt builtin. If the compat31 option is enabled, bash will revert to the 3.1 behavior with respect to quoting the right-hand side of the =~ operator.

9.3. Other Package Changes

Updated Packages
The following table lists updated packages in Red Hat Enterprise Linux 6 and a description of noteworthy changes.
Table 9.1. Updated Package
Updated Packages Description
OProfile OProfile has been updated to 0.9.5. This newer version includes support for Intel Atom and i7 processors, AMD Family 11h processors, and the Instruction Based Sampling (IBS) feature in AMD Family 10h.
module-init-tools /etc/modprobe.conf does not exist by default. Can still be used if manually created.

Discontinued Packages
The following table lists discontinued (removed) packages in Red Hat Enterprise Linux 6 and their replacements.
Table 9.2. Discontinued Packages
Discontinued Package Replaced By
aspell hunspell. aspell is only provided as a build dependency. Applications that want to use spell-checking must use hunspell.
beecrypt NSS/OpenSSL
crash-spu-commands None. Cell-specific packages no longer included.
dhcpv6/dhcpv6-client dhcp/dhclient binaries now have IPv6 capability built in.
elfspe2 None. Cell-specific packages no longer included.
exim Postfix
gnbd iSCSI recommended for use instead.
gnome-vfs gvfs
ipsec-tools Openswan
kmod-gnbd iSCSI recommended for use instead.
lam openmpi
libspe2 None. Cell-specific packages no longer included.
libspe2-devel None. Cell-specific packages no longer included.
linuxwacom xorg-x11-drv-wacom
mkinitrd dracut
nss_ldap nss_pam_ldapd, pam_ldap
openmotif-2.2 openmotif-2.3
pidgin empathy
spu-tools None. Cell-specific packages no longer included.
switchdesk The session management performed by both supported session managers: GDM and KDM.
syslog rsyslog
SysVinit upstart
vixie-cron cronie

Deprecated Packages
  • qt3
  • GFS1
  • gcj - Included in Red Hat Enterprise Linux 6 for performance reasons, however gcj is not likely to be included in future releases.

9.4. Driver Changes

This section describes the driver changes in Red Hat Enterprise Linux 6. Please note that all drivers are now loaded to initramfs by default.
Discontinued Drivers
  • aic7xxx_old
  • atp870u
  • cpqarray
  • DAC960
  • dc395x
  • gdth
  • hfs
  • hfsplus
  • megaraid
  • net/tokenring/
  • paride
  • qla1280
  • sound/core/oss
  • sound/drivers/opl3/*
  • sound/pci/nm256
Deprecated Drivers
  • aacraid
  • aic7xxx
  • i2o
  • ips
  • megaraid_mbox
  • mptlan
  • mptfc
  • sym53c8xx
Discontinued Kernel Components
  • NBD - Network Block Device supplanted by iSCSI in Red Hat Enterprise Linux 6.
  • HFS - Apple filesystem support discontinued in Red Hat Enterprise Linux 6.
  • Tux - Web Server accelerator discontinued in Red Hat Enterprise Linux 6.
  • Non-PAE x86 kernel - Previous versions of Red Hat Enterprise Linux contained multiple kernels for the i686 architecture: a kernel with, and a kernel without PAE. It has been many years since non-PAE hardware was sold in volume. Hence in Red Hat Enterprise Linux 6, there will only be a single kernel, one that includes PAE.
  • The Anticipatory I/O scheduler is deprecated and is not present in Red Hat Enterprise Linux 6. It is replaced by the CFQ (Completely Fair Queueing) I/O scheduler, which has been the default I/O scheduler in the Linux kernel since 2006. Customers using the Anticipatory I/O scheduler are encouraged to test their workload using CFQ and file bugs for any performance issues observed. While the goal is to make CFQ perform on par with the Anticipatory I/O scheduler in all tested workloads, Red Hat cannot guarantee that there will be no outliers.

9.5. Library Changes

32-bit libraries are not installed by default on Red Hat Enterprise Linux 6. You can change this behavior by setting multilib_policy=all in /etc/yum.conf, which will enable multilib policy as a system-wide policy.

Revision History

Revision History
Revision 1.1Wed Jul 28 2010Scott Radvan
Review for release.