Updated: 2015-05-22 03:11 EDT
CentOS-6.6-i386-minimal.iso
man
commandmail
commandvim
editorroot
aliasesntpd
sudo
and the wheel
groupALT+F2
yum
doesn’t worketh0
, eth1
This document uses the VMware Workstation virtualization software. For a guide to installing CentOS using the free VirtualBox virtulalization software, see the VirtualBox CentOS Installation Guide HTML.
If you want to play with an easy-install desktop version of Linux, don’t do it using the system you will install in this document. This document installs a server system, not a Desktop system. A Desktop system should be something graphical and desktop-friendly such as Ubuntu or Mint. You can’t use the CentOS system in this document as a Desktop system. This document is configuring a minimal, non-GUI, server version of Linux.
You can use any virtualization software you like to create and run this server-style CentOS virtual machine, e.g. VirtualBox, Parallels, etc., but faculty only fully support questions about VMware (and maybe a little bit of VirtualBox). It’s what we know.
It isn’t the virtualization software that’s important; it’s the running CentOS virtual machine.
I don’t recommend running CentOS directly on your hardware; you lose all the snapshot and backup features available in a Virtual Machine. Don’t do it.
CentOS-6.6-i386-minimal.iso
IndexWe don’t recommend trying to download large software images over wireless. Find a network jack and plug in.
You can start this ISO download process and wait for it to finish while you move on to the next step to Create an Empty Virtual Machine
In this section, you will download the CentOS-6.6-i386-minimal.iso
to your machine. It must be the CentOS-6.6-i386-minimal.iso
, no other version is acceptable for this server.
You can get the CentOS-6.6-i386-minimal.iso
image from one of the following places. We recommend that you choose the first or second one if you are on campus; they are the fastest.
This method only works on the Algonquin campus, using the private IP address of the CSTECH web site. Use a wired connection to download big files such as ISO images; don’t use wireless!
355467264
-byte (339MB
) ISO file: CentOS-6.6-i386-minimal.iso
CentOS-6.6-i386-minimal-MD5sum.txt
file containing the md5sum file checksum hash.This method only works on the Algonquin campus, using the private IP address of the Course Linux Server. Use a wired connection to download big files such as ISO images; don’t use wireless!
355467264
-byte (339MB
) ISO file: CentOS-6.6-i386-minimal.iso
md5sum.txt
file containing the md5sum file checksum hash.This is much slower than the above on-campus methods. Use this Internet method only if you have to (i.e. you are off-campus):
/i386/
mirrors./centos/6.6/isos/i386
find the ISO named CentOS-6.6-i386-minimal.iso
to download:355467264
-byte (339MB
) ISO file: CentOS-6.6-i386-minimal.iso
md5sum.txt
file containing the md5sum file checksum hashes.To verify the downloaded CentOS ISO, you must get a copy of the checksum file from the same CentOS folder where you found the i386 (32-bit) ISO image.
Verify that you have the exact ISO file named CentOS-6.6-i386-minimal.iso
that is 355467264
bytes (339MB
).
To verify the download, you will need some form of checksum program that runs on your local computer that can calculate md5 or sha hashes. Unix/Linux/OSX machines already have the md5sum
command available (sometimes called just md5
on OSX); you don’t need to download anything; read the man
page or just run md5sum
(or md5
) followed by the ISO image name and compare the number with the number saved in the checksum hash file.
For Windows users, one suggestion to use (thanks Richard!) is HashTab:
md5sum.txt
file).CentOS-6.6-i386-minimal.iso
Verify the checksum hash of the ISO file against the checksum hash recorded in any of the checksum files located in the same folder. (For example, open md5sum.txt
and locate the checksum for your ISO file and compare it with the checksum of the ISO file you downloaded.)
Sysadmin Tip for Windows users: You can install the free Cygwin package on your own Windows laptop to get BASH and all the Unix tools for Windows, including
md5sum
,find
, etc. MacOSX users already have most of the tools installed and available in any Terminal window.
These detailed instructions are for VMware Workstation Version 10. You may use any other virtualization software you like, e.g. see the VirtualBox CentOS Installation Guide HTML, but you’re on your own if things go wrong.
In this section, you will first create an empty Linux 32bit CentOS-compatible Virtual Machine with no operating system installed. You can do this while you are waiting for your CentOS minimal CentOS-6.6-i386-minimal.iso
to download.
VMware Workstation will try to guide you into an “Easy” or automatic install; you must not do an Easy/automatic install. Do not let VMware use “Easy Install”!
Start VMware on your machine. Any version of VMware since Version 8 should work. These instructions were prepared with Version 10.
Choose Create a New Virtual Machine or File | New Virtual Machine.
CST1234-15W-CentOS-6
(no spaces).2
into the box)Ready to Create Virtual Machine: confirm these important settings:
Operating System: CentOS
Hard Disk: 2 GB, Monolithic
Memory: 1024 MB
To confirm your settings: In VMware, select menu VM | Settings to open Virtual Machine Settings and look under the Hardware tab to confirm:
Memory: 1024 MB (or 1GB)
Processors: 1
Hard Disk: 2GB
Network Adapter: NAT
In the same VM | Settings window (“Virtual Machine Settings”), go to the Options | General tab and confirm:
Guest Operating System: Linux
Version: CentOS
If you don’t see the above settings, delete this virtual machine and start over.
After you have downloaded and verified the checksum of the 32-bit ISO file CentOS-6.6-i386-minimal.iso
, you can next follow these instructions below to install this minimal 32-bit CentOS ISO image into your empty CentOS virtual machine that you just created above.
The installation software requires more memory than the running CentOS server. If you are installing or re-installing your system, set your VM Memory to 1024MB (1 GB) before you continue.
CentOS-6.6-i386-minimal.iso
ISO to your VMware virtual CD/DVD drive using the VM | Settings, Hardware | CD/DVD device page:
Disc Found
and asking you if you want to test the media:In Disc Found use the Space bar to select the OK choice. You will see another box titled Media Check.
In Media Check use the Space bar to select Test. The result must be Success or else your ISO file is corrupt and needs to be removed and downloaded again.
After re-connecting the CD, go back to the Media ejected box and use Space to select OK. You will see another Media Check box asking you about testing additional media. Make sure the ISO file is connected to your CD/DVD before you continue from this step.
On the CentOS 6 page, the mouse is working again. Use it or Space to select the Next button. You should see a What language page.
On the What language page use the default English selection. (You may be tempted to chose your own non-English language, but if you do so your Instructor will not be able to help you with any problems. Always use the default English language.) Select Next.
On the Select the appropriate keyboard page use the default U.S. English keyboard. Select Next.
On the What type of devices page use the default Basic Storage Devices. Select Next.
On the Storage Device Warning page select Yes, discard any data. (If you are re-installing your system, you will instead see here an At least one existing installation page that asks you to either overwrite or upgrade your existing installation. Choose appropriately.)
America/Toronto
as the city for the time zone.On the The root account page enter (twice) a root
account password that you can remember. Keep it simple – this is a low-security student course machine and not a high-security bank! Select Next.
On the Which type of installation page select Create Custom Layout. We are going to use a simple two-partition system instead of the default (and more complex) Logical Volume Manager layout. Select Next.
/
(the ROOT).ext4
.1500
into the Size (MB) box./
) partition of type ext4
size 1500 on sda1
. Delete this partition and start over if this is not true.swap
.sda2
size 547. Delete this partition and start over if this is not true.On the Please Select A Device page, there should be no free space left:
After confirming the above two partitions and sizes, on the Please Select A Device page click on Next.
On the Format Warnings page click Format. This completely wipes your Linux virtual disk, not your host machine’s disk.
On the Writing storage configuration to disk page click Write changes to disk.
On the Install boot loader page page leave the default setting checked (Install boot loader on /dev/sda
) and click Next. It should say Installation starting.
You should see a progress bar saying Packages completed as exactly 204 CentOS packages are installed into the system. (If the number is not exactly 204, you are using the wrong ISO image.) The 204-package installation should take less than five minutes.
On the Congratulations, your CentOS installation is complete page select Reboot. Some Linux kernel shutdown messages will print on the console, then the virtual machine will reboot.
The system should reboot into a black login screen with the banner CentOS release 6.6 (Final)
and a login prompt preceded by the hostname of the machine, similar to this:
CentOS release 6.6 (Final)
Kernel 2.6.32-504.el6.i686 on an i686
abcd0001 login:
The machine name in front of the login:
prompt should be your own Blackboard userid, not abcd0001
.
root
with the password that you remembered from the above installation.
r
.Run the following installation verification commands. Your CentOS installation must pass all of the following verification steps:
Run: hostname
and verify that it prints your eight-character Blackboard userid as the machine name.
In text file /etc/sysconfig/network
verify that the NETWORKING
variable is set to yes
and the HOSTNAME
variable is set to your Blackboard userid.
Run: fdisk -clu
and verify that your Disk /dev/sda
is 2147 MB
and that the disk partitions /dev/sda1
and /dev/sda2
have 1,536,000
and 560,128
blocks (a block is 1024 bytes). It should look almost exactly like the following, except your machine name and Disk identifier
number will differ:
[root@abcd0001 ~]# fdisk -clu
Disk /dev/sda: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 3074047 1536000 83 Linux
/dev/sda2 3074048 4194303 560128 82 Linux swap / Solaris
Run: rpm -q -a | wc -l
and verify that you have exactly 204
packages installed.
Run: df -h
and verify that your /dev/sda1
virtual disk partition mounted on /
(the ROOT) has a Size of 1.5G
(ignore the other sizes – they may differ slightly):
[root@abcd0001 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1.5G 578M 793M 43% /
tmpfs 504M 0 504M 0% /dev/shm
Run: swapon -s
and verify that partition /dev/sda2
is listed as an active swap partition:
[root@abcd0001 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 560124 0 -1
/etc/sysconfig/clock
verify that the ZONE
is set to local time zone America/Toronto
You may need to delete this virtual machine and re-install if any of the above numbers or verification steps are wrong. Redo your installation or consult with your instructor if any of the above verification commands don’t give the expected output.
Networking is not enabled on this server yet. It is a good idea to configure your system a bit before enabling networking, so we will enable networking later, after doing some configuration.
Make sure your CentOS virtual machine passes the all above verify steps before saving it!
shutdown -h now
shutdown
!1024MB
down to 256MB
. Say OK.
CentOS-6.6-i386-minimal.iso
256MB
2GB
NAT
networking (not bridged).abcd0001
(should be your Blackboard userid)204
packagesA snapshot of a running (not fully shut down) system is quick to resume if you ever need to go back to it, but a running snapshot has some potentially serious problems:
Snapshots take more space if you take them when the machine is running, since the snapshot has to save all the system memory. Snapshots are smaller if you take them of a system that is powered off.
Often you need to restore a snapshot and also make some VM | Settings changes. If you snapshot a running system, then you have to shut it down every time you restore it when you want to make VM | Settings changes. Better to create the snapshot of the powered-off system.
A snapshot of a running system can only safely be resumed (restarted) on the system that created it, or a system running a similar CPU type. You cannot safely back-up the running snapshot files onto a different CPU type and resume it there.
A snapshot of a running system may be useless if you try to restart it on a different computer, such as might happen if your laptop computer fails and you need to borrow another.
When possible, make your important snapshots of virtual machines that are actually powered off. You can make intermediate snapshots of running machines just before you make an important change, but you should consider deleting these temporary snapshots after you confirm that the change was successful.
References to man pages in this document will be to CentOS man pages, not CLS Ubuntu man pages. Since CentOS Linux and Ubuntu Linux are different distributions, from different vendors, they sometimes have different documentation and programs.
This configuration section assumes you are starting your configuration from the Fresh Minimal Installation snapshot from the previous section.
Before you begin, you need to understand some terms. These next few points are not action items; they are for your information; there is nothing you need to type yet. Make note of these things:
When it says back up a file below, it means copy the file, preserving time and owner information, into the same directory with a .bak
suffix on the file name, for example:
$ cp -p /foo/bar /foo/bar.bak
$ cp -p /some/path/name/file /some/path/name/file.bak
$ cd /some/very/very/very/long/path/name ; cp -p conf conf.bak
You may find this shell alias useful: alias cp='cp -p -i'
but remember that aliases are not saved when the shell exits.
vi
(not vim
) text editor to read the original file, make some changes, and then save the file. (Don’t forget to save the changes!)
vi
installed.vi
text editor commands to open a file, edit it, and save it.vim
editor is named vi
, not vim
on CentOS.#
) at the very start (left end) of the line.
hiddenmenu
to #hiddenmenu
or change the line alias rm='rm -i'
to #alias rm='rm -i'
Remember to preserve modification times on all files copied!
Boot (power on) your Fresh Minimal Installation snapshot from the previous section. Make the configuration changes below to your Fresh Minimal Installation virtual machine.
Log in as the root
user on the black text console, as you did before.
Review the above points A., B., and C. so that you know what back up, edit, and comment out mean.
Create your alias for cp
to preserve modify times so that you don’t forget: alias cp='cp -i -p'
Networking is not yet enabled on boot. We will enable it now, so that you can connect to your CentOS system using a proper SSH connection instead of using the limited VMware system console:
ifconfig eth0
and make sure it displays about 5 or more lines of IP and packet information about network interface eth0
. (There is a zero on the end of the interface name.)
bash: ipconfig: command not found
then fix your spelling of the Linux command name. This is not Windows.eth0: error fetching interface information: Device not found
, see Appendix: Renaming network interfaces on how to rename the interfaces to get eth0
back./etc/sysconfig/network-scripts/ifcfg-eth0
then edit the original file and change the ONBOOT
variable setting from ONBOOT=no
to ONBOOT=yes
ONBOOT=yes
diff
command to compare the back-up file with the edited original file and make sure only one line has changed:cd /etc/sysconfig/network-scripts ; diff ifcfg-eth0.bak ifcfg-eth0
service network restart
eth0
:Bringing up interface eth0:
andDetermining IP information for eth0... done. [OK]
done
, you have network connection problems: Your machine may be unable to get a DHCP
IP address. See Network Diagnostics.eth0
(see the example commands and output given below):
ifconfig eth0 | fgrep 'inet addr'
inet addr
).ip route | fgrep 'default'
ping -c 1
X.X.X.X
X.X.X.X
is your default gateway IP address.0% packet loss
. (This may not work if you are using Bridged networking on-campus at Algonquin College because the ITS department blocks ping
.)0% packet loss
, you have network connection problems. See Network Diagnostics.Sample output for the above commands is given below – your hostname and CentOS local IP addresses (write it down) will differ:
[root@abcd0001 ~]# fgrep 'ONBOOT' /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
[root@abcd0001 ~]# service network restart
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0:
Determining IP information for eth0... done. [ OK ]
[root@abcd0001 ~]# ifconfig eth0 | fgrep 'inet addr'
inet addr:192.168.9.141 Bcast:192.168.9.255 Mask:255.255.255.0
[root@abcd0001 ~]# ip route | fgrep 'default'
default via 192.168.9.254 dev eth0
[root@abcd0001 ~]# ping -c 1 192.168.9.254
PING 192.168.9.254 (192.168.9.254) 56(84) bytes of data.
64 bytes from 192.168.9.254: icmp_seq=1 ttl=64 time=1.78 ms
--- 192.168.9.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 1.780/1.780/1.780/0.000 ms
Make sure the ping
shows 0% packet loss
(unless you are at Algonquin College, using Bridged networking, and ping
is being blocked by ITS, sorry).
Did you write down your CentOS local IP address (not your default gateway address)? You will need it later.
If your virtual machine is using bridged networking instead of the recommended NAT networking, then the IP address of your CentOS virtual machine may change depending on the network of your host O/S. If you use bridged networking, you will need to use
service network restart
andifconfig
to restart your network every time you resume your VM or the network of your host O/S changes. Using NAT networking, the CentOS local IP address should be stable and this restart and reconfiguration shouldn’t be necessary.
These SSH instructions below are for VMware users. If you are using VirtualBox virtulalization software, see the section “Using SSH to connect to your VirtualBox VM” in VirtualBox CentOS Installation Guide HTML.
The VMware console that we have been using has very limited functionality. You can’t resize it, change the console colour, or font size, or copy and paste text into it easily from your host machine. Instead of using this console to work on the machine, we will do what most system administrators do and connect to the machine using a terminal program of our choice and the standard SSH protocol. CentOS already has the SSH programs installed and running that enable us to do this; we verified that in the previous section where we set the login banner.
To connect to your CentOS virtual machine using the SSH protocol, users with a Windows host O/S might choose to run the PuTTY terminal program (as you do when connecting to the CLS); users with a Linux or MacOSX host O/S will use a standard terminal and the ssh
command.
Sometimes the networking set-up on your host operating system does not permit you to connect to the network addresses of your virtual machines. You may have a firewall setting that blocks access. If that is true, the following won’t work and you’ll have to consult the manual for your host operating system on how to enable network access to the IP addresses of your virtual machines.
ssh
program from a MacOSX or Linux host O/S.CentOS release 6.6 (Final)
banner text before you enter your login userid.COURSE LINUX SERVER
banner, stop! Do not try to log in as root
to the CLS; you will be locked out!root
using your root
password.CentOS release 6.6 (Final)
banner before you log in with your root
userid!ifconfig
in CentOS. If you use NAT networking, this shouldn’t be a problem.Once you are logged in to your own CentOS machine, type who
and see that root
is logged in once on a VMware system console (tty1
) and once remotely via an SSH pseudo-terminal (pts/0
).
[root@abcd0001 ~]# who
root tty1 Nov 2 08:26
root pts/0 Nov 2 08:33 (192.168.244.1)
[root@abcd0001 ~]# tty
/dev/pts/0
I recommend using the SSH connection for all sysadmin work (including the rest of this document). Do not use the crappy VMware console. Note that, unlike using the system console, SSH network connections do not survive across a VM Pause or Suspend. All SSH sessions active when you pause or suspend your VM will be disconnected. Save and exit your editors that are running over SSH before you suspend.
man
commandIndexThis system has manual pages, but no man
command to view them:
[root@abcd0001 ~]# which man
/usr/bin/which: no man in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@abcd0001 ~]# whereis man
man: /usr/share/man
Use the yum
install command to fetch information about the man
package, and then we will install it:
root
run: yum info man
yum
will download some package lists before it answers the info
query.yum
cannot connect to the Internet, see Network Diagnostics.yum
seems to hang for a long time, see Appendix: What to do if yum doesn’t work.yum
shows Name : man
under Available Packages
.
man
under Installed Packages
, you have already installed it.yum install man
and when it asks Is this ok [y/N]:
answer with y
(yes) and Enter.
yum
will also ask you to import a GPG CentOS 6 Official Signing Key. Answer with y
(yes).man
.Complete!
when it finishes.Make sure which man
and whereis man
and man man
now work:
[root@abcd0001 ~]# which man
/usr/bin/man
[root@abcd0001 ~]# whereis man
man: /usr/bin/man /etc/man.config /usr/share/man /usr/share/man/man1/man.1.gz
[root@abcd0001 ~]# man man
...etc...
mail
commandIndexServers often need to email status messages to humans. We need to use the yum
install command to fetch and install an email client program package named mailx
:
root
run: yum info mailx
yum
will download some package lists before it answers the info
query.yum
cannot connect to the Internet, see Network Diagnostics.yum
seems to hang for a long time, see Appendix: What to do if yum doesn’t work.yum
shows Name : mailx
under Available Packages
.
mailx
under Installed Packages
, you have already installed it.yum install mailx
and when it asks Is this ok [y/N]:
answer with y
(yes) and Enter.
yum
will also ask you to import a GPG CentOS 6 Official Signing Key. Answer with y
(yes).Complete!
when it finishes.After installation, make sure that mail -V
(upper case!) prints a version number (the number may differ, depending on which version of CentOS is installed):
[root@abcd0001 ~]# mail -V
12.4 7/29/08
The mailx
package installs some symbolic links so that the command mail
actually runs the mailx
program:
[root@abcd0001 ~]# ls -l /bin/mail*
lrwxrwxrwx. 1 root root 22 Mar 9 22:16 /bin/mail -> /etc/alternatives/mail
-rwxr-xr-x. 1 root root 369440 Aug 1 2013 /bin/mailx
[root@abcd0001 ~]# ls -l /etc/alternatives/mail
lrwxrwxrwx. 1 root root 10 Mar 9 22:16 /etc/alternatives/mail -> /bin/mailx
Also man mail
gives you the same man
page as man mailx
(again using more symlinks):
[root@abcd0001 ~]# whereis mail mailx
mailx: /bin/mail /etc/mail.rc /usr/share/man/man1/mail.1.gz
mailx: /bin/mailx /usr/share/man/man1/mailx.1.gz
[root@abcd0001 ~]# ls -l /usr/share/man/man1/mail.1.gz
lrwxrwxrwx. 1 root root 31 Mar 9 22:16 /usr/share/man/man1/mail.1.gz -> /etc/alternatives/mail-mail-man
[root@abcd0001 ~]# ls -l /etc/alternatives/mail-mail-man
lrwxrwxrwx. 1 root root 30 Mar 9 22:16 /etc/alternatives/mail-mail-man -> /usr/share/man/man1/mailx.1.gz
vim
editorIndexYour CentOS Minimal Installation comes with a minimal (they call it Small
) version of the vim
text editor named vi
that is missing many features and help files:
[root@abcd0001 ~]# vi --version | fgrep 'version'
Small version without GUI. Features included (+) or not (-):
[root@abcd0001 ~]# vimtutor
-bash: vimtutor: command not found
We want the full version, with help files and tutorials. As root
, download and install the full (they call it Huge
) version of vim
as follows:
root
run: yum info vim-enhanced
yum
will download some package lists before it answers the info
query.yum
cannot connect to the Internet, see Network Diagnostics.yum
seems to hang for a long time, see Appendix: What to do if yum doesn’t work.yum
shows Name : vim-enhanced
under Available Packages
.
vim-enhanced
under Installed Packages
, you have already installed it.yum install vim-enhanced
and when it asks Is this ok [y/N]:
answer with y
(yes) and Enter.
yum
will also ask you to import a GPG CentOS 6 Official Signing Key. Answer with y
(yes).Complete!
when it finishes.After successful download and installation, start the newly-installed full version of VIM by typing vim
(not vi
) and note that this is the Huge version:
[root@abcd0001 ~]# vi --version | fgrep 'version'
Small version without GUI. Features included (+) or not (-):
[root@abcd0001 ~]# vim --version | fgrep 'version'
Huge version without GUI. Features included (+) or not (-):
[root@abcd0001 ~]# which vimtutor
/usr/bin/vimtutor
vi
and vim
are different in CentOS!
alias vi=vim
Small
) vi
program found?Huge
) enhanced vim
program found?root
aliasesIndexCentOS has provided the root
account with some personal shell aliases that change the behaviour of some important commands and this is a bad idea. Type alias
and you will see some aliases similar to these:
[root@abcd0001 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
The aliases for ls
and which
are harmless, but the options added in the aliases for cp
, mv
, and rm
change the behaviour of these commands significantly. (What do those options do? RTFM for each command.)
On real servers, the root
account is often shared among several sysadmin, and so you must be very careful what aliases you define in the root
account. Commands must work exactly as expected, not the way aliases might change them to work. We will remove these dangerous aliases from our root
account:
Note that the HOME directory for the root
account is under /root
, not under /home
with all the other accounts.
/root/.bashrc
(preserve the modify time) then edit the original file:
rm
.cp
.mv
.[ -z "${PS1-}" ] && return # exit if not interactive
unalias -a
to the end of the file to make sure that no misleading aliases are defined for the root
account.
unalias
line at the bottom (end) of the .bashrc
, after all the existing lines in the file.alias cp='cp -i -p'
to the bottom of the file, since we use it so often, especially as root
.
root
account.Use the diff
command to compare the back-up file with the new file and make sure only a few lines have changed.
Run a loopback SSH network test of true
, a command that doesn’t generate any output, to make sure the new .bashrc
doesn’t generate any output or errors:
[root@abcd0001 ~]# ssh localhost true
CentOS release 6.6 (Final)
Kernel \r on an \m
root@localhost's password:
[root@abcd0001 ~]#
Make sure there is no output after you type your root
password.
(If you don’t see the CentOS release 6.6 (Final)
login banner, you missed Setting the SSH login banner, above.)
Keep your own personal aliases in your own account and source
them when you need them as root
. Do NOT put many of your personal aliases into the root
account itself.
Log out of your VM and then log back in. Type alias
and make sure all the dangerous aliases are gone. Keep the aliases in the root
account to the bare minimum.
Shell command line history for is important to a sysadmin. It’s one way of knowing what commands were typed and remembering how to do things without having to look them up again.
Although the shell is saving its history upon exit, the history from different shells is not being merged, so history can be lost if you run more than one shell, e.g. multiple windows or multiple logins. Also, history is not being saved until a shell exits, which means you can also lose history if a shell is killed prematurely.
We could fix these history issues just for the root
user, using the root
.bashrc
start-up file, but then we would also have to fix it for our own sysadmin account (that we will create later), and for any other accounts we might create. Instead we are going to make changes to the system-wide bash
shell initialization so that all users on the system receive these benefits, not just root
.
The comments at the start of /etc/profile
suggest that we should create a custom.sh
file and install it in the /etc/profile.d
directory:
Put these lines into the new file /etc/profile.d/custom.sh
on your CentOS machine:
# keep a lot of shell history in memory and in the history file
export HISTSIZE=9000
export HISTFILESIZE=99000
# keep time stamps on each entry
export HISTTIMEFORMAT=
# update history file after every command (not just on exit)
export PROMPT_COMMAND='history -a'
# useful history-related bash options: use one-line and append
shopt -s cmdhist
shopt -s histappend
This new file will be sourced by every user when they log in.
Run source /etc/profile.d/custom.sh
to source the new file to set up the history in the current shell. Make sure you see no output and no errors!
After sourcing the file, print the changed history variables to confirm:
[root@abcd0001 ~]# source /etc/profile.d/custom.sh
[root@abcd0001 ~]# printenv | fgrep 'HIST'
HISTSIZE=9000
HISTFILESIZE=99000
HISTCONTROL=ignoredups
HISTTIMEFORMAT=
[root@abcd0001 ~]# echo "$PROMPT_COMMAND"
history -a
root
BASH history file, .bash_history
, in the HOME directory of the root
account.
root
account is not under the usual /home
directory.Log out. Log back in. Verify that the same history variables have been changed, and that your history file is being updated after every command you type.
The file /etc/hosts
usually contains a local copy of the name of the current machine, paired with the loopback IP address. CentOS is missing this, which means you can’t ping
your own host name:
[root@abcd0001 ~]# echo "$HOSTNAME"
abcd0001
[root@abcd0001 ~]# ping "$HOSTNAME"
ping: unknown host abcd0001
Back up the file /etc/hosts
then edit the original file and add your machine’s host name by adding the line 127.0.0.2 abcd0001
where abcd0001
is replaced by your machine’s host name (which must be the same name as your Blackboard userid):
[root@abcd0001 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.2 abcd0001
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Use the diff
command to compare the back-up file with the new file and make sure only the intended lines have changed.
Confirm that you can now ping
your own machine name with zero packet loss:
[root@abcd0001 ~]# echo "$HOSTNAME"
abcd0001
[root@abcd0001 ~]# ping -c 1 "$HOSTNAME"
PING abcd0001 (127.0.0.2) 56(84) bytes of data.
64 bytes from abcd0001 (127.0.0.2): icmp_seq=1 ttl=64 time=0.072 ms
--- abcd0001 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.072/0.072/0.072/0.000 ms
The name abcd0001
above must be your machine’s name, not abcd0001
. Your machine name must be the same name as your Blackboard userid.
ntpd
IndexThe system time is not being synchronized with the Internet. We need to use the yum
install command to fetch and install the Network Time Protocol (NTP) package named ntp
with its time daemon named ntpd
:
root
run: yum info ntp
ntp
; the NTP daemon is named ntpd
.yum
will download some package lists before it answers the info
query.yum
cannot connect to the Internet, see Network Diagnostics.yum
seems to hang for a long time, see Appendix: What to do if yum doesn’t work.yum
shows Name : ntp
under Available Packages
.
ntp
under Installed Packages
, you have already installed it.yum install ntp
and when it asks Is this ok [y/N]:
answer with y
(yes) and Enter.
yum
will also ask you to import a GPG CentOS 6 Official Signing Key. Answer with y
(yes).Complete!
when it finishes./etc/ntp.conf
then edit the original file to add the line tinker panic 0
on its own line just above the driftfile
line.
diff
command to compare the back-up file with the new file and make sure only the one line changed.ntpd
program that it can always change the clock value, no matter how far off it is. Normally the ntpd
daemon refuses to change a clock value that is more than 1,000 seconds wrong.Run: chkconfig --list ntpd
(and note the spelling of the service name ntpd
). You will see one line indicating that the ntpd
time daemon is turned off in every Run Level.
Run: chkconfig ntpd on
(again note the spelling of ntpd
).
Run: chkconfig --list ntpd
(again note the spelling of ntpd
). You will see one line indicating that the ntpd
time daemon is now turned on in Run Levels 2 through 5:
[root@abcd0001 ~]# chkconfig --list ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Run: service ntpd start
and you should see one line saying Starting ntpd: [OK]
. (If you already started ntpd
, you won’t see the [OK]
.)
Run: tail /var/log/messages
or fgrep 'ntpd' /var/log/messages
and confirm that there are several log entries for ntpd
saying Listen normally
. If you see errors, fix them and run service ntpd restart
to restart ntpd
.
If all goes well, ntpd
starting up will have reset your system clock to the correct time. (Run the date
command and see.) The log file might say something like clock_step +14398.864481s
indicating a time change of (for example) 14398 seconds. If nothing happened, try waiting 5–10 minutes and see if the time updates. You can perform the other edits below while you wait for this to happen. Continue reading:
Installing NTP doesn’t always work to keep your system time updated, and sometimes NTP can’t synchronize your clock inside some versions of VMware or under some host operating systems. Sometimes, installing the VMware Tools package can mitigate this problem; more on that later.
Even with ntpd
running, the system may take 5-10 minutes to re-synchronize its time after a VM Pause, Suspend, or reboot. (Earlier versions of CentOS were faster at time synchronization.) Servers in the real world are not paused, suspended, or rebooted as often as at school.
Installing VMware Tools will often help with getting the time right after a VM pause or suspend. VMware Tools will be installed in a separate document, later.
Security Enabled Linux is turned on, which can cause many problems for novice Linux users. On a real server, we would leave it enabled. You will learn SELinux configuration in later Linux courses.
/etc/sysconfig/selinux
then edit the original file and change the SELINUX
variable setting from SELINUX=enforcing
to SELINUX=disabled
.
diff
command to compare the back-up file with the new file and make sure only the one line changed.The system boot messages are being hidden by a pretty but unhelpful CentOS graphics “splash” screen. The screen covers up many useful system messages at boot time. As a sysadmin, you want to see all the boot messages.
Make a temporary snapshot of your VM now, in case you make a mistake in the following edit. If you damage lines in this GRUB configuration file, your machine may not boot at all. You’ll have to restore from the snapshot and reconfigure.
/boot/grub/grub.conf
then edit the original file:
timeout
from 5
to 30
.hiddenmenu
line to make the GRUB menu visible on boot. (Insert a single #
comment character in front of hiddenmenu
so that it looks like #hiddenmenu
and will be ignored.)rhgb quiet
from the far right end of the very long kernel
line to get rid of the silly CentOS animated graphics screen. (Make sure you don’t accidentally break this line into pieces. Keep it one long line.)The resulting file should be two words smaller than the back-up file:
[root@abcd0001 ~]# wc -lw /boot/grub/grub.conf*
17 82 /boot/grub/grub.conf
17 84 /boot/grub/grub.conf.bak
Use the diff
command to compare the back-up file with the new file and make sure only the intended lines have changed.
You will know if your edits are accurate at the next reboot, coming up in the next section. If the reboot fails, restore back to your temporary snapshot and try the edit again.
If everything is working, you may delete the temporary snapshot you made.
Having made all the above configuration changes, your CentOS configuration must pass all of the following verification steps after you reboot it:
shutdown -r now
shutdown
!GNU GRUB
menu should now be visible (not hidden) – see the image below.After the boot, when the machine is up and running, log in on the console again (or, better, use an ssh
or PuTTY connection to the CentOS local IP address) and log in as the user root
so you can run some verification commands.
Run alias
and make sure the root
account has no dangerous aliases.
Check that the commands you just typed, above, are appearing at the bottom (end) of the root
BASH history file and that the history environment variables set in the root
.bashrc
are all set in the current shell.
free
and verify that you have a total
Memory of about 256MB, e.g. approximately 248836KB
.
shutdown
and fix the VM Hardware Memory settings and reboot.Run the selinuxenabled
command followed by echo "$?"
to display the command exit status variable contents. The status must be 1
(indicating failure – SELinux should not be enabled). If you see zero, you forgot to disable SELINUX
above. Try again.
[root@abcd0001 ~]# selinuxenabled ; echo $?
1
In file /etc/sysconfig/clock
verify that the ZONE
variable is set to a local Ontario city time zone (not New York).
Run: pgrep -l ntpd
and verify that the output is one line (a process number and the word ntpd
). If you don’t see anything, you forgot to enable NTP above. Try again.
Look at the first ten lines of /etc/ntp.conf
and verify that you find the tinker panic 0
line you added.
Search for the word ONBOOT
in file /etc/sysconfig/network-scripts/ifcfg-eth0
and verify that its value is set to yes
.
ifconfig eth0
and verify that its inet addr:
has an IP address listed.
Run: ip route
and verify that you have a default via
route listed for dev eth0
. (This default is your gateway IP address.)
Examine file /etc/resolv.conf
and verify that there is at least onenameserver
line in the file. (It will probably be the same IP as the gateway IP.)
Confirm that you can ping
your own machine name with zero packet loss and that your host name resolves to the IP loopback address 127.0.0.2
:
[root@abcd0001 ~]# ping -c 1 "$HOSTNAME"
PING abcd0001 (127.0.0.2) 56(84) bytes of data.
64 bytes from abcd0001 (127.0.0.2): icmp_seq=1 ttl=64 time=0.072 ms
--- abcd0001 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.072/0.072/0.072/0.000 ms
Make sure the man
command works: man --version
Make sure the mail
command is installed: mail -V
Make sure the full Huge
version of VIM is installed: vim --version
rpm -q -a | wc -l
and verify that you have exactly 220
packages installed.
Consult with your instructor if any of the above verification steps fail. Sometimes you can recover a missed configuration step without starting over from scratch.
These Tools instructions below are for VMware users. If you are using VirtualBox virtulalization software, see the section “Install VirtualBox Guest Additions” in VirtualBox CentOS Installation Guide HTML.
Make a temporary snapshot of your VM now, in case you make a mistake in the following installation. If you mis-install the VMware tools, un-installing it may be difficult. You’ll have to restore from the snapshot and reconfigure.
Follow this link to Install VMware Tools and confirm that the installation worked. If you have problems or make mistakes, restore back to the temporary snapshot and try again.
If everything is working, you may delete the temporary snapshot you made.
With the addition of the library needed by VMware Tools, your CentOS VM should have exactly 221 packages installed:
$ rpm -q -a | wc -l
221
In this section you will create your own system administration account on your CentOS VM. This personal account can be customized for you, including your own aliases and shell options (things you should not set in the root
account). All work is done on your CentOS Virtual Machine.
Do not add extensive customization to the
root
account on a system, since such customization may not suit allroot
users of the system and may break automated programs that need to become theroot
user.
Remember that a character used in your shell prompt indicates whether or not the current shell is running as the root
user. For an interactive root
shell, your shell prompt includes the #
character that indicates root
privileges. Ordinary users get the $
character in the prompt.
The CentOS useradd
command creates a new account, storing information about the account in the /etc/passwd
file and about the account groups in the /etc/group
file. It also can create a HOME directory for the account and places standard start-up files into it.
The passwd
command sets a password for an account, storing the password in the shadow password file named /etc/shadow
. An account cannot be used until a password has been set.
Recall that man
pages often list options with both GNU long-form syntax using double dashes, e.g. --comment
, and old short-form syntax using single dashes, e.g. -c
, for the same option. The long-form syntax is easier to understand, but the short-form syntax is easier to type. Use whichever syntax you prefer.
Make a temporary snapshot of your VM now, in case you make a mistake in the following installation. If you mis-install the new account, un-installing it may be difficult. You’ll have to restore from the snapshot and restart.
If necessary, login to your CentOS Virtual Machine as the root
user (the only user). (We recommend using an SSH connection to your VM rather than working on the VMware console.)
man useradd
manual page:
useradd
command line. (It’s always the last thing on the command line; don’t put it anywhere else!)--comment
option and following argument used to define your full name. The (quoted) full name argument must immediately follow the --comment
option argument on the command line. See below.--system
system account option (-r
) and how using it will require you to use the --create-home
option (-m
) as well. Remember that.
uid
field for a system account will be less than the value of UID_MIN
found in the login.defs
file. Look up the numeric value for UID_MIN
in the login.defs
file; you will need that number later.--create-home
option (-m
). You must use this when creating your system account.--comment
option and the quoted full name string that must follow it.useradd
man page, create a command line to add a new system account with the following settings (three options will be needed as well as the new LOGIN name):
/etc/passwd
on the CLS:
/etc/passwd
is called the GECOS field or user’s name or comment field.Firstname Lastname - CST1234-15W-NNN
” where CST1234
is your course number, Firstname
and Lastname
are your name and NNN
is your own three-digit lab section number.--comment
option on the useradd
command line.useradd
command line!useradd
, verify it:
id abcd0001
where abcd0001
is your new account name.
UID_MIN
that you remember from the login.defs
file, above. Verify that the uid
and gid
are less than UID_MIN
, indicating a system account./etc/skel
. (As system admin, you could put custom files in the /etc/skel
directory that would be given to all newly created accounts. We don’t do that in this course.)root
shell:
su --login abcd0001
where abcd0001
is your new account name.
root
id
command should tell you that you are using your new sysadmin account and groups.pwd
command should show your HOME directory in the usual place.su
subshell, which will return you to your root
login shell, with the #
prompt character.uid
field values, you may restore your snapshot and try again, or delete the account using userdel -r
and try again.ls
to show the permissions of a directory instead of the permissions of everything inside the directory.root
) set a password for your new sysadmin account, as follows:
man passwd
.root
account password.root
account!). Do not change your root
password! Change the password of your new syadmin non-root account.localhost
(see the example commands and output given below):
ssh abcd0001@localhost
abcd0001
is your new account name.yes
to accept the new host key, if asked.root
password by mistake in an earlier step. Fix it and try again.localhost
loopback connetion.id
command should tell you that you are using your new sysadmin account and groups.pwd
command should show your HOME directory in the usual place.who
to see who is logged in. Your new account should be there.root
login. (Your prompt should again show the #
character as root
.)Sample output for the above commands is given below – your hostname and account name should be your userid:
[root@abcd0001 ~]# ssh abcd0001@localhost
CentOS release 6.6 (Final)
Kernel \r on an \m
abcd0001@localhost's password:
Last login: Sun Nov 2 15:51:40 2014 from localhost
[abcd0001@abcd0001 ~]$ id
uid=498(abcd0001) gid=498(abcd0001) groups=498(abcd0001)
[abcd0001@abcd0001 ~]$ pwd
/home/abcd0001
[abcd0001@abcd0001 ~]$ who
root pts/0 Nov 2 14:44 (172.16.174.1)
abcd0001 pts/1 Nov 2 15:58 (localhost)
[abcd0001@abcd0001 ~]$ exit
logout
Connection to localhost closed.
[root@abcd0001 ~]#
su
(as you did above).alias
and note that the account has some aliases defined in it, set using system configuration files under /etc/profile.d
..bashrc
to undo aliases that you don’t want and have only the alias, options, and settings that you do want.This concludes the creation of your own personal sysadmin account.
sudo
and the wheel
groupIndexLogging in to a machine as root
is not recommended. Many servers actually disable direct login by the root
user; you have to log in as the sysadmin user and then use su
or sudo
to run root
commands.
You can already use the su
account to become the root
user, using the root
password. We will now enable our sysadmin account to use the sudo
command by enabling the wheel
group and adding our account to that group.
Make a temporary snapshot of your VM now, in case you make a mistake in the following installation.
If necessary, login to your CentOS Virtual Machine as the root
user. (We recommend using an SSH connection to your VM rather than working on the VMware console.)
sudo
to use the existing wheel
group, as follows:
wheel
in the file /etc/sudoers
and redirect those lines into the new file /etc/sudoers.d/wheel
wheel
file should contain 3 lines, 19 words, 108 characters. Display the file: all three lines are commented out.wheel
file and remove the comment and the space that follows it from the second line in the file. The second line should now be: %wheel ALL=(ALL) ALL
wheel
file should contain 3 lines, 18 words, 106 characters: exactly one word less and two characters less than the unedited file.wheel
group, as follows:
root
): gpasswd -a abcd0001 wheel
where abcd0001
is replaced by your sysadmin account userid.Adding user abcd0001 to group wheel
wheel
line in the system group file /etc/group
and confirm that your userid is on that line.sudo
now:
su
command line and options to start a login subshell running as your sysadmin (non-root
) account.#
to $
.id
shows your sysadmin uid and gid and that you now have a wheel
group listed as one of your groups.root
), type: sudo id
root
password).root
password).id
command should be run as the root
user and show zeroes for the uid and gid.sudo id
command line, and note that you don’t have to type the password this time. The sudo
command remembers your password for a few minutes so that you don’t have to keep typing it for multiple sudo
commands.Exit your account subshell and return to the root
shell.
If everything is working, you may delete the temporary snapshot you made.
This concludes the enabling of sudo
for your own personal sysadmin account.
Your sysadmin account can now run any privileged commands as the
root
user usingsudo
. To enhance the security of the system, we could now safely disable theroot
account password so that no directroot
logins would be possible, but we won’t do that just yet since students often forget their sysadmin account passwords and need to use theroot
account to reset them.
The system has been installed mostly from the original distribution CD, so it needs to have updates downloaded and installed from the Internet.
We don’t recommend trying to download large software images over wireless. Find a network jack and plug in.
yum check-update
yum update
yes
.If the list of updates installed includes the linux
kernel
package, you should safely shut down and reboot the system using:shutdown -r now
to install the new kernel. This is only necessary if you updated the linuxkernel
package. After reboot, you will need to re-install VMware Tools for the new kernel.
The system updates may mean that you now have a few more than the original 221 installed packages.
Make sure your CentOS virtual machine passes the all above verification steps before saving it!
To avoid all the resume problems mentioned earlier, you may want to shut down your machine before taking a major snapshot.
shutdown
command line, not the VMware power buttons!)You can delete any intermediate snapshots that you don’t need, leaving only the Fresh Minimal Installation and the Configured Installation.
This ends the initial Installation and Configuration of a minimal server-style CentOS system. The next Appendix sections explain some important things to know about your new virtual server.
You can either Pause, Suspend, or Shut Down (power off) your VM as follows:
The VMware Pause button simply stops the virtual machine from using much CPU. It doesn’t save any state or allow you to close VMware; the virtual machine is still fully loaded into host O/S memory.
All network and SSH connections will be disconnected when you Pause the machine. Save your work before you Pause.
VMware Suspend is the fastest way to save your machine state so that you can close VMware or reboot your host O/S. The current state of the machine, including all the system memory, is saved to disk and then the VM is stopped. Most times you will want to suspend your Virtual Machine so that you can resume it quickly where you left off:
When you resume your Virtual Machine after a Suspend, if you use bridged networking, you may need to refresh the network settings for your new network location by running (as root
or with sudo
): service network restart
and your CentOS local IP address may change as a result.
If you need to reconfigure most parts of the VMware Virtual Machine that is running your Linux server, you need to fully shut down the running virtual machine before VMware will let you change the VMware settings. (Suspending won’t work, since the machine is still active.) Here’s how to safely shut down any running Linux system, virtual or not:
root
(or login in as a user and then become root
or use sudo
, if you have disabled root
logins)root
run: shutdown -h now
Again, don’t use the VMware power buttons to reboot a system. Use the Linux commands:
root
(or login in as a user and then become root
or use sudo
, if you have disabled root
logins)root
run: shutdown -r now
ALT+F2
IndexMost Linux machines running in multi-user mode (not single-user) allow you to have multiple system consoles active by typing ALT+F2
(hold down ALT
and simultaneously push Function Key 2
) to switch to the second console, ALT+F3
to the next one, etc. The default, first, console is of course ALT+F1
. This only works on console terminals, including VMware console terminals, not on remote login sessions.
Multiple consoles allow you to multi-task and have multiple “windows” on the system console without all the overhead of a graphical user interface.
When you log out of a server console, make sure you check all the alternate consoles and log them out, too! Don’t leave an open
root
login session active when you walk away from the machine console!
You can’t do ALT+F2
inside a PuTTY or SSH session, but there are programs such as tmux
and screen
that let you do that type of multiple console interface and much, much more.
yum
doesn’t workIndexThis Appendix is only necessary if you find that the yum
installer hangs or does not work. If yum
hangs or fails, do these steps until it works:
^C
(Ctrl-C
) will not interrupt the hung yum
command, use ^Z
to STOP
the yum
command and then kill %yum
to kill it. (If that doesn’t kill it, use kill -9 %yum
)
yum
session is to switch to a second console (e.g. ALT-F2
), log in as root
, find the process ID of the hung yum
process, use kill
to send that process ID a SIGTERM
or SIGKILL
termination signal, then switch back to the first console again.root
type: service network restart
and try yum
again.
ping
hosts, but Algonquin College blocks most ICMP traffic so it may not work as a diagnostic tool.yum
still hangs on the wired network, kill yum
again (see above) and then try:
service network restart
and try yum
again.When yum
finally works, you may need to accept a security key: say yes
Use this section if the system time zone file is not correct for your time zone.
tzselect
and answer the questions to find the correct full name of the Eastern Time – Ontario time zone assigned to variable TZ
.
Toronto
in it..profile
file – you are the sysadmin of this machine and you are setting the system time zone, not an individual user’s time zone.TZ=
variable./etc/sysconfig/clock
then edit the original file to change the ZONE
variable to ZONE="XXX/YYY"
where XXX/YYY
is the name of the time zone you just discovered using tzselect
, above. (The word Toronto
is in this name.) Include the double quotes around the variable assignment.
diff
command to compare the back-up file with the edited original file and make sure only one line has changed:diff /etc/sysconfig/clock.bak /etc/sysconfig/clock
tzdata-update
command. This will use the above ZONE
information to copy the correct time zone information file from under directory /usr/share/zoneinfo/
to the file /etc/localtime
eth0
, eth1
IndexIf ifconfig eth0
says eth0: error fetching interface information: Device not found
, here’s how to fix it. (There is a zero on the end of the interface name.)
If you have moved, cloned, or copied your CentOS virtual machine to another system, you may find that networking is not using the eth0
interface but is using eth1
(or some other name) instead.
ip link list
eth?
netstat -ia
eth?
dmesg | fgrep 'eth'
renamed network interface eth0 to eth?
fgrep 'renamed' /var/log/messages
renamed network interface eth0 to eth?
Usually the new interface name will be eth1
, but it could be a larger number such as eth2
, etc. If you only see eth0
in this above output, you don’t need to rename anything. Don’t go any further in this section; your interface has the correct eth0
name.
In the examples below, we will assume eth1
is the new interface, but you should use the actual number found in the above step.
Look at the text file /etc/udev/rules.d/70-persistent-net.rules
and make sure the file contains a SUBSYSTEM
device line with a NAME=
that is not eth0
. If the file only contains a line with eth0
in it, you don’t need to rename anything. Don’t go any further in this section; your interface has the correct eth0
name.
This file remembers the interface names and their MAC addresses. Your new copy/clone/moved VM has a new MAC address for its Ethernet interface, so CentOS gave it a new interface name eth1
(or larger) instead of using the old eth0
line with the old MAC address.
Your job is to delete the old eth0
interface line and change the name of the line with the new MAC address to be eth0
from its current eth1
:
Back up the file /etc/udev/rules.d/70-persistent-net.rules
/etc/udev/rules.d/70-persistent-net.rules
as follows:
NAME="eth0"
NAME="eth1"
and change the new eth1
to be the old eth0
ATTR(address)==
field.Back up the file /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
as follows:
HWADDR
line replace the old MAC address with the new one.HWADDR
line so that future MAC address changes don’t cause more failure.)eth0
again.
ifconfig eth0
still says Device not found
, you renamed the wrong interface name. Go back and try again.There are several critical Windows VMware bugs that trigger when installing Linux. Many seem related to using VMware on an AMD processor instead of an Intel processor, or using VMware on a base O/S that is not plain Windows 7 or 8. Some suggested fixes are listed below.
The mobile device requirements for the CST program specify that you must have Intel hardware and run Windows 7 or 8 as a base operating system. Students running other hardware or software are responsible for fixing their own problems. Problems related to using the wrong hardware and software aren’t usually accepted as reasons for assignment extensions, but if you encounter any of these bugs, please contact your professor for a possible extension to your CentOS assignments.
Your VM says “not enough memory” when you try to run it. VMware says to read this: http://blogs.vmware.com/workstation/2014/10/workstation-10-issue-recent-microsoft-windows-8-1-update.html
When you boot Linux you see detecting hardware
followed by a long pause and then BUG: soft lockup - CPU#0 stuck
. This has been seen on AMD hardware. See below for possible solutions.
When you boot Linux you see lo: Disabled Privacy Extensions
followed by a long pause followed by a kernel traceback related to ipv6
networking. Sometimes changing networks (moving to a different room) or rebooting Windows fixes the problem. This has been seen on AMD hardware. See below for possible solutions.
When you try to restart your sshd
service, it fails. If you run ssh-keygen -t rsa -f /tmp/junk
it fails with rsa_generate_private_key: key generation failed
. This was seen in Centos 6.6 in VMware 8 on Windows 8 with an AMD processor. See below for possible solutions.
You see software virtualization is incompatible with long mode on this platform
when you start your VM. Is this only on AMD hardware? See below for possible solutions.
Students with hardware or software that don’t meet CST program requirements are responsible for fixing their own problems. The correct solution to avoid these bugs is to run the required CST program Intel hardware and Windows 7 or 8 base O/S. Failing that, these fixes below have worked for some students: