Understanding Linux Operating Systems and Distributions: Complete Beginner's Guide for LFCS

Master Linux fundamentals for LFCS certification. Learn about Linux operating systems, distributions, VirtualBox setup, RedHat family, Ubuntu installation, and Windows WSL with detailed explanations and practice labs.

38 min read

Welcome to the first post in our comprehensive LFCS (Linux Foundation Certified System Administrator) Certification - Phase 1 series! Whether you're completely new to Linux or looking to formalize your knowledge for the LFCS exam, this series will take you from absolute beginner to confident system administrator.

๐Ÿ’ก

๐ŸŽฏ What You'll Learn: In this foundational guide, you'll master:

  • What Linux is and how it differs from Windows and macOS
  • Understanding Linux distributions (distros)
  • RedHat family: RHEL, CentOS Stream, Fedora, Rocky Linux
  • Debian family: Ubuntu, Debian, Linux Mint
  • Other major Linux families
  • Setting up VirtualBox for safe Linux learning on Windows
  • Creating and configuring virtual machines
  • Installing RedHat family Linux (CentOS Stream) in VirtualBox
  • Installing Ubuntu LTS in VirtualBox
  • VirtualBox Guest Additions for better integration
  • Setting up Windows Subsystem for Linux (WSL)
  • Choosing the right distribution for your needs

Series: LFCS Certification Preparation - Phase 1 (Post 1 of 52)

What is Linux?

Linux is an operating system kernel originally created by Linus Torvalds in 1991. But what does that really mean for you as a beginner?

Operating System Basics

An operating system (OS) is software that manages your computer's hardware and provides services for applications. When you turn on your computer, the operating system:

  • Loads into memory
  • Manages files and directories
  • Handles input from keyboard and mouse
  • Displays output on your screen
  • Runs your applications
  • Manages system resources (CPU, memory, storage)

The Three Major Operating System Families

FeatureLinuxWindowsmacOS
Source CodeOpen Source (Free)Proprietary (Closed)Proprietary (Closed)
CostFree (most distributions)Paid licenseFree with Apple hardware
CustomizationExtremely customizableLimited customizationModerate customization
Primary InterfaceCommand line + GUIGUI + PowerShellGUI + Terminal
File Systemext4, XFS, BtrfsNTFS, FAT32APFS, HFS+
Package Managementdnf, apt, pacman, etc.MSI installers, wingetApp Store, Homebrew
Security ModelPermissions, SELinuxUAC, Windows DefenderGatekeeper, XProtect
UpdatesUser controls timingAutomatic, less controlUser prompted
Server Market Share~96% of top servers~2%~1%

Why Linux Dominates Servers

Linux powers:

  • 96% of the world's top 1 million web servers
  • All of the top 500 supercomputers
  • Android phones (Linux kernel)
  • Network routers and switches
  • Smart TVs and IoT devices
  • AWS, Google Cloud, Azure infrastructure
  • NASA's Mars rovers
โœ…

โœ… For LFCS: Understanding why Linux is used for servers (stability, security, cost, flexibility) is fundamental knowledge tested in the certification.

Understanding Linux Distributions

Here's where Linux becomes interesting: unlike Windows or macOS, there isn't just "one Linux." There are hundreds of Linux distributions (often called "distros").

What is a Linux Distribution?

A Linux distribution is a complete operating system built around the Linux kernel. Think of it as:

Linux Kernel (the core) + GNU Tools (essential command-line utilities) + Package Manager (software installation system) + Init System (usually systemd) + Desktop Environment (GUI, optional) + Pre-installed Software + Configuration and Branding = Linux Distribution

Linux Distribution Architecture

Linux Distribution Layers

User Applications & Desktop Environment

System Services & Daemons (systemd)

Package Manager & Software Repositories

GNU Tools & System Libraries (glibc)

Linux Kernel

Hardware (CPU, Memory, Disk, Network)

Major Linux Distribution Families

Linux distributions are grouped into "families" based on their ancestry and package management systems.

1. RedHat Family (RPM-based)

The RedHat family uses:

  • .rpm package format
  • dnf (or yum) package manager
  • systemd init system
  • Focuses on enterprise stability

Key Members:

Red Hat Enterprise Linux (RHEL)

  • Commercial Linux distribution
  • Enterprise support and certifications
  • Long-term support (10+ years)
  • Costs money but provides professional support
  • Used by Fortune 500 companies
  • LFCS focuses heavily on RHEL-based systems

CentOS Stream

  • Community-supported
  • Free alternative to RHEL
  • Rolling release (continuous updates)
  • Slightly ahead of RHEL (preview of upcoming RHEL features)
  • Great for learning LFCS

Fedora

  • Community-driven, sponsored by Red Hat
  • Cutting-edge features
  • 6-month release cycle
  • Testing ground for future RHEL features
  • Good for developers and enthusiasts

Rocky Linux

  • Community fork after CentOS changed direction
  • Binary-compatible with RHEL
  • Enterprise stability without cost
  • Led by original CentOS founder

AlmaLinux

  • Another RHEL-compatible distribution
  • Backed by CloudLinux
  • Free forever promise
  • Production-ready
DistributionCostSupportBest For
RHELPaid subscriptionProfessional 24/7Enterprise production
CentOS StreamFreeCommunityLearning, development
Rocky LinuxFreeCommunityProduction without cost
AlmaLinuxFreeCommunityProduction without cost
FedoraFreeCommunityDesktop, cutting-edge
๐Ÿ’ก

๐Ÿ’ก For LFCS: Most LFCS training and practice uses CentOS Stream, Rocky Linux, or AlmaLinux because they're free and nearly identical to RHEL. The commands and concepts are 99% transferable.

