In this project you will install a new operating system (1) on a spare computer, (2) as a dual-boot on your home computer, or (3) on a virtual machine (preferred). You have a few requirements you must meet, in order to allow future projects to work without rebuilding the system. Remember you are here to learn, so feel free to install several times — it may take about an hour, depending on network speed and the amount of stuff you initially install.
If you have Windows 10 Pro, I recommend using Hyper-V for your virtual machine. If you have Windows 10 Home or Windows 7, I recommend using VirtualBox. There are many YouTube videos on how to set up both of these (or setup virtual machines on Macintosh or Linux). Find a recent one and give it a try! If you get stuck, your instructor will be happy to help with one-on-one Zoom meetings to walk you through the process.
Perform the following tasks, and answer the following questions:
The first step is to have your approved partition plan handy. That will show how much memory and disk space you need to allocate to your new virtual machine. Next, you will need the Fedora 33 network install image (ISO file) downloaded, so your virtual machine can boot from it as if it were an optical disk. You should download this file (“Network Installer”)from https://alt.fedoraproject.org/. Once downloaded, you can verify the file is not corrupted if you have gpg installed. If you do, click the Verify button and follow the directions; the CHECKSUM file you need is “Fedora 33 x86_64 CHECKSUM”.
Before creating a virtual machine, make sure your system is configured for that. First, check the BIOS and make sure virtualization features are enabled. If using VirtualBox, that should be all you need. For Hyper-V, you need to enable that in Windows 10 settings and features as well. (Note Hyper-V is not available for Windows 10 Home edition.)
Once the virtual machine is configured, you should start it and begin the Fedora 33 install. You can find the install guide and other official documentation at https://docs.fedoraproject.org/en-US/docs/.
For the install (as well as other projects) you will need to keep a detailed system journal showing exactly what you did. Once the system is installed, you can maintain the journal as a text file. But unless you have a laptop or smart phone handy, you will need to write down on paper each step of the install, as you do them! You will never remember all the steps you did if you don't write them down as you go.
(More information about the system journal can be found below. Also, I have made a screencast (movie) of a Fedora install available, that you might want to watch before attempting your own install. The link can be found in the course resources.
You should only install the minimum set of packages needed for a standard GUI desktop system. (Don't use a minimal install, as that doesn't install a GUI or most of the utilities you will need.) The reason is that the distribution media is almost certainly out of date so you must update most of the software anyway. If you installed many packages, you will end up installing them a second time to update them!
Why do we use the Fedora Server Network installer? Because Red Hat (and its many look-alikes) are the most popular for servers, so it is Red Hat systems you should learn. Today's Fedora is tomorrow's Red Hat Enterprise Linux (RHEL), so you should be well-prepared when you enter the workforce. Additionally, the current Fedora release usually has some rough spots, providing excellent learning (trouble-shooting) opportunities.
Using the network installer is faster, since most of the original packages will have updates by the time you need to install. If you did a traditional install from a DVD, you'd need to download hundreds of packages anyway during your first update. (The Server network installer image is the only network installer image for Fedora. Despite the name, it can be used to install a Workstation or any other type of Fedora system.)
For installation help, see the resources provided on our class web page. (Especially the Fedora Installation Guide.)
You must use the approved partitioning scheme that
you designed in project #1,
or something very close to it.
You must use LVM and
ext4 for your
storage volumes (other projects later require this).
Note that if the installer adds partitions automatically (for example one
for BIOS boot), you must document those in your journal even though
your original partition plan from project #1 did not include those.
For this project, you must use
Logical Volume Management
You should partition your disk into two partitions only, one for
/boot partition (which might cause problems
if placed under LVM), and the rest into one large
LVM physical volume.
You will then implement the rest of your partitioning scheme using
(Note that having the root partition under LVM
will require a RAM disk boot setup (i.e., using
When configuring storage, you may notice a checkbox to encrypt the volume. Encrypting your volumes may be useful on a laptop, but will complicate future projects in our course. So, don't do it at this time; you can create additional volumes later to play with encryption.
Fedora Linux has support for LVM built into its
installer, making this step very easy.
(Previously you needed to use command line tools after the install
to set up LVM.)
When you get to the partitioning tool part of the
Fedora installer (named “anaconda”), you can either manually
implement your partitioning scheme, or let the system do it for you.
I recommend you select "custom partitioning"; the tool will show a
button you can use to automatically create a disk layout at that point.
Unlike "automatic partitioning", you can make changes to this.
Note that the Fedora installer handles the boot setup
initrd”) for you.
Be sure to use LVM and ext4, as these may not be the defaults!
Be sure to enable all the features discussed in class, including at least the following:
/dev/sda”) and not
the boot blocks of some partition
The Fedora installer supports both BIOS and UFEI firmware. It should pick one automatically; go with that. UEFI doesn't have an MBR but may create some small partitions on your disk.
Depending on the distro and versions installed, and other factors, networking may not be enabled initially. If you did the default Workstation install, on the top-right of the Gnome system tray there should be an icon for networking. You can click on that to enable networking (configure for DHCP, and to enable automatically at boot time).
/etc/selinux/config and follow the
comments to change the default mode.
Make sure you put a note on your SELinux
configuration in your journal!
Before installing any additional software, you should always update the
software you already installed to the current versions.
This will often update the kernel, possibly requiring you
to reconfigure networking,
needing a reboot of the system.
Use the GUI tools to configure your system now.
You can use the command line tool “
to install and update software packages on any Red Hat like Linux
(Read the man page to see how to use it; we will learn how later
in the course.)
(As we did a network install, the software should already be up to date.)
Most desktop environments such as KDE and Gnome include
an applet (or widget or other such term) that
dnf to check for updates and display a
notification on the GUI.
This is usually set to run by default all the time.
The problem is only one instance of
be run at a time, or the package database could become
You will need to turn this applet off (or possibly wait for
it to finish checking) before you can run
With KDE, use the system menu to launch
Then click on “Settings”, and change
“Check for Updates” to “Never”.
With Gnome, you'll find this setting under
What is the exact command you used? About how many packages were updated?
For many of the remaining projects in this course, you will
need software that was not part of the minimal install you did.
For this part of the project you will add an additional
repository (Although the tool changed its name to
the repos are still known as “yum repos”) to your system.
Then you will install some additional packages.
If you attempt some command and the software
doesn't appear to be installed, you must first check your
PATH and command line for errors.
If the software is truly not installed then you will need to
The remaining projects won't specify that you may need to install
the software referenced.
You will just need to realize you need to install anything required
but is not yet installed!
yum repositories to include the
An easy way to do this is to use
rpm to include the
package, available at their website.
Exactly what command(s) did you use to add this
(You can also consider adding other repos, such as the
repository, which is for Red Hat Enterprise Linux, but those
packages should work on Fedora.
Google also maintains a yum repo for its software.)
dnf from the command line,
install the package that provides the
Exactly what command(s) did you use to
find the package name and to install it?
Using any GUI tool, install
telnet server package.
If using Gnome, use the “Add and Remove Software” tool;
if using KDE, use the “Software Management”
tool (in the menus, look under
(Note there is also a
telnet client package which is most
likely already installed!)
Install any other software at this time you think you might need.
Remember you can always install it later too!
Note that individual packages of software are bundled into
You can install whole groups of packages more easily than installing
all the individual packages in that group.
Both the GUI tools and
dnf allow you to
list and install groups (something you will learn later).
Make a copy of your system journal pages that document the Linux install done in class. The system journal is a vital document that is used frequently for documentation of changes and work performed, and for trouble-shooting. You will start a system journal for your system with this project.
The journal should be readable, dated, and loose pages stapled together. Your name should appear on the first page. Except for the initial install, you can maintain your system's journal as a text file on the server. As you work on your server, you can have the journal open in an editor window, and record (even copy and paste) what steps you take. Another option is to use the class wiki to host your journal. (Other on-line options could be used too.)
Documenting the install is harder.
Don't forget to start with a system description including name,
purpose of system, hardware present, and your partition map.
During the install you need to keep track of your steps, as you
won't remember them all later.
Either write down each choice as you go, or you can use a feature
of the Fedora Anaconda installer: hitting
SHIFT+Print_Screen will make screen-shots and should save
In older versions of Fedora, a bug means the saved screen-shots won't be moved
/root/anaconda-screenshots/ at the end of the
You need to copy the saved screen-shots before rebooting,
onto the new disk image.
After you've taken the last screen-shot and before rebooting,
switch to a non-GUI console with
“ALT+F2”, and then run the commands:
mkdir /mnt/sysimage/root/anaconda-screeenshots cp /tmp/anaconda-screenshots/* /mnt/sysimage/tmp/anaconda-screenshots/* \ /mnt/sysimage/root/anaconda-screenshots/
In addition to saving screen-shots, all your installer choices are
saved in a file,
(This is a “KickStart” file; while it is text, it may
not be easy to read.)
Start your journal with the system name, location, purpose, and date. The initial system install documentation should include a hardware inventory for each system component (make, model, and configuration for each) such as the NIC type (and name), video card type, RAM, CPU, hard disk(s), removable media, etc. Then each configuration choice made during the install should be documented in enough detail so that someone else could completely duplicate your setup if necessary, using only your journal. (Vague entries such as “selected defaults” should be avoided, especially since defaults sometimes change. If you don't change some setting, record the setting anyway in your journal.)
For this class you can use the class wiki to host your system journal. You can edit and create pages as necessary, under your “user” page. (Use the help link for page creation and editing help.)
Write down every step either before you try it, or as you do it.
You will never remember exactly what you did, later!
If you stick to command line tools, you can use the
command to record every keystroke you type and all output.
(You can also use the
to view the commands you entered, and copy them into your journal.)
However this command isn't available for the install step, so
you should either use paper and pencil, or use a second computer and
work on your wiki page for your journal.
You should record everything, even the steps you un-do later!
You can always clean up the journal before creating management reports,
or before you turn it in to your instructor for grading.
Keeping an accurate and complete journal is a common requirement for
all engineers, not just system administrators.
Before making any changes to configuration files (such as those
/etc), make a copy of the current version of
Then when done playing with the file and all is working again, you
can copy the output of
diff to your journal, to show
A beginner administrator tends to document each command issued, for example:
2/30/01 WP useradd -m fbarr
Which says what command was done, when it was done, and by whom
WP are the initials of the administrator).
This is actually not a bad journal entry.
But with experience your journal entries change.
Instead of showing how something was done
(i.e., what command),
the journal shows what was done and why:
2/30/01 WP Added user account "fbarr" for new employee "Foo Barr", a programmer on the "DSL" project.
(Having both types showing the exact command used and why would be the most useful of all, but in reality no one keeps that detailed a journal.) Sometimes, what you were thinking when you did something is more important to the future reader than exactly what you did. Do not be afraid to write down your thoughts and questions.
A sample system journal can be found from our class web page, in the resources section. Please note that a single journal entry can list several related commands. This is easier to read than adding a date (and initials) to every line in the journal:
2/30/01 WP Added user account "fbarr" for new employee "Foo Barr", a programmer on the "DSL" project. Updated /etc/group entry for DSL to include fbarr. Updated the Wiki to require new accounts must be approved, since we noticed a large number of "spam" accounts were being created and used.
After your install and first boot, the system will likely spin
the disk heavily for a while.
This activity is normal.
Right after you boot, the system initializes several databases via
If possible keep your system “up” long enough for this process
It is usually best to keep an on-line text file as the system journal. This is easy to add to, and you can copy and paste commands and error messages to the journal easily. However, it is very important to keep an up-to-date copy of the journal off-line! A hard copy is also most useful, for when the system fails to boot at all. During a system install it is difficult or impossible to keep an on-line journal, but once the system is initially booted it is a good idea to copy your hand-written journal into an on-line one.
After successfully installing and booting Linux, you will
(eventually) need to shut it down.
From the GUI: when you logout you will see a
Shutdown” choice or a
menu (depends on the GUI used).
From the command line: enter “
Remember to remove all CDs and flash disks.
(If you have problems with the GUI using VirtualBox, be sure to turn off “3D acceleration”.)
A copy of your journal with your name clearly printed at the top should be submitted to the correct Canvas dropbox for this assignment. The name(s) of other classmates you worked with must be included.
For this project you may submit email or a printout (or neatly hand written) copy of your journal. If you submit a hardcopy, make sure your name is printed on the top of each page. (Remember that multi-page documents should be stapled.)
You can type or send as email to . Please use the subject similar to “Unix/Linux Admin I, Project 2 (Install) Submission”, so I can tell which emails are submitted projects.
Send questions about the assignment to . Please use a subject similar to “Unix/Linux Admin I, Project 2 (Install) Questions” so I can tell which emails are questions about the assignment (and not submissions).