The boot screen stops at the GRUB menu
You downloaded the Fedora Workstation ISO, flashed it to a USB stick, and rebooted. The screen flashes a spinning wheel, then drops you into a black terminal with a dracut:/# prompt. Or maybe the installer loads but refuses to detect your Wi-Fi card. You are not stuck. The installer is waiting for a missing kernel module or a corrupted checksum. Fix the media, adjust the boot parameters, and the guided setup will finish without manual intervention.
What the installer is actually doing
Fedora uses Anaconda as its installer. Think of Anaconda as a staging crew. It does not just copy files from a USB drive to a hard disk. It partitions the storage, formats filesystems, drops the bootloader into the EFI partition or MBR, and runs a first-boot configuration script. The process separates the network stage from the storage stage so you can configure Wi-Fi before the heavy disk writes begin. If the USB image is bad, the staging crew never shows up. If the disk has leftover Windows partitions, Anaconda will ask for explicit confirmation before wiping them. Trust the prompts. They exist to prevent accidental data loss.
The installer also handles package selection in the background. When you choose a software environment, Anaconda resolves the dependency tree and queues the RPM transactions. It writes the disk layout, applies the packages, configures the bootloader, and runs a post-installation script that sets up your user account and network manager. The whole process is designed to be idempotent and reversible until you click the final reboot button.
Preparing the installation media
A corrupted ISO is the most common cause of installer failures. Fedora publishes SHA-256 checksums alongside every release. Verify the file before you write it to USB. This step takes thirty seconds and saves you an hour of debugging.
Here is how to verify the ISO checksum matches the official release signature.
# Download the official checksum file from getfedora.org
curl -O https://fedoraproject.org/static/SHA256SUMS
# Extract the hash for your specific ISO and compare it
sha256sum --ignore-missing -c SHA256SUMS fedora-workstation-live-x86_64-41-1.5.iso
# The output will print OK if the file matches exactly
# A mismatch means the download was interrupted or corrupted
Once the checksum passes, write the image to your USB drive. The dd command works reliably across all Linux distributions. Always specify the block size to speed up the transfer.
Here is how to flash the ISO to a USB device without overwriting your system drive.
# List block devices to identify your USB stick
lsblk -f
# Look for the device that matches your USB capacity
# Note the exact path, usually /dev/sdb or /dev/mmcblk1
# Write the ISO to the USB device
sudo dd if=fedora-workstation-live-x86_64-41-1.5.iso of=/dev/sdX bs=4M status=progress oflag=sync
# bs=4M increases throughput by reducing system call overhead
# oflag=sync forces a physical flush before dd reports completion
# Replace /dev/sdX with your actual USB device path
Fedora ISOs are hybrid images. They contain a valid partition table and a bootable filesystem. You can also use cp instead of dd on modern kernels, but dd remains the standard for live media. Eject the drive safely before plugging it into the target machine.
Running the Anaconda installer
Boot the target machine from the USB drive. The GRUB menu will appear within seconds. Select "Install to Hard Drive" and press Enter. The system will load the live environment, initialize the hardware, and launch the Anaconda GUI.
The installer splits into two distinct phases. The first phase is configuration. You select your language, keyboard layout, and network connection. If you are on Wi-Fi, click the network icon in the top right corner. Enter your credentials and wait for the green checkmark. Anaconda needs network access to fetch updates and verify package signatures during the write phase.
The second phase is storage configuration. Click "Installation Destination" and select your target disk. You have two choices. Automatic partitioning uses LVM on top of Btrfs for the root filesystem. It creates a separate EFI partition, a swap partition, and a Btrfs subvolume for /home. Custom partitioning lets you define mount points, filesystem types, and encryption manually. Most desktop users should stick with automatic. It handles alignment, journaling, and snapshot support out of the box.
Click "Begin Installation". The progress bar will move slowly while Anaconda writes the disk layout and installs packages. During this time, you must set the root password and create a standard user account. The root password is rarely used on modern Fedora systems. Set it to something strong and move on. The standard user account gets sudo privileges by default. This follows the principle of least privilege. You run administrative commands with sudo, not as root.
When the installation finishes, click "Reboot". Remove the USB drive when prompted. The system will boot into GRUB, load the kernel, and drop you at the login screen.
Verifying the fresh install
Do not assume the installation is complete just because you see a desktop. Run a few verification commands to confirm the disk layout, network state, and package manager health.
Here is how to confirm the filesystem layout matches your expectations.
# Display block devices and their mount points
lsblk -f
# Verify /boot/efi is formatted as vfat
# Verify / is formatted as btrfs or xfs
# Verify swap is active and correctly sized
# Check the default systemd target
systemctl get-default
# Should return graphical.target for Workstation
# Returns multi-user.target for Server variants
Fedora ships with dnf as the default package manager. Run a full system refresh to pull the latest repository metadata and apply any post-release patches.
Here is how to update the package cache and apply pending security fixes.
# Refresh repository metadata and upgrade all packages
sudo dnf upgrade --refresh
# --refresh forces dnf to ignore cached metadata
# This ensures you get the latest package versions
# Accept the transaction when prompted with y
# Verify the kernel version matches the release
uname -r
# The output should match the Fedora version you installed
# Example: 6.8.9-200.fc40.x86_64
Run journalctl -xe to review the boot logs. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu <unit> muscle-memory style. Scan for red [FAILED] lines. If you see clean green checkmarks and no critical errors, the system is healthy.
Common pitfalls and what the error looks like
The dracut:/# emergency shell appears when the initramfs cannot find the root filesystem. This usually means the USB image is corrupted, the disk UUID changed, or a required kernel module is missing. The terminal will print Warning: /dev/root does not exist followed by Entering emergency mode. Verify your ISO checksum and reflash the USB. If you are installing on a machine with a proprietary GPU, add rd.driver.blacklist=nouveau to the kernel parameters at the GRUB menu. Press e to edit, append the flag to the linux line, and press Ctrl+X to boot.
Secure Boot blocks unsigned kernel modules. If you see [FAILED] Failed to start Load Kernel Modules during boot, your hardware requires a driver that Fedora does not sign by default. You can either enroll the MOK (Machine Owner Key) during boot or disable Secure Boot in the UEFI firmware. Disabling Secure Boot is the fastest path for desktop users. Re-enable it later if your workflow requires it.
Wi-Fi not showing up in the installer is a known issue with certain Broadcom and Realtek chips. The installer runs in a minimal environment and does not load all firmware by default. Boot the live USB without installing first. Open a terminal and run sudo dnf install kmod-wl or the appropriate firmware package. Reboot into the live session, then launch the installer. The network will appear.
Trust the package manager. Manual file edits drift, snapshots stay.
Choosing your installation variant
Fedora ships multiple images tailored to different workflows. Pick the one that matches your hardware and goals.
Use Workstation when you need a complete desktop environment with GNOME, development tools, and multimedia codecs preconfigured. Use Server when you are running headless services, databases, or container orchestration without a graphical interface. Use Silverblue when you want a known-good base image you can always roll back to using rpm-ostree. Use KDE Plasma when you prefer a highly customizable desktop with traditional window management. Use XFCE when you are running older hardware or need a lightweight session that consumes minimal RAM. Stay on the upstream Workstation if you only deviate from the defaults occasionally.