2. Debian Family (DEB-based)

The Debian family uses:

  • .deb package format
  • apt (Advanced Package Tool) package manager
  • systemd init system
  • Focuses on stability and free software

Key Members:

Debian

  • One of the oldest distributions (1993)
  • Extremely stable
  • Huge software repositories
  • Slow release cycle (2-3 years)
  • The "universal operating system"
  • No corporate ownership

Ubuntu

  • Based on Debian
  • Most popular desktop Linux
  • User-friendly for beginners
  • 6-month release cycle (April and October)
  • LTS (Long Term Support) versions every 2 years
  • Backed by Canonical company
  • Excellent hardware support
  • Large community

Linux Mint

  • Based on Ubuntu
  • Even more user-friendly
  • Traditional desktop environment (Cinnamon)
  • Good for Windows converts
  • No snap packages (uses traditional packages)

Pop!_OS

  • Created by System76 (hardware manufacturer)
  • Optimized for developers
  • Great for gaming
  • Beautiful interface
DistributionBased OnRelease CycleBest For
DebianIndependent2-3 yearsServers, stability
UbuntuDebian6 months (LTS: 2 years)Beginners, desktops
Linux MintUbuntuFollows Ubuntu LTSWindows converts
Pop!_OSUbuntuFollows UbuntuDevelopers, gaming

3. Other Major Families

Arch Linux Family

  • Rolling release (always latest)
  • Build it yourself philosophy
  • Excellent documentation (Arch Wiki)
  • For advanced users
  • Members: Arch Linux, Manjaro, EndeavourOS

SUSE Family

  • Enterprise-focused (SUSE Linux Enterprise)
  • openSUSE community version
  • YaST configuration tool
  • Popular in Europe

Gentoo

  • Compile from source
  • Ultimate customization
  • For experts
  • Very steep learning curve

Ubuntu LTS Explained

LTS (Long Term Support) is crucial to understand:

  • Released every 2 years (April of even years: 20.04, 22.04, 24.04)
  • Supported for 5 years (free updates and security patches)
  • Extended security maintenance available for 10 years (paid)
  • More stable than non-LTS versions
  • Recommended for production servers and businesses
  • Current LTS: Ubuntu 24.04 (Noble Numbat)
  • Previous LTS: Ubuntu 22.04 (Jammy Jellyfish), 20.04 (Focal Fossa)

Non-LTS versions:

  • Released every 6 months
  • Supported for only 9 months
  • Cutting-edge features
  • Not recommended for production
โš ๏ธ

โš ๏ธ For LFCS: If you practice on Ubuntu, always use an LTS version. The LFCS exam environment uses enterprise distributions, so Ubuntu 24.04 LTS or CentOS Stream 9 are ideal for preparation.

Setting Up VirtualBox for Linux Learning

Before installing Linux distributions, let's set up VirtualBox - a free virtualization software that lets you run Linux inside Windows without dual-booting or modifying your existing system.

What is VirtualBox?

Oracle VirtualBox is a free, open-source virtualization software that creates virtual machines (VMs) on your computer. Think of it as:

  • A computer inside your computer
  • A safe sandbox where you can experiment
  • Multiple operating systems running simultaneously
  • No risk to your main Windows installation
How VirtualBox Works
Your Physical Computer (Host)
Windows 10/11 running normally
โ†“ VirtualBox Software โ†“
Virtual Machine 1
CentOS Stream 9
Virtual Machine 2
Ubuntu 24.04 LTS

Why Use VirtualBox for LFCS Learning?

BenefitWhy It Matters
No RiskBreak things without affecting Windows
SnapshotsSave state and restore anytime
Multiple DistrosRun CentOS and Ubuntu side-by-side
Easy SetupNo dual-boot, no partitioning
FreeZero cost for personal use
PortableCopy VMs to another computer
โœ…

โœ… Perfect for Beginners: VirtualBox is the recommended way to learn Linux if you're primarily a Windows user. You can practice LFCS commands safely and reset anytime.

Step 1: Download VirtualBox

1.1 Visit VirtualBox Website

Open your web browser and go to: https://www.virtualbox.org

1.2 Click "Download VirtualBox"

You'll see a big blue button on the homepage.

1.3 Select Windows Hosts

On the downloads page, click "Windows hosts" to download the installer for Windows.

  • File name: Something like VirtualBox-7.0.12-159484-Win.exe
  • Size: Approximately 100-150 MB
  • Save location: Your Downloads folder
๐Ÿ’ก

๐Ÿ’ก Version Note: VirtualBox updates regularly. As of writing, version 7.0.x is current. Any version 6.1+ or 7.0+ works fine for LFCS practice.

Step 2: Install VirtualBox on Windows

2.1 Run the Installer

  1. Open your Downloads folder
  2. Double-click the VirtualBox installer (.exe file)
  3. If User Account Control (UAC) prompts, click "Yes"

2.2 Installation Wizard

Welcome Screen:

  • Click "Next"

Custom Setup:

  • Leave all default options checked:
    • โ˜‘๏ธ VirtualBox Application
    • โ˜‘๏ธ VirtualBox USB Support
    • โ˜‘๏ธ VirtualBox Networking
    • โ˜‘๏ธ Python Support
  • Installation location: C:\Program Files\Oracle\VirtualBox\ (default is fine)
  • Click "Next"

Network Interfaces Warning:

  • You'll see a warning: "Installing Oracle VM VirtualBox Networking will reset your network connection"
  • This is normal - your internet will drop for 2-3 seconds
  • Click "Yes"

Ready to Install:

  • Click "Install"
  • Wait 2-3 minutes for installation

