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
| Feature | Linux | Windows | macOS |
|---|---|---|---|
| Source Code | Open Source (Free) | Proprietary (Closed) | Proprietary (Closed) |
| Cost | Free (most distributions) | Paid license | Free with Apple hardware |
| Customization | Extremely customizable | Limited customization | Moderate customization |
| Primary Interface | Command line + GUI | GUI + PowerShell | GUI + Terminal |
| File System | ext4, XFS, Btrfs | NTFS, FAT32 | APFS, HFS+ |
| Package Management | dnf, apt, pacman, etc. | MSI installers, winget | App Store, Homebrew |
| Security Model | Permissions, SELinux | UAC, Windows Defender | Gatekeeper, XProtect |
| Updates | User controls timing | Automatic, less control | User 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
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
| Distribution | Cost | Support | Best For |
|---|---|---|---|
| RHEL | Paid subscription | Professional 24/7 | Enterprise production |
| CentOS Stream | Free | Community | Learning, development |
| Rocky Linux | Free | Community | Production without cost |
| AlmaLinux | Free | Community | Production without cost |
| Fedora | Free | Community | Desktop, 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
| Distribution | Based On | Release Cycle | Best For |
|---|---|---|---|
| Debian | Independent | 2-3 years | Servers, stability |
| Ubuntu | Debian | 6 months (LTS: 2 years) | Beginners, desktops |
| Linux Mint | Ubuntu | Follows Ubuntu LTS | Windows converts |
| Pop!_OS | Ubuntu | Follows Ubuntu | Developers, 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
Why Use VirtualBox for LFCS Learning?
| Benefit | Why It Matters |
|---|---|
| No Risk | Break things without affecting Windows |
| Snapshots | Save state and restore anytime |
| Multiple Distros | Run CentOS and Ubuntu side-by-side |
| Easy Setup | No dual-boot, no partitioning |
| Free | Zero cost for personal use |
| Portable | Copy 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
- Open your Downloads folder
- Double-click the VirtualBox installer (
.exefile) - 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
- Visit: https://www.centos.org/download/
- Click "CentOS Stream 9"
- Select architecture: x86_64
- Choose download method:
- Direct download (HTTP) - easier for beginners
- Or Torrent - faster if you have a torrent client
- 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\
- File name:
โ ๏ธ 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
- Visit: https://ubuntu.com/download/server
- Or for Desktop: https://ubuntu.com/download/desktop
- Click "Download Ubuntu 24.04 LTS"
- 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)
- Server ISO:
- 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
- In VirtualBox, click the "New" button (blue star icon) in toolbar
- 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
- Default:
-
ISO Image: Click dropdown โ "Other"
- Navigate to:
C:\VirtualBox\ISOs\ - Select:
CentOS-Stream-9-latest-x86_64-dvd1.iso
- Navigate to:
-
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:
-
Click "System" in left menu
-
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)
- Boot Order: Ensure "Optical" is before "Hard Disk"
-
Processor tab:
- Verify CPU count (2 is good)
- โ๏ธ Enable PAE/NX if available
Display Settings:
- Click "Display" in left menu
- Screen tab:
- Video Memory: Increase to 128 MB (maximum)
- This helps with console visibility
- Graphics Controller: VMSVGA or VBoxVGA
Network Settings:
- Click "Network" in left menu
- 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):
- Click "USB" in left menu
- 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:
- With VM selected, click "Snapshots" button (top right, next to Details)
- Click "Take" snapshot button (camera icon)
- Snapshot Name: "Fresh VM - Before Installation"
- Description: "Clean VM before OS installation"
- 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
- With your VM selected in sidebar, click "Start" (green arrow button)
- A new window opens - this is your virtual machine screen
- 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:
- Rufus (Windows) - rufus.ie
- Etcher (Windows/Mac/Linux) - etcher.balena.io
- Ventoy (multi-ISO USB) - ventoy.net
Step-by-Step Installation
Step 1: Boot from Installation Media
- Boot your computer from the CentOS ISO (USB or DVD)
- You'll see the GRUB boot menu
- Select "Install CentOS Stream 9"
- Press Enter
Step 2: Language Selection
- Select your language (English recommended for LFCS)
- 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.localdomainorlfcs-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
wheelgroup for sudo)
- Username (e.g.,
Step 5: Begin Installation
- Click "Begin Installation"
- Installation takes 5-15 minutes depending on:
- Installation media speed
- Disk speed
- System specifications
- Software selection
Step 6: Complete Installation
- Click "Reboot System"
- Remove installation media
- 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:
- Click Devices โ Insert Guest Additions CD image...
- 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:
- VirtualBox menu: Devices โ Shared Clipboard โ Bidirectional
- 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
- Boot from Ubuntu ISO
- Select "Install Ubuntu Server"
- 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:
- Try or Install Ubuntu: Choose "Install Ubuntu"
- Keyboard Layout: Select your keyboard
- 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)
- Installation Type:
- Erase disk and install Ubuntu (easiest)
- Or manual partitioning
- Where are you?: Select timezone
- Who are you?:
- Your name
- Computer name
- Username and password
- Installation proceeds automatically
- 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
| Feature | WSL 1 | WSL 2 |
|---|---|---|
| Linux Kernel | Translation layer | Real Linux kernel |
| Performance | Good for files on Windows | Much faster overall |
| File System | Fast Windows access | Slow Windows access |
| Compatibility | Some limitations | Full 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+)
- Open PowerShell or Windows Terminal as Administrator
- Run:
wsl --install
This automatically:
- Enables WSL feature
- Installs WSL 2
- Installs Ubuntu (default distribution)
- Configures everything
-
Restart your computer
-
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
- Open Microsoft Store
- Search for "Ubuntu" or "Debian" or "CentOS"
- 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
- Launch Ubuntu from Start Menu
- Wait for setup to complete
- Create username and password
- You're in Linux on Windows!
Using WSL
Launching WSL:
- Click Ubuntu icon in Start Menu
- Or type
wslin PowerShell/Command Prompt - Or type
ubuntuin 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
- Keep files in Linux filesystem: Much faster than
/mnt/c/ - Use Windows Terminal: Better than default console
- Update regularly:
sudo apt update && sudo apt upgrade -y
- Install essential tools:
sudo apt install -y build-essential vim git curl wget
Choosing the Right Distribution for LFCS
โ Best Choices for LFCS Preparation
| Distribution | Why Choose It | LFCS Relevance |
|---|---|---|
| CentOS Stream 9 | Free, closely matches RHEL, stable | โญโญโญโญโญ Perfect |
| Rocky Linux 9 | Free, RHEL-compatible, stable | โญโญโญโญโญ Perfect |
| Ubuntu 24.04 LTS | Beginner-friendly, excellent docs | โญโญโญโญ Very Good |
| AlmaLinux 9 | Free, 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)
-
Install CentOS Stream 9 in VirtualBox with these specifications:
- 2 GB RAM
- 20 GB disk
- Minimal Install
- Create user account with sudo privileges
-
After installation, run these commands and document the output:
cat /etc/os-release uname -r whoami id -
Install Ubuntu 24.04 LTS Server in a separate VM
- Install with OpenSSH server enabled
- Create the same username as on CentOS
-
Compare the output of
/etc/os-releasebetween CentOS and Ubuntu -
Check which package manager each system uses:
# On CentOS which dnf # On Ubuntu which apt
Lab 2: WSL Setup (Beginner)
-
Install WSL 2 on Windows (if you have Windows)
-
Install Ubuntu 24.04 from Microsoft Store
-
After setup, run:
lsb_release -a uname -a -
Create a directory in Linux filesystem:
mkdir -p ~/lfcs-practice cd ~/lfcs-practice touch testfile.txt -
Access this directory from Windows Explorer using
\\wsl$ -
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)
-
On CentOS/Rocky Linux, update the system:
sudo dnf check-update sudo dnf update -y -
Install a package:
sudo dnf install -y htop htop # Press Q to quit -
Search for packages:
dnf search vim -
List installed packages:
dnf list installed | head -20 -
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 -
Document the differences between dnf and apt commands
Lab 4: System Information (Intermediate)
-
Check your Linux distribution family:
cat /etc/os-release | grep -i "ID_LIKE" -
Check kernel version:
uname -r uname -a -
Check system architecture:
uname -m arch -
Check how long system has been running:
uptime -
Check disk usage:
df -h -
Check memory usage:
free -h -
Check CPU information:
lscpu cat /proc/cpuinfo | grep "model name" | head -1
Lab 5: Multiple Distributions (Advanced)
-
Install THREE different distributions:
- CentOS Stream 9 (RedHat family)
- Ubuntu 24.04 LTS (Debian family)
- Fedora (optional, RedHat family)
-
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)
-
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 -
Note the different package names:
httpdvsapache2
Lab 6: Post-Installation Configuration (Advanced)
-
Set a meaningful hostname on your CentOS system:
sudo hostnamectl set-hostname lfcs-centos # Logout and login to see change in prompt -
Configure timezone:
timedatectl sudo timedatectl set-timezone America/New_York # Or your timezone timedatectl -
Create additional user accounts:
sudo useradd -m -s /bin/bash testuser1 sudo passwd testuser1 -
Add your main user to wheel group (if not already):
sudo usermod -aG wheel yourusername # On Ubuntu, use: sudo usermod -aG sudo yourusername -
Verify sudo access:
sudo whoami # Should output: root
Lab 7: Network Configuration (Advanced)
-
Find your IP address:
ip a # Note the interface name (like enp0s3 or eth0) -
Check routing table:
ip route -
Check DNS configuration:
cat /etc/resolv.conf -
Test network connectivity:
ping -c 4 google.com -
Check open ports:
sudo ss -tuln
Lab 8: Service Management (Advanced)
-
Check status of SSH service:
# CentOS sudo systemctl status sshd # Ubuntu sudo systemctl status ssh -
Enable SSH to start at boot:
sudo systemctl enable sshd # or ssh on Ubuntu -
List all running services:
systemctl list-units --type=service --state=running -
Check if firewall is running:
# CentOS (firewalld) sudo systemctl status firewalld # Ubuntu (ufw) sudo ufw status
Lab 9: Documentation Practice (Intermediate)
-
Use man pages to find information:
man dnf # or man apt on Ubuntu man useradd man 5 passwd # File format, not command -
Search for commands related to user management:
sudo mandb # Update man database man -k user | head -20 -
Use --help for quick reference:
ls --help | less mkdir --help
Lab 10: Filesystem Exploration (Beginner)
-
Explore the root filesystem:
ls -l / -
Check what's in /usr:
ls -l /usr -
Look at system configuration files:
ls -l /etc | head -20 -
Check log files location:
ls -l /var/log | head -10 -
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
- Create a backup user account
- Add to appropriate admin group
- Test sudo access
- Document all commands used
Lab 13: System Update Schedule
Research how to:
- Check for available updates without installing
- Update only security patches
- 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
- Install VirtualBox Guest Additions (or VMware Tools)
- Take a snapshot of your VM
- Make some changes (install packages, create files)
- Restore from snapshot
- Verify changes are reverted
๐ Best Practices
โ Distribution Selection
-
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
-
For Learning:
- Start with beginner-friendly: Ubuntu Desktop
- Progress to server-focused: CentOS Stream Server
- Master command-line on minimal installations
-
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
- Always use LTS versions for production and learning
- Minimal installs for servers (security and performance)
- Take snapshots before major changes
- Document your installation (settings, packages, configs)
- Enable SSH early for remote management practice
- Set strong passwords and practice good security habits
- Keep systems updated regularly
โ Multi-Distribution Setup
- Use VMs for practice: Easy to reset, experiment freely
- Consistent usernames: Use same username across systems
- Organized naming: centos-lfcs, ubuntu-lfcs, etc.
- Network considerations: Set up host-only network for VM communication
- Resource allocation: Don't over-allocate RAM to VMs
โ WSL Considerations
- File location matters: Keep work files in Linux filesystem
- Update regularly:
sudo apt update && sudo apt upgrade - Windows Terminal: Much better than default console
- Know limitations: Not suitable for all server scenarios
- Backup important work: WSL can be reset, losing data
๐จ Common Pitfalls to Avoid
โ Mistakes Beginners Make
- Choosing non-LTS Ubuntu: You'll face support issues
- Installing desktop on server: Wastes resources, adds security risks
- Ignoring updates: Security vulnerabilities accumulate
- Not taking snapshots: One wrong command can break everything
- Using root for everything: Bad security practice, develop sudo habits
- Mixing package managers: Never use both dnf and apt on same system
- Forgetting to enable services: SSH installed but not running
- Not documenting changes: You'll forget what you did
- Over-complicating: Start simple, add complexity gradually
- 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
- Linux is a kernel, distributions are complete operating systems built around it
- RedHat family (CentOS, Rocky, RHEL) uses RPM packages and dnf
- Debian family (Ubuntu, Debian) uses DEB packages and apt
- LTS versions provide 5+ years of support - always use for production
- CentOS Stream 9 or Rocky Linux 9 are ideal for LFCS preparation
- Ubuntu 24.04 LTS is excellent for beginners and alternative practice
- WSL allows running Linux on Windows, great for learning
- systemd is the init system on all modern distributions
- Minimal installs are preferred for servers and exam practice
- 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
wheelandsudogroups - 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:
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!

