Installing CentOS 7

Please note: This instruction was created for my personal use. Feel free to follow it, but I am not responsible for any problems or data loss!

Download the network install CD, which can be found at: Check the MD5 sum by running md5sum on CentOS-7-x86_64-NetInstall-2009.iso and compare the result to the SHA256 sums at:

Boot from the network install CD. Make sure you have at least 768MB of memory available, or you will not be able to create a custom harddisk layout.

Select Install CentOS 7 at the CD boot screen. Set the installation language to English; Keyboard: English (United States). Set the Date&Time options. Click the Installation Source setting, select Network and enter the correct URL:

  • Select the U.S. English keyboard layout.
  • Select Basic Storate Devices (unless you are installing to a SAN).
  • Enter the hostname you would like to use (do not add the domain name).
  • Select the correct timezone and make sure System uses UTC is enabled.
  • Enter the root password.
  • Select Create Custom Layout and create a primary partition for the OS and one for swap (create a swap partition as large as the amount of memory you have).
  • Use the ext4 filesystem for all partitions (instead of XFS)
  • Use the provided boot loader configuration.
  • Select the Minimal installation option.
  • Wait for the installation to finish.
  • Reboot the system.

  • Add the EPEL repository by running: yum install epel-release
  • Install the following packages:
yum install -y yum-utils sysstat iotop strace tcpdump lsof ntp ntpdate man man-pages mlocate wget perl iptraf-ng bind-utils net-tools psmisc vim-enhanced rsync lynx atop screen
  • Add the noatime option to all ext3/ext4/XFS/etc filesystem options in /etc/fstab
  • Edit /etc/default/grub and remove the rhgb and quiet options from GRUB_CMDLINE_LINUX. Replace these options with: nomodeset vga=normal consoleblank=0 (add elevator=none when running on an SSD or in a VM)
  • Create a new grub2 config file using: grub2-mkconfig > /boot/grub2/grub.cfg
  • Update the system: yum upgrade
  • Add a normal user, to log in as: useradd -m username
  • Set a password: passwd username
  • Add the normal user to the wheel group: usermod -a -G wheel username
  • Make sure root cannot log in via ssh by changing /etc/ssh/sshd_config:
    • PermitRootLogin prohibit-password
    • This will disable logging in as root, via ssh, but it is still possible to log in as root using SSH public key authentication.
  • Disable SELinux by setting SELINUX=disabled in /etc/sysconfig/selinux (a reboot is needed to fully disable SELinux. Do not disable SELinux for production systems)
  • Disable the firewall (when in a secure network), by running: systemctl disable firewalld
  • Enable irqbalance: systemctl enable irqbalance.service (only useful on an SMP system)
  • Set up /etc/ntp.conf:
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict ::1
  • Change /etc/ntp/step-tickers:
  • Enable ntpdate and ntpd: systemctl enable ntpdate ; systemctl enable ntpd
  • Reboot the system to activate all changes

-- Ivo van Geel - 19 Nov 2014

Edit | Attach | Watch | Print version | History: r27 < r26 < r25 < r24 < r23 | Backlinks | Raw View | More topic actions
Topic revision: r27 - 14 Jun 2022 - IvoVanGeel
This site is powered by the TWiki collaboration platform Powered by PerlCopyright 2010-2019 by LANIS