Device Software Installation:

  • Windows will prompt to install device drivers
  • Click "Install" for:
    • Oracle Corporation USB Device
    • Oracle Corporation Network Adapter
    • Oracle Corporation Network Service

Finish:

  • โ˜‘๏ธ Check "Start Oracle VM VirtualBox after installation"
  • Click "Finish"

2.3 First Launch

VirtualBox will open showing an empty window with:

  • Menu bar at top (File, Machine, View, etc.)
  • Toolbar with icons (New, Settings, Start)
  • Empty VM list on the left (no machines yet)
  • Welcome screen on the right
โœ…

๐ŸŽ‰ Congratulations! VirtualBox is now installed. You're ready to create virtual machines!

Step 3: Download Linux ISO Files

Before creating VMs, download the Linux installation images (ISO files).

3.1 Download CentOS Stream 9

  1. Visit: https://www.centos.org/download/
  2. Click "CentOS Stream 9"
  3. Select architecture: x86_64
  4. Choose download method:
    • Direct download (HTTP) - easier for beginners
    • Or Torrent - faster if you have a torrent client
  5. Download the ISO file:
    • File name: CentOS-Stream-9-latest-x86_64-dvd1.iso
    • Size: Approximately 9-10 GB
    • Save location: Create a folder like C:\VirtualBox\ISOs\
โš ๏ธ

โš ๏ธ Large Download: CentOS ISO is 9-10 GB. On slow internet, this may take hours. Be patient or use the minimal installer (1-2 GB) instead.

Minimal ISO Alternative: Search for "CentOS Stream 9 boot ISO" for a smaller ~1 GB file that downloads packages during installation (requires internet connection).

3.2 Download Ubuntu 24.04 LTS

  1. Visit: https://ubuntu.com/download/server
  2. Click "Download Ubuntu 24.04 LTS"
  3. Download will start automatically:
    • Server ISO: ubuntu-24.04-live-server-amd64.iso (~2.5 GB)
    • Desktop ISO: ubuntu-24.04-desktop-amd64.iso (~4.5 GB)
  4. Save to same folder: C:\VirtualBox\ISOs\
๐Ÿ’ก

๐Ÿ’ก Server vs Desktop: For LFCS, Server is recommended (smaller, command-line focused). But Desktop is fine too if you prefer a GUI initially.

Step 4: Create Your First Virtual Machine (CentOS Stream 9)

Now let's create a VM for CentOS Stream 9.

4.1 Start VM Creation

  1. In VirtualBox, click the "New" button (blue star icon) in toolbar
  2. Or: Machine โ†’ New from menu

4.2 Name and Operating System

A wizard appears:

  • Name: CentOS-Stream-9-LFCS

    • This name appears in your VM list
    • Use descriptive names to remember purpose
  • Folder: Leave default or choose custom location

    • Default: C:\Users\YourName\VirtualBox VMs\
    • VMs can be large (20+ GB), ensure enough space
  • ISO Image: Click dropdown โ†’ "Other"

    • Navigate to: C:\VirtualBox\ISOs\
    • Select: CentOS-Stream-9-latest-x86_64-dvd1.iso
  • Type: Linux (auto-selected after choosing ISO)

  • Version: Red Hat (64-bit) or Other Linux (64-bit)

    • VirtualBox auto-detects from ISO
  • โ˜‘๏ธ Skip Unattended Installation (check this box)

    • We want to go through installation manually for learning
  • Click "Next"

4.3 Hardware (Memory and Processors)

  • Base Memory (RAM):

    • Minimum: 2048 MB (2 GB)
    • Recommended: 4096 MB (4 GB)
    • Rule: Don't allocate more than 50% of your host RAM
    • Example: If you have 8 GB RAM, allocate 2-4 GB
    • Green zone = safe, Red zone = danger
  • Processors:

    • Minimum: 1 CPU
    • Recommended: 2 CPUs
    • Rule: Don't allocate more than 50% of your CPUs
    • Example: If you have 4 cores, allocate 1-2 cores
    • Keep slider in green zone
  • Click "Next"

4.4 Virtual Hard Disk

  • Create a virtual hard disk now (selected by default)

  • Disk Size:

    • Minimum: 20 GB
    • Recommended: 30-50 GB for LFCS practice
    • Note: This is maximum size, not immediately used
    • With dynamic allocation, starts small and grows as needed
  • Pre-allocate Full Size: Leave unchecked

    • Unchecked = Dynamic allocation (starts small, grows as needed)
    • Checked = Fixed size (faster but takes full space immediately)
    • For learning, dynamic is better
  • Click "Next"

4.5 Summary

Review your settings:

  • Name: CentOS-Stream-9-LFCS

  • Type: Linux, Red Hat (64-bit)

  • Memory: 4096 MB

  • Processors: 2

  • Hard Disk: 30 GB (dynamically allocated)

  • Click "Finish"

Your VM now appears in the left sidebar! But we need to configure a few more settings before starting.

4.6 Additional VM Settings

With your VM selected in the sidebar, click "Settings" (gear icon).

System Settings:

  1. Click "System" in left menu

  2. Motherboard tab:

    • Boot Order: Ensure "Optical" is before "Hard Disk"
      • Check โ˜‘๏ธ Optical
      • Check โ˜‘๏ธ Hard Disk
      • Uncheck โ˜ Floppy
    • Extended Features:
      • โ˜‘๏ธ Enable I/O APIC (should be checked)
  3. Processor tab:

    • Verify CPU count (2 is good)
    • โ˜‘๏ธ Enable PAE/NX if available

Display Settings:

  1. Click "Display" in left menu
  2. Screen tab:
    • Video Memory: Increase to 128 MB (maximum)
    • This helps with console visibility
    • Graphics Controller: VMSVGA or VBoxVGA

