Tools: Report: Dual-Booting Windows 11 & Rocky Linux — A Beginner's Complete Guide

Tools: Report: Dual-Booting Windows 11 & Rocky Linux — A Beginner's Complete Guide

Table of Contents

1. What Is Dual-Booting and Why Rocky Linux?

2. Key Concepts You Must Understand First

UEFI, BIOS, and Secure Boot

Partitions, File Systems, and GPT

The GRUB Bootloader

3. Before You Begin — Checklist

Check 1 — CPU Compatibility

Check 2 — Disable Windows Fast Startup

Check 3 — Free Disk Space

Check 4 — A 16 GB+ USB Drive

Check 5 — Stable Power

Phase 1 — Shrink Your Windows Partition

How Much Space to Allocate?

Phase 2 — Download & Flash Rocky Linux

Step 2.1 — Download the ISO

Step 2.2 — Verify the ISO (Don't Skip This)

Step 2.3 — Flash the USB Drive with Rufus

Phase 3 — Configure the HP BIOS

Phase 4 — Boot the Rocky Linux Installer

Phase 5 — Anaconda Installer Walkthrough

Time & Date

Software Selection

Installation Destination — Partitioning (Most Critical Step)

Partitioning Scheme: Standard vs LVM

Creating the Partitions

Review & Accept Changes

Network & Hostname

Root Account & User Creation

Begin Installation

Phase 6 — First Boot & the GRUB Menu

Phase 7 — Post-Install DevOps Setup

Step 7.1 — Full System Update

Step 7.2 — Enable EPEL Repository

Step 7.3 — Understand SELinux (Don't Disable It)

Step 7.4 — Understand firewalld

Troubleshooting Common Problems

Problem: Windows Boots Directly (No GRUB Menu)

Problem: Windows Missing from GRUB Menu

Problem: Wi-Fi Doesn't Work After Install

Problem: Can't Shrink Windows Enough (Phase 1)

Problem: "No Space Left" Errors When Installing Packages

Problem: SELinux Blocking an Application

Conclusion A step-by-step guide for beginners who want a gaming PC and a real enterprise Linux environment on the same machine — with every decision explained in plain English. Dual-booting means installing two separate operating systems on the same physical computer, each living in its own isolated section of the hard drive called a partition. When you power on your laptop, a small program called a bootloader wakes up and shows you a menu: pick Windows or pick Rocky Linux. The two systems never interfere with each other. This is different from a virtual machine, where you'd run Linux inside a window on top of Windows. Dual-booting gives each OS full, direct access to your hardware — better performance, real GPU access for your DevOps tools, and a genuine feel for what it's like to administer a server. Why Rocky Linux specifically? Rocky Linux is a free, community-maintained and designed for 1:1, bug-for-bug downstream binary compatibility with Red Hat Enterprise Linux (RHEL) — the operating system that runs a huge chunk of the world's servers, cloud infrastructure, and enterprise data centres. When companies say they want "Linux experience", they usually mean RHEL-family experience.Rocky Linux is fullRocky Linux 10.1 is fully supported until May 2035, giving you a stable, long-term learning platform. Rocky Linux will push you further: its default security model (SELinux), firewall tool (firewalld), and package manager (DNF) are all standard in enterprise environments that other linux distributions rarely appear in. Before touching a single setting, you need to understand why you're making each decision. Skipping this section is how people accidentally wipe their Windows installation. Take ten minutes to read it. What is UEFI / BIOS?

UEFI (or its older predecessor, BIOS) is firmware — a tiny program burned into a chip on your motherboard. It's the very first thing that runs when you press the power button, before any operating system loads. Its job is to inventory your hardware (CPU, RAM, drives) and then hand control to a bootloader on one of your storage devices. Your computer mostly likely uses UEFI, the modern standard. UEFI uses a special partition called the EFI System Partition (ESP) — a small FAT32 partition that stores bootloader files for every OS installed. Windows already placed its bootloader there. Rocky Linux will add its own file alongside it without deleting Windows. What is Secure Boot?Secure Boot is a UEFI feature that checks a digital signature on every bootloader before running it. It prevents malware from hijacking the boot process. However, it can also block Linux installers that aren't signed with a trusted key. Rocky Linux does have Secure Boot support, but to avoid any complications on first install, we will disable Secure Boot in the BIOS before installing. You can re-enable it afterwards once everything is working. What is a partition?Imagine your hard drive as a single large plot of land. A partition is like drawing property lines to divide it into separate sections. Each section is completely independent — one can have Windows on it, another can have Linux, and they don't mix. What is a file system?A file system is the internal structure that a partition uses to organise files. Windows uses NTFS. Rocky Linux defaults to XFS — the same file system used on most RHEL enterprise servers. What is GPT?GPT (GUID Partition Table) is the modern standard for how partition information is stored on a disk. Your computer mostly already uses GPT since it might have come with Windows 10/11 already on it. Here is what your disk will look like after the installation is complete: What is GRUB?

GRUB (Grand Unified Bootloader) is the program that Rocky Linux installs to manage booting. After installation, GRUB detects all installed operating systems and shows you a menu. When you select Windows, GRUB hands control to the Windows Boot Manager. When you select Rocky Linux, GRUB loads the Linux kernel directly. GRUB installs itself into the EFI System Partition alongside the Windows bootloader. This is why we never format the EFI partition — doing so would delete the Windows bootloader and make Windows unbootable. Work through this checklist completely before proceeding. Every item matters. Back up your Windows data first. Partitioning operations carry inherent risk. If something goes wrong mid-operation, data loss is possible. Copy your important files to an external drive, a cloud service, or both. This is non-negotiable. Rocky Linux 10 requires a CPU supporting the x86-64-v3 instruction set. Any AMD Ryzen 2000+ or Intel 8th Gen (Coffee Lake)+ processor qualifies. To confirm, open PowerShell on Windows and run: Windows Fast Startup leaves the Windows file system in a "partially mounted" state on shutdown. If Linux then tries to read the Windows partition, it can corrupt the file system. Disable it permanently: Open Disk Management (Win + X → Disk Management). You need at least 60–80 GB of free space on your C: drive to shrink comfortably. You'll be carving that space out as unallocated room for Rocky Linux. You'll flash the Rocky Linux ISO onto this drive. It will be completely erased. Don't use one with files you need. Plug your laptop in during the entire process. A laptop dying mid-partition or mid-install can corrupt both operating systems. Right now, Windows occupies the entire drive. Before we can install Rocky Linux, we need to shrink the Windows partition and leave behind unallocated space that the Rocky Linux installer will carve into its own partitions. We use Windows' own built-in tool for this — not a third-party app, not the Linux installer. This ensures Windows is aware of the change and updates its own boot records accordingly. For a DevOps workstation, 80–100 GB is the sweet spot. Docker images alone can consume 20–30 GB over time. Step 1 — Open Disk Management Press Win + X on your keyboard. In the menu that appears, click Disk Management. You'll see a graphical view of your disk with all current partitions shown as coloured bars. Step 2 — Identify Your C: Drive Partition In the graphical area at the bottom, look for the large partition labelled (C:). This is your Windows installation. Right-click it. Step 3 — Click "Shrink Volume..." A dialog box appears. Enter your desired amount in the field "Enter the amount of space to shrink in MB". Convert GB to MB by multiplying by 1024: Step 4 — Click Shrink and Wait Windows will resize the partition (typically 30 seconds to 2 minutes). When done, you'll see a new block of black/dark unallocated space in the disk map. Do not create a new volume in that space — leave it as "Unallocated". The Rocky Linux installer will handle it. If Windows won't let you shrink enough: This happens when Windows has "immovable" system files near the end of the partition. Fix: disable hibernation by opening an Administrator Command Prompt and running powercfg /h off, then try shrinking again. An ISO file is a complete, exact copy of the entire Rocky Linux installer. Go to: Under Rocky Linux 10, select the x86_64 architecture and download the DVD ISO (~10 GB). Also download the accompanying CHECKSUM file from the same page. Verifying the checksum confirms the file downloaded completely and without corruption. A partially downloaded or tampered ISO can cause strange installer errors that are very hard to diagnose. Open PowerShell and run (adjust the filename to yours): The 64-character hash must exactly match the SHA256 value in the CHECKSUM file. If they differ — even by one character — delete the ISO and re-download it. Download Rufus from https://rufus.ie. Plug in your 16 GB+ USB drive and open Rufus. Configure it as follows: Click START. If a dialog appears, choose "Write in ISO Image mode" and click OK. The USB drive will be completely wiped. All data on the USB will be gone after this step. The flashing process takes 5–15 minutes. When Rufus shows READY in green, the USB is ready. The BIOS needs to be told two things: disable Secure Boot and boot from the USB instead of the hard drive. Step 1 — Enter the BIOS Setup Fully shut down your laptop (not restart — shut down). Plug in the Rocky Linux USB. Power on and immediately, repeatedly tap F10 until you see the BIOS setup screen. Alternative: power on → tap Esc → HP startup menu → press F10 to enter Setup. Step 2 — Disable Secure Boot Navigate to the Security tab. Find Secure Boot and set it to Disabled. You can re-enable it after installation. Step 3 — Confirm UEFI Boot Mode Under Advanced or Boot Options, verify UEFI Boot Mode is selected. Ensure CSM / Legacy Boot is disabled. Step 4 — Set USB as First Boot Device Go to Boot Order. Move the USB storage device to the top of the list using the function keys shown on screen (usually F5/F6 or +/-). Step 5 — Save and Exit Press F10 to save changes and exit. The laptop will reboot and boot from your Rocky Linux USB. Alternative: One-time boot menu. Power on and press F9 immediately to choose a boot device for that startup only, without permanently changing the boot order. With the BIOS configured, your laptop will boot into the Rocky Linux installer. You'll see a dark GRUB menu. Use the arrow keys to highlight "Install Rocky Linux" and press Enter. The screen may go black for 30–60 seconds after you press Enter. The Linux kernel is loading and initializing your hardware. Do not panic and do not press any keys. Wait for the graphical installer (Anaconda) to appear. Select English (United States) and click Continue. Anaconda uses a hub-and-spoke model: one main summary screen with several sections listed. Complete them in any order. The "Begin Installation" button activates only once every required section has a green checkmark. Click Time & Date. Click your region on the world map. Enable Network Time if connected to Wi-Fi. Click Done. Recommended for a DevOps workstation: Choose "Workstation" for the full GNOME desktop. For a leaner, server-like experience, choose "Server with GUI" instead. Under Additional Software, also check: This is the most important step in the entire guide. Read every instruction carefully before clicking anything. An incorrect choice here can erase your Windows installation. There is no undo button once you accept changes. Click Installation Destination. Select your internal drive. Under Storage Configuration, select Custom. Click Done to enter the manual partitioning screen. What is LVM? LVM adds an abstraction layer between physical partitions and what the OS sees as drives. Instead of a fixed partition of exactly 40 GB, you have a "logical volume" that can be grown or shrunk while the system is running. In enterprise environments you'll constantly encounter LVM-managed disks. Choose LVM. Use the + button to add each partition in this order: Never format the EFI partition. It contains the Windows Boot Manager. Formatting it will make Windows unbootable. Set the mount point to /boot/efi and ensure the format checkbox is unchecked. Partition 1 — Reuse the EFI Partition Click on the existing EFI System Partition in the left panel, then in the right panel: Why ext4 for /boot? GRUB reads /boot at a very early stage when LVM may not yet be available. ext4 is simple, widely supported, and reliable in this context. What is swap? When physical RAM fills up, Linux moves less-used data to the swap partition. It's also required for hibernation. Partition 4 — / (Root) Why XFS? XFS is the default file system for RHEL 7+ and Rocky Linux. It excels at large files, high I/O workloads, and parallel access — all common in server environments. Why a separate /home? If you ever reinstall Rocky Linux, your user data, configurations, and project files survive untouched. Simply reinstall, mount /home without formatting it, and pick up where you left off. Click Done. In the "Summary of Changes" dialog, verify: If everything looks correct, click "Accept Changes". Connect to Wi-Fi. Set your hostname. Click Apply then Done. What is the root account? In Linux, root is the superuser with unlimited power over the entire system. In Rocky Linux, the root account is disabled by default — a deliberate security choice that mirrors how enterprise RHEL systems are configured. Instead, you create a regular admin user that uses sudo to gain root-level privileges when needed. Click "Begin Installation". The installer will format partitions, install the OS and all selected packages, and configure GRUB. This takes 15–45 minutes. When finished, click "Reboot System" and remove the USB. After the reboot, you'll see the GRUB boot menu with two entries: By default, GRUB auto-selects Rocky Linux after a 5-second countdown. Select Rocky Linux and let it boot to the GNOME login screen. If GRUB doesn't appear and Windows boots directly: The HP BIOS is still prioritising the Windows Boot Manager over GRUB. Enter BIOS (F10 on startup) and move "Rocky Linux" or "GRUB" above "Windows Boot Manager" in the boot order. See the Troubleshooting section for a permanent fix. Open the Terminal application (Ctrl + Alt + T) and run the following in order. dnf is Rocky Linux's package manager: EPEL (Extra Packages for Enterprise Linux) provides thousands of additional packages not in the base RHEL repos — like a major PPA trusted across the enterprise Linux world. Do not disable SELinux. The most common beginner advice online is to set SELinux to permissive or disabled. This destroys the entire point of using a RHEL-based system. Every enterprise RHEL deployment runs SELinux in enforcing mode. Learning to work with it — not around it — is a core career skill. Rocky Linux uses firewalld instead of Ubuntu's ufw. Same concept, different syntax: The HP BIOS is loading the Windows Boot Manager before GRUB. Open Command Prompt as Administrator on Windows and run: Alternatively, boot from the Rocky Linux USB → Troubleshooting → Rescue, then run: GRUB didn't detect Windows. Install os-prober and regenerate the GRUB config: Identify your network card first: For Intel cards, check: Disable hibernation and the pagefile temporarily. Run in Administrator Command Prompt on Windows: Then retry Disk Management → Shrink Volume. Your root partition (/) is full. Check usage: If you used LVM, you can extend the root logical volume using space from another volume — one of the main advantages of LVM over standard partitioning. Don't disable SELinux — diagnose it: Congratulations, you have now completely dual-booted Windows 11 & Rocky Linux on the same physical hardware! Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Code Block

Copy

[ EFI ][ Windows (C:) — ~400 GB ][ /boot ][ swap ][ / root ][ /home ] [ EFI ][ Windows (C:) — ~400 GB ][ /boot ][ swap ][ / root ][ /home ] [ EFI ][ Windows (C:) — ~400 GB ][ /boot ][ swap ][ / root ][ /home ] wmic cpu get name wmic cpu get name wmic cpu get name https://rockylinux.org/download https://rockylinux.org/download https://rockylinux.org/download Get-FileHash "$env:USERPROFILE\Downloads\Rocky-10.1-x86_64-dvd1.iso" -Algorithm SHA256 Get-FileHash "$env:USERPROFILE\Downloads\Rocky-10.1-x86_64-dvd1.iso" -Algorithm SHA256 Get-FileHash "$env:USERPROFILE\Downloads\Rocky-10.1-x86_64-dvd1.iso" -Algorithm SHA256 sudo dnf -y upgrade sudo dnf -y upgrade sudo dnf -y upgrade sudo dnf install -y epel-release sudo dnf upgrade -y sudo dnf install -y epel-release sudo dnf upgrade -y sudo dnf install -y epel-release sudo dnf upgrade -y sestatus # view current SELinux status getenforce # should say "Enforcing" sudo ausearch -m avc -ts recent # view recent SELinux denials sudo sealert -a /var/log/audit/audit.log # human-readable SELinux explanations sestatus # view current SELinux status getenforce # should say "Enforcing" sudo ausearch -m avc -ts recent # view recent SELinux denials sudo sealert -a /var/log/audit/audit.log # human-readable SELinux explanations sestatus # view current SELinux status getenforce # should say "Enforcing" sudo ausearch -m avc -ts recent # view recent SELinux denials sudo sealert -a /var/log/audit/audit.log # human-readable SELinux explanations sudo firewall-cmd --state # check it's running sudo firewall-cmd --list-all # see current rules sudo firewall-cmd --permanent --add-service=http # allow HTTP traffic sudo firewall-cmd --reload # apply changes sudo firewall-cmd --state # check it's running sudo firewall-cmd --list-all # see current rules sudo firewall-cmd --permanent --add-service=http # allow HTTP traffic sudo firewall-cmd --reload # apply changes sudo firewall-cmd --state # check it's running sudo firewall-cmd --list-all # see current rules sudo firewall-cmd --permanent --add-service=http # allow HTTP traffic sudo firewall-cmd --reload # apply changes bcdedit /set {bootmgr} path \EFI\rocky\grubx64.efi bcdedit /set {bootmgr} path \EFI\rocky\grubx64.efi bcdedit /set {bootmgr} path \EFI\rocky\grubx64.efi grub2-install /dev/nvme0n1 # for NVMe drives grub2-mkconfig -o /boot/grub2/grub.cfg grub2-install /dev/nvme0n1 # for NVMe drives grub2-mkconfig -o /boot/grub2/grub.cfg grub2-install /dev/nvme0n1 # for NVMe drives grub2-mkconfig -o /boot/grub2/grub.cfg sudo dnf install -y os-prober sudo os-prober # should output a line mentioning Windows sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot sudo dnf install -y os-prober sudo os-prober # should output a line mentioning Windows sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot sudo dnf install -y os-prober sudo os-prober # should output a line mentioning Windows sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot lspci | grep -i network lspci | grep -i wireless lspci | grep -i network lspci | grep -i wireless lspci | grep -i network lspci | grep -i wireless sudo dnf install -y linux-firmware sudo reboot sudo dnf install -y linux-firmware sudo reboot sudo dnf install -y linux-firmware sudo reboot sudo nmcli device status # list all network devices sudo nmcli radio wifi on # ensure Wi-Fi radio is enabled sudo nmcli device status # list all network devices sudo nmcli radio wifi on # ensure Wi-Fi radio is enabled sudo nmcli device status # list all network devices sudo nmcli radio wifi on # ensure Wi-Fi radio is enabled powercfg /h off powercfg /h off powercfg /h off df -h # shows partition sizes and usage du -sh /* # shows what's consuming space in root df -h # shows partition sizes and usage du -sh /* # shows what's consuming space in root df -h # shows partition sizes and usage du -sh /* # shows what's consuming space in root sudo ausearch -m avc -ts recent | audit2why # explains the denial in plain English sudo ausearch -m avc -ts recent | audit2allow -M myfix # generates a policy fix sudo semodule -i myfix.pp # applies the fix sudo ausearch -m avc -ts recent | audit2why # explains the denial in plain English sudo ausearch -m avc -ts recent | audit2allow -M myfix # generates a policy fix sudo semodule -i myfix.pp # applies the fix sudo ausearch -m avc -ts recent | audit2why # explains the denial in plain English sudo ausearch -m avc -ts recent | audit2allow -M myfix # generates a policy fix sudo semodule -i myfix.pp # applies the fix - What Is Dual-Booting and Why Rocky Linux? - Key Concepts You Must Understand First UEFI, BIOS, and Secure Boot Partitions, File Systems, and GPT The GRUB Bootloader - UEFI, BIOS, and Secure Boot - Partitions, File Systems, and GPT - The GRUB Bootloader - Before You Begin — Checklist - Phase 1 — Shrink Your Windows Partition - Phase 2 — Download & Flash Rocky Linux - Phase 3 — Configure the HP BIOS - Phase 4 — Boot the Rocky Linux Installer - Phase 5 — Anaconda Installer Walkthrough - Phase 6 — First Boot & the GRUB Menu - Phase 7 — Post-Install DevOps Setup - Troubleshooting Common Problems - UEFI, BIOS, and Secure Boot - Partitions, File Systems, and GPT - The GRUB Bootloader - Press Win + S, search for Control Panel, open it - Go to Hardware and Sound → Power Options - Click "Choose what the power buttons do" in the left sidebar - Click "Change settings that are currently unavailable" - Under "Shutdown settings", uncheck "Turn on fast startup" - Click Save changes - 80 GB → enter 81920 - 100 GB → enter 102400 - 120 GB → enter 122880 - Development Tools — gcc, make, git, and other build essentials - System Tools — useful system administration utilities - Headless Management — includes the SSH server for remote access - Container Management — Podman and container tools (RHEL's Docker equivalent) - Mount Point: /boot/efi - File System: FAT32 - Ensure "Do not format" is selected - Mount point: /boot - Desired capacity: 1 GiB - File system: ext4 - Mount point: swap - Desired capacity: same as your RAM (e.g., 16 GiB for 16 GB of RAM) - File system: swap - Mount point: / - Desired capacity: 50 GiB - File system: xfs - Mount point: /home - Desired capacity: leave blank (uses all remaining unallocated space) - File system: xfs - The EFI partition is listed as "mount only" (not format) - /boot, swap, /, and /home are listed as "format and mount" - Your Windows C: partition does not appear in this list at all - Root Account: Leave it disabled (the default). - User Creation: Set a full name, a short lowercase username , and a strong password. Check "Make this user administrator" — this adds your user to the wheel group, granting sudo access. - Rocky Linux (and older kernel entries) - Windows Boot Manager