Network Settings:

  1. Click "Network" in left menu
  2. Adapter 1 tab:
    • โ˜‘๏ธ Enable Network Adapter (checked)
    • Attached to: NAT (default)
      • NAT = VM can access internet through host
      • This is what you want for LFCS practice
๐Ÿ’ก

๐Ÿ’ก NAT vs Bridged:

  • NAT (default): VM shares host's IP, can access internet
  • Bridged: VM gets own IP on your network, visible to other devices
  • For LFCS learning, NAT is perfect

USB Settings (optional):

  1. Click "USB" in left menu
  2. Select "USB 2.0 (EHCI) Controller"
    • Allows USB device pass-through to VM
    • Useful if you want to use USB drives in VM

Click "OK" to save all settings.

4.7 Take Initial Snapshot

Before installing, take a snapshot so you can always return to this clean state:

  1. With VM selected, click "Snapshots" button (top right, next to Details)
  2. Click "Take" snapshot button (camera icon)
  3. Snapshot Name: "Fresh VM - Before Installation"
  4. Description: "Clean VM before OS installation"
  5. Click "OK"

This creates a restore point. If installation goes wrong, you can revert to this snapshot instead of recreating the VM!

Step 5: Start VM and Begin Installation

5.1 Start the Virtual Machine

  1. With your VM selected in sidebar, click "Start" (green arrow button)
  2. A new window opens - this is your virtual machine screen
  3. VM will boot from the CentOS ISO file

5.2 VirtualBox Window Explanation

The VM window has:

  • Title bar: Shows VM name and state
  • Menu bar: Machine, View, Input, Devices, Help
  • Virtual screen: Your Linux display
  • Status bar (bottom): Shows VM status, mouse capture, keyboard status

Mouse Capture:

  • When you click inside VM window, mouse is "captured"
  • Host Key (default: Right Ctrl) releases mouse back to Windows
  • Status bar shows: "Right Ctrl for mouse/keyboard capture"

5.3 Proceed with CentOS Installation

Now follow the detailed installation steps in the next section. The installation process inside the VM is identical to installing on physical hardware.

โœ…

๐ŸŽ‰ You're Ready! Your VM is running and waiting for installation. Continue with the CentOS installation steps below.

Installing RedHat Family Linux (CentOS Stream 9)

Let's walk through installing CentOS Stream 9, which is free and perfect for LFCS preparation.

๐Ÿ’ก

๐Ÿ’ก Installation Environment: These installation steps work identically whether you're installing:

  • Inside VirtualBox (recommended for beginners - follow steps above first)
  • Inside VMware Workstation/Player
  • On physical hardware (bare metal)
  • On other virtualization platforms

If you completed the VirtualBox setup above, your VM is already running and ready for installation. Just follow along!

Prerequisites

If using VirtualBox (recommended):

  • โœ… VirtualBox installed
  • โœ… CentOS Stream 9 ISO downloaded
  • โœ… VM created and running (as per steps above)

If installing on physical hardware:

  • Computer with at least:
    • 2 GB RAM (4 GB recommended)
    • 20 GB free disk space
    • 64-bit processor
  • Downloaded CentOS Stream 9 ISO from centos.org
  • USB drive (8GB+) to create bootable media using tools like:

Step-by-Step Installation

Step 1: Boot from Installation Media

  1. Boot your computer from the CentOS ISO (USB or DVD)
  2. You'll see the GRUB boot menu
  3. Select "Install CentOS Stream 9"
  4. Press Enter

Step 2: Language Selection

  1. Select your language (English recommended for LFCS)
  2. Click Continue

Step 3: Installation Summary

You'll see a centralized screen with multiple options:

Localization:

  • Keyboard: Set your keyboard layout (US English default)
  • Language Support: Additional languages (optional)
  • Time & Date: Select your timezone

Software:

  • Software Selection:
    • Minimal Install: Text-only, smallest footprint (recommended for servers and LFCS)
    • Server: Basic server tools
    • Server with GUI: Graphical desktop
    • Workstation: For desktop use
    • Custom Operating System: Maximum control
โœ…

โœ… For LFCS: Choose "Minimal Install" or "Server". You'll work primarily with command line, and this matches exam conditions.

System:

  • Installation Destination:

    • Select your disk
    • Choose Automatic partitioning (for beginners)
    • Or Custom for advanced (manual partitions)
    • Standard partition scheme creates:
      • /boot - Boot files (1 GB)
      • / - Root filesystem (remaining space)
      • swap - Virtual memory (usually 2x RAM)
  • Network & Hostname:

    • Turn Ethernet ON
    • Set hostname (e.g., centos.localdomain or lfcs-practice)
    • Configure IPv4/IPv6 if needed

Step 4: User Settings

  • Root Password:

    • Set a strong root password
    • Root is the superuser (administrator)
    • Essential for system administration
  • Create User Account:

    • Username (e.g., admin, student, your-name)
    • Password
    • โ˜‘๏ธ Check "Make this user administrator" (adds to wheel group for sudo)

Step 5: Begin Installation

  1. Click "Begin Installation"
  2. Installation takes 5-15 minutes depending on:
    • Installation media speed
    • Disk speed
    • System specifications
    • Software selection

Step 6: Complete Installation

  1. Click "Reboot System"
  2. Remove installation media
  3. System boots to login prompt

Step 7: First Login

CentOS Stream 9
Kernel 5.14.0-xxx.el9.x86_64 on an x86_64

localhost login: admin
Password: [your password]

[admin@localhost ~]$

Congratulations! You've installed CentOS Stream 9.

Post-Installation Steps

1. Update the System:

sudo dnf update -y

This updates all packages to the latest versions.

2. Install Useful Tools:

sudo dnf install -y vim wget curl git man-db

3. Set Hostname (if needed):

sudo hostnamectl set-hostname your-hostname

4. Enable Network (if not already):

sudo systemctl enable --now NetworkManager

5. Install VirtualBox Guest Additions (if using VirtualBox):

VirtualBox Guest Additions provide better integration between host and guest:

  • Better screen resolution and display
  • Shared clipboard (copy/paste between Windows and VM)
  • Shared folders (access Windows folders from Linux)
  • Better mouse integration
  • Improved performance

Install Guest Additions on CentOS:

# First, install required packages
sudo dnf install -y gcc kernel-devel kernel-headers dkms make bzip2 perl

# Make sure kernel-devel matches your kernel version
sudo dnf install -y "kernel-devel-uname-r == $(uname -r)"

Then in VirtualBox menu:

  1. Click Devices โ†’ Insert Guest Additions CD image...
  2. In the VM terminal:
# Mount the CD (it should auto-mount, but if not:)
sudo mount /dev/cdrom /mnt

# Run the installer
sudo /mnt/VBoxLinuxAdditions.run

# Reboot to apply changes
sudo reboot

After reboot, test features:

  • Resize VM window - screen should adapt automatically
  • Copy text in Windows, try pasting in VM terminal (Right-click โ†’ Paste or Shift+Insert)
๐Ÿ’ก

๐Ÿ’ก Guest Additions Tip: If shared clipboard doesn't work immediately, try:

  1. VirtualBox menu: Devices โ†’ Shared Clipboard โ†’ Bidirectional
  2. Reboot the VM

Installing Ubuntu LTS (24.04)

Ubuntu installation is even more beginner-friendly with a graphical installer.

Prerequisites

  • Computer with at least:
    • 4 GB RAM (8 GB recommended for desktop)
    • 25 GB free disk space
    • 64-bit processor
  • Downloaded Ubuntu 24.04 LTS ISO from ubuntu.com or ubuntu.com/download/server

Server vs Desktop

  • Ubuntu Server: No GUI, command-line only, smaller footprint
  • Ubuntu Desktop: Full graphical interface, easier for beginners
๐Ÿ’ก

๐Ÿ’ก For LFCS: Ubuntu Server is better for exam preparation, but Desktop works fine too. You'll spend most time in Terminal anyway.

Ubuntu Server Installation

Step 1: Boot and Language

  1. Boot from Ubuntu ISO
  2. Select "Install Ubuntu Server"
  3. Choose language (English)

Step 2: Network Configuration

  • Automatic DHCP (default)
  • Or configure static IP manually

Step 3: Storage Configuration

  • Use an entire disk (automatic, recommended)
  • Or Custom storage layout (advanced)
  • LVM (Logical Volume Manager) option available

Step 4: Profile Setup

  • Your name: Full name
  • Server name: Hostname (e.g., ubuntu-lfcs)
  • Username: Login username
  • Password: Strong password

Step 5: SSH Setup

  • โ˜‘๏ธ Install OpenSSH server (recommended for remote access)
  • Import SSH keys from GitHub/Launchpad (optional)

Step 6: Featured Server Snaps

  • Optional pre-installed software
  • Docker, PostgreSQL, Nextcloud, etc.
  • Can install later, skip for now

Step 7: Installation Progress

  • Installation proceeds automatically
  • Takes 10-20 minutes
  • Reboot Now when complete

Step 8: First Login

Ubuntu 24.04 LTS ubuntu tty1

ubuntu login: yourusername
Password:

Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-xx-generic x86_64)

yourusername@ubuntu:~$

Ubuntu Desktop Installation

The Desktop installer is more visual and straightforward:

  1. Try or Install Ubuntu: Choose "Install Ubuntu"
  2. Keyboard Layout: Select your keyboard
  3. Updates and Software:
    • Normal installation (web browser, office suite, games)
    • Or Minimal installation (just basics)
    • Download updates during installation
    • Install third-party software (for better hardware support)
  4. Installation Type:
    • Erase disk and install Ubuntu (easiest)
    • Or manual partitioning
  5. Where are you?: Select timezone
  6. Who are you?:
    • Your name
    • Computer name
    • Username and password
  7. Installation proceeds automatically
  8. Restart and enjoy!

Windows Subsystem for Linux (WSL)

WSL lets you run Linux directly on Windows 10/11 without dual-booting or virtual machines.

What is WSL?

WSL (Windows Subsystem for Linux) is a compatibility layer that allows you to:

  • Run Linux distributions on Windows
  • Use Linux command-line tools
  • Develop Linux applications on Windows
  • No performance overhead of traditional VMs

WSL 1 vs WSL 2

FeatureWSL 1WSL 2
Linux KernelTranslation layerReal Linux kernel
PerformanceGood for files on WindowsMuch faster overall
File SystemFast Windows accessSlow Windows access
CompatibilitySome limitationsFull system call compatibility

Recommendation: Use WSL 2 (default in modern Windows).

Installing WSL on Windows

Prerequisites:

  • Windows 10 version 2004 or higher (Build 19041+)
  • Or Windows 11
  • Administrator privileges

Method 1: Simple Installation (Windows 11 / Windows 10 version 2004+)

  1. Open PowerShell or Windows Terminal as Administrator
  2. Run:
wsl --install

This automatically:

  • Enables WSL feature
  • Installs WSL 2
  • Installs Ubuntu (default distribution)
  • Configures everything
  1. Restart your computer

  2. After restart, Ubuntu setup will launch automatically:

    • Create username
    • Set password
    • You're done!

Method 2: Manual Installation

If automatic installation doesn't work:

Step 1: Enable WSL

Open PowerShell as Administrator:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Step 2: Enable Virtual Machine Platform

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Step 3: Restart Computer

Step 4: Download and Install WSL 2 Kernel Update

Download from: https://aka.ms/wsl2kernel

Step 5: Set WSL 2 as Default

wsl --set-default-version 2

Step 6: Install a Linux Distribution

Option A: Microsoft Store

  1. Open Microsoft Store
  2. Search for "Ubuntu" or "Debian" or "CentOS"
  3. Click Install

Option B: Command Line

List available distributions:

wsl --list --online

Output:

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
Ubuntu-24.04                           Ubuntu 24.04 LTS

Install specific distribution:

wsl --install -d Ubuntu-24.04

Step 7: Launch and Configure

  1. Launch Ubuntu from Start Menu
  2. Wait for setup to complete
  3. Create username and password
  4. You're in Linux on Windows!

Using WSL

Launching WSL:

  • Click Ubuntu icon in Start Menu
  • Or type wsl in PowerShell/Command Prompt
  • Or type ubuntu in Windows Terminal

Accessing Windows Files from WSL:

Windows drives are mounted at /mnt/:

cd /mnt/c/Users/YourName/Documents
ls -la

Accessing WSL Files from Windows:

In Windows Explorer, navigate to:

\\wsl$\Ubuntu\home\yourusername

Or simply type in Explorer address bar: \\wsl$

Running WSL Commands from Windows:

wsl ls -la
wsl cat /etc/os-release

WSL Best Practices

  1. Keep files in Linux filesystem: Much faster than /mnt/c/
  2. Use Windows Terminal: Better than default console
  3. Update regularly:
sudo apt update && sudo apt upgrade -y
  1. Install essential tools:
sudo apt install -y build-essential vim git curl wget

Choosing the Right Distribution for LFCS

โœ… Best Choices for LFCS Preparation

DistributionWhy Choose ItLFCS Relevance
CentOS Stream 9Free, closely matches RHEL, stableโญโญโญโญโญ Perfect
Rocky Linux 9Free, RHEL-compatible, stableโญโญโญโญโญ Perfect
Ubuntu 24.04 LTSBeginner-friendly, excellent docsโญโญโญโญ Very Good
AlmaLinux 9Free, RHEL-compatibleโญโญโญโญโญ Perfect

Recommendation: Start with CentOS Stream 9 or Rocky Linux 9 as your primary system, and optionally use Ubuntu 24.04 LTS to understand differences between RPM and DEB-based systems.

๐Ÿงช Practice Labs

Now it's time to get hands-on! Complete these practice tasks to reinforce your learning.

Lab 1: Installation Practice (Beginner)

  1. Install CentOS Stream 9 in VirtualBox with these specifications:

    • 2 GB RAM
    • 20 GB disk
    • Minimal Install
    • Create user account with sudo privileges
  2. After installation, run these commands and document the output:

    cat /etc/os-release
    uname -r
    whoami
    id
    
  3. Install Ubuntu 24.04 LTS Server in a separate VM

    • Install with OpenSSH server enabled
    • Create the same username as on CentOS
  4. Compare the output of /etc/os-release between CentOS and Ubuntu

  5. Check which package manager each system uses:

    # On CentOS
    which dnf
    
    # On Ubuntu
    which apt
    

Lab 2: WSL Setup (Beginner)

  1. Install WSL 2 on Windows (if you have Windows)

  2. Install Ubuntu 24.04 from Microsoft Store

  3. After setup, run:

    lsb_release -a
    uname -a
    
  4. Create a directory in Linux filesystem:

    mkdir -p ~/lfcs-practice
    cd ~/lfcs-practice
    touch testfile.txt
    
  5. Access this directory from Windows Explorer using \\wsl$

  6. Practice moving between Windows and Linux:

    # From WSL, list Windows C: drive
    ls /mnt/c/
    
    # Go to your Windows user directory
    cd /mnt/c/Users/YourName/
    

Lab 3: Understanding Package Managers (Intermediate)

  1. On CentOS/Rocky Linux, update the system:

    sudo dnf check-update
    sudo dnf update -y
    
  2. Install a package:

    sudo dnf install -y htop
    htop  # Press Q to quit
    
  3. Search for packages:

    dnf search vim
    
  4. List installed packages:

    dnf list installed | head -20
    
  5. On Ubuntu, perform equivalent operations:

    sudo apt update
    sudo apt upgrade -y
    sudo apt install -y htop
    apt search vim
    apt list --installed | head -20
    
  6. Document the differences between dnf and apt commands

Lab 4: System Information (Intermediate)

  1. Check your Linux distribution family:

    cat /etc/os-release | grep -i "ID_LIKE"
    
  2. Check kernel version:

    uname -r
    uname -a
    
  3. Check system architecture:

    uname -m
    arch
    
  4. Check how long system has been running:

    uptime
    
  5. Check disk usage:

    df -h
    
  6. Check memory usage:

    free -h
    
  7. Check CPU information:

    lscpu
    cat /proc/cpuinfo | grep "model name" | head -1
    

Lab 5: Multiple Distributions (Advanced)

  1. Install THREE different distributions:

    • CentOS Stream 9 (RedHat family)
    • Ubuntu 24.04 LTS (Debian family)
    • Fedora (optional, RedHat family)
  2. Create a comparison chart documenting:

    • Package manager command syntax
    • Default firewall (firewalld vs ufw)
    • Default text editor available
    • Python version pre-installed
    • Init system (should all be systemd)
  3. On each system, install Apache web server:

    # CentOS/Fedora
    sudo dnf install -y httpd
    sudo systemctl start httpd
    
    # Ubuntu
    sudo apt install -y apache2
    sudo systemctl start apache2
    
  4. Note the different package names: httpd vs apache2

Lab 6: Post-Installation Configuration (Advanced)

  1. Set a meaningful hostname on your CentOS system:

    sudo hostnamectl set-hostname lfcs-centos
    # Logout and login to see change in prompt
    
  2. Configure timezone:

    timedatectl
    sudo timedatectl set-timezone America/New_York
    # Or your timezone
    timedatectl
    
  3. Create additional user accounts:

    sudo useradd -m -s /bin/bash testuser1
    sudo passwd testuser1
    
  4. Add your main user to wheel group (if not already):

    sudo usermod -aG wheel yourusername
    # On Ubuntu, use: sudo usermod -aG sudo yourusername
    
  5. Verify sudo access:

    sudo whoami  # Should output: root
    

Lab 7: Network Configuration (Advanced)

  1. Find your IP address:

    ip a
    # Note the interface name (like enp0s3 or eth0)
    
  2. Check routing table:

    ip route
    
  3. Check DNS configuration:

    cat /etc/resolv.conf
    
  4. Test network connectivity:

    ping -c 4 google.com
    
  5. Check open ports:

    sudo ss -tuln
    

Lab 8: Service Management (Advanced)

  1. Check status of SSH service:

    # CentOS
    sudo systemctl status sshd
    
    # Ubuntu
    sudo systemctl status ssh
    
  2. Enable SSH to start at boot:

    sudo systemctl enable sshd   # or ssh on Ubuntu
    
  3. List all running services:

    systemctl list-units --type=service --state=running
    
  4. Check if firewall is running:

    # CentOS (firewalld)
    sudo systemctl status firewalld
    
    # Ubuntu (ufw)
    sudo ufw status
    

Lab 9: Documentation Practice (Intermediate)

  1. Use man pages to find information:

    man dnf  # or man apt on Ubuntu
    man useradd
    man 5 passwd  # File format, not command
    
  2. Search for commands related to user management:

    sudo mandb  # Update man database
    man -k user | head -20
    
  3. Use --help for quick reference:

    ls --help | less
    mkdir --help
    

Lab 10: Filesystem Exploration (Beginner)

  1. Explore the root filesystem:

    ls -l /
    
  2. Check what's in /usr:

    ls -l /usr
    
  3. Look at system configuration files:

    ls -l /etc | head -20
    
  4. Check log files location:

    ls -l /var/log | head -10
    
  5. View a log file:

    sudo tail -20 /var/log/messages   # CentOS
    # or
    sudo tail -20 /var/log/syslog     # Ubuntu
    

Lab 11-15: Challenge Tasks (Real-World Scenarios)

Lab 11: Set Up a Development Environment

Install essential development tools on your Linux system:

# CentOS
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y git vim wget curl

# Ubuntu
sudo apt install -y build-essential git vim wget curl

Verify installations:

gcc --version
git --version
make --version

Lab 12: Create a Backup User

  1. Create a backup user account
  2. Add to appropriate admin group
  3. Test sudo access
  4. Document all commands used

Lab 13: System Update Schedule

Research how to:

  1. Check for available updates without installing
  2. Update only security patches
  3. Set up automatic updates (research dnf-automatic or unattended-upgrades)

Lab 14: Distribution Comparison Report

Create a document comparing:

  • Installation process difficulty
  • Default installed packages
  • Package manager commands
  • Community support resources
  • Use cases for each distribution

Lab 15: Virtual Machine Snapshot

  1. Install VirtualBox Guest Additions (or VMware Tools)
  2. Take a snapshot of your VM
  3. Make some changes (install packages, create files)
  4. Restore from snapshot
  5. Verify changes are reverted

๐Ÿ“š Best Practices

โœ… Distribution Selection

  1. For LFCS Exam Preparation:

    • Use RedHat family (CentOS Stream, Rocky Linux, AlmaLinux)
    • Ubuntu LTS is acceptable but know the differences
    • Install both for comprehensive understanding
  2. For Learning:

    • Start with beginner-friendly: Ubuntu Desktop
    • Progress to server-focused: CentOS Stream Server
    • Master command-line on minimal installations
  3. For Production:

    • Enterprise: RHEL (with support), Ubuntu LTS Pro
    • Small business: Rocky Linux, AlmaLinux, Ubuntu LTS
    • Stability over features: LTS versions always

โœ… Installation Best Practices

  1. Always use LTS versions for production and learning
  2. Minimal installs for servers (security and performance)
  3. Take snapshots before major changes
  4. Document your installation (settings, packages, configs)
  5. Enable SSH early for remote management practice
  6. Set strong passwords and practice good security habits
  7. Keep systems updated regularly

โœ… Multi-Distribution Setup

  1. Use VMs for practice: Easy to reset, experiment freely
  2. Consistent usernames: Use same username across systems
  3. Organized naming: centos-lfcs, ubuntu-lfcs, etc.
  4. Network considerations: Set up host-only network for VM communication
  5. Resource allocation: Don't over-allocate RAM to VMs

โœ… WSL Considerations

  1. File location matters: Keep work files in Linux filesystem
  2. Update regularly: sudo apt update && sudo apt upgrade
  3. Windows Terminal: Much better than default console
  4. Know limitations: Not suitable for all server scenarios
  5. Backup important work: WSL can be reset, losing data

๐Ÿšจ Common Pitfalls to Avoid

โš ๏ธ

โŒ Mistakes Beginners Make

  1. Choosing non-LTS Ubuntu: You'll face support issues
  2. Installing desktop on server: Wastes resources, adds security risks
  3. Ignoring updates: Security vulnerabilities accumulate
  4. Not taking snapshots: One wrong command can break everything
  5. Using root for everything: Bad security practice, develop sudo habits
  6. Mixing package managers: Never use both dnf and apt on same system
  7. Forgetting to enable services: SSH installed but not running
  8. Not documenting changes: You'll forget what you did
  9. Over-complicating: Start simple, add complexity gradually
  10. Skipping man pages: Reading documentation is a critical skill

๐Ÿ“ Command Cheat Sheet

Distribution Information

# Check distribution details
cat /etc/os-release
lsb_release -a        # Ubuntu/Debian

# Check kernel version
uname -r              # Kernel release
uname -a              # All system information

# Check architecture
uname -m
arch

Package Management

# RedHat Family (CentOS, Rocky, Fedora, RHEL)
sudo dnf check-update         # Check for updates
sudo dnf update -y            # Update all packages
sudo dnf install package      # Install package
sudo dnf remove package       # Remove package
sudo dnf search keyword       # Search packages
dnf list installed            # List installed packages
dnf info package              # Package information

# Debian Family (Ubuntu, Debian, Mint)
sudo apt update               # Update package lists
sudo apt upgrade -y           # Upgrade packages
sudo apt install package      # Install package
sudo apt remove package       # Remove package
apt search keyword            # Search packages
apt list --installed          # List installed packages
apt show package              # Package information

System Information

# Hostname
hostname                      # Show hostname
hostnamectl                   # Detailed hostname info
sudo hostnamectl set-hostname name  # Change hostname

# System uptime
uptime

# Disk usage
df -h                         # Human-readable disk usage

# Memory usage
free -h                       # Human-readable memory info

# CPU information
lscpu
cat /proc/cpuinfo

# Network interfaces
ip a
ip addr show

Service Management (systemd)

# Service status
sudo systemctl status service_name

# Start/Stop/Restart service
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

# Enable/Disable service (autostart at boot)
sudo systemctl enable service_name
sudo systemctl disable service_name

# List all services
systemctl list-units --type=service

WSL Commands (from Windows PowerShell)

# List installed distributions
wsl --list --verbose

# Set default distribution
wsl --set-default Ubuntu-24.04

# Update WSL
wsl --update

# Shutdown WSL
wsl --shutdown

# Run command in specific distro
wsl -d Ubuntu-24.04 ls -la

๐ŸŽฏ Key Takeaways

โœ… Remember These Points

  1. Linux is a kernel, distributions are complete operating systems built around it
  2. RedHat family (CentOS, Rocky, RHEL) uses RPM packages and dnf
  3. Debian family (Ubuntu, Debian) uses DEB packages and apt
  4. LTS versions provide 5+ years of support - always use for production
  5. CentOS Stream 9 or Rocky Linux 9 are ideal for LFCS preparation
  6. Ubuntu 24.04 LTS is excellent for beginners and alternative practice
  7. WSL allows running Linux on Windows, great for learning
  8. systemd is the init system on all modern distributions
  9. Minimal installs are preferred for servers and exam practice
  10. Documentation skills (man, info, --help) are as important as commands

๐Ÿš€ What's Next?

Now that you understand Linux distributions and have your system installed, you're ready to dive into system administration fundamentals!

In the next post (Part 2), we'll cover:

  • Understanding the wheel and sudo groups
  • How group membership grants administrative privileges
  • Differences between RedHat's wheel and Debian's sudo group
  • Managing group membership
  • Best practices for group-based permissions

Coming Up in Phase 1:

  • Part 3: Root User and su Command
  • Part 4: Mastering sudo
  • Part 5: sudo Configuration
  • Parts 6-10: Basic Commands and Help Systems
  • And 40+ more posts!

โœ…

๐ŸŽ‰ Congratulations! You've completed Part 1 of the LFCS Certification series. You now understand Linux distributions, can install systems, and are ready to start hands-on administration.

Did you complete the practice labs? Share your experience! Which distribution did you choose and why?

๐Ÿ’ฌ Discussion

I'd love to hear about your Linux journey:

  • Which distribution did you choose for LFCS preparation?
  • Did you encounter any issues during installation?
  • Are you using VirtualBox, VMware, bare metal, or WSL?
  • Have you used Linux before, or is this your first experience?
  • What aspects of Linux are you most excited to learn?

Connect with me:

  • ๐Ÿ™ GitHub - LFCS practice scripts and resources
  • ๐Ÿ“ง Contact - Questions about LFCS preparation

This is Part 1 of 52 in the LFCS Certification - Phase 1 series. Phase 1 covers fundamental Linux system administration skills. Stay tuned for Parts 2-52!

Owais

Written by Owais

I'm an AIOps Engineer with a passion for AI, Operating Systems, Cloud, and Securityโ€”sharing insights that matter in today's tech world.

I completed the UK's Eduqual Level 6 Diploma in AIOps from Al Nafi International College, a globally recognized program that's changing careers worldwide. This diploma is:

  • โœ… Available online in 17+ languages
  • โœ… Includes free student visa guidance for Master's programs in Computer Science fields across the UK, USA, Canada, and more
  • โœ… Comes with job placement support and a 90-day success plan once you land a role
  • โœ… Offers a 1-year internship experience letter while you studyโ€”all with no hidden costs

It's not just a diplomaโ€”it's a career accelerator.

๐Ÿ‘‰ Start your journey today with a 7-day free trial

Related Articles

Continue exploring with these handpicked articles that complement what you just read

More Reading

One more article you might find interesting