How to Fix "No Disks Detected" Error During Fedora Installation

Fix the Fedora installer 'No Disks Detected' error by checking BIOS settings for AHCI mode and verifying disk detection with the lsblk command.

When the installer sees an empty machine

You boot the Fedora Live USB. The desktop loads. You click the install icon. The storage selection screen flashes for a second and drops a single line: No disks detected. You check the SATA cable. You check the NVMe slot. You check the BIOS. The drive is definitely there. The installer just refuses to acknowledge it. This happens most often on modern laptops with Intel VMD controllers or motherboards set to proprietary RAID modes. The disk is not missing. The kernel just has not been handed the right keys to talk to it.

What is actually happening under the hood

The Fedora installer, Anaconda, does not scan hardware directly. It asks the running kernel for a list of block devices. The kernel builds that list during early boot by loading storage drivers, probing the PCIe or SATA buses, and registering devices under /dev/. If the firmware presents the storage controller in a non-standard mode, the kernel's default drivers ignore it. Intel Rapid Storage Technology and VMD are the usual culprits. They wrap standard NVMe or SATA drives behind a proprietary abstraction layer. The upstream Linux kernel treats that layer as a separate controller. Without the matching driver or a firmware tweak, the kernel reports zero disks. Anaconda trusts the kernel. If the kernel says empty, Anaconda says empty.

The installer also runs in a minimal environment. It does not include every possible storage driver to keep the ISO size manageable. Newer hardware sometimes ships with controllers that only appear in kernels released after your ISO was built. You are not dealing with a broken drive. You are dealing with a missing driver or a firmware mismatch. The Linux storage stack expects raw block devices. Firmware abstraction layers break that expectation until you align them.

How to find and fix the missing disk

Drop to a terminal inside the running installer. Press Ctrl+Alt+F2. You will get a root prompt on a virtual console. The graphical installer keeps running on F1. Everything you type here runs with full root privileges.

Here is how to check whether the kernel actually sees the storage hardware.

lsblk
# Lists all block devices the kernel has registered.
# An empty output means the kernel driver never probed the controller.
# Look for sda, nvme0n1, or similar names.

If lsblk returns nothing, check the kernel ring buffer for hardware detection messages.

dmesg | grep -iE 'sd|nvme|ata|vmd|raid'
# Filters early boot logs for storage-related keywords.
# VMD or RST messages confirm a firmware abstraction is hiding the drive.
# ATA or NVMe messages show whether the kernel tried and failed.

The most common fix happens in the firmware settings. Reboot the machine and enter the BIOS or UEFI setup. Find the storage configuration menu. Look for SATA Operation, Storage Mode, or VMD Controller settings. Change the mode from RAID, Intel RST, or VMD to AHCI or NVMe. Save and exit. Boot the Fedora USB again. The installer will now see the disk on the first try.

Switching to AHCI does not break existing Windows installations if you change the setting before installing Fedora. Windows will boot in safe mode on the first startup after the change, then rebuild its storage stack. Fedora will install cleanly alongside it. Always change firmware storage modes before touching partition tables.

If you cannot change the firmware mode, or if the system requires VMD for other reasons, you can force the installer to load the missing driver. Press e at the GRUB boot menu when the Fedora USB starts. Find the line beginning with linux. Add rd.driver.pre=ivmd or rd.driver.pre=ahci to the end of that line, depending on your hardware. Press Ctrl+X to boot. The installer will load the specified module before scanning for disks.

Here is how to verify the driver loaded correctly before proceeding.

lsmod | grep -iE 'ivmd|ahci|nvme'
# Shows which kernel modules are currently active.
# A match confirms the storage driver is loaded in memory.
# No match means the rd.driver.pre flag was ignored or misspelled.

If the driver loads but lsblk still shows nothing, the firmware may be hiding the drive behind a hardware RAID array. The upstream kernel does not include proprietary RAID drivers. You will need to switch to AHCI in the firmware or use a different installation method. Run journalctl -xe first. Read the actual error before guessing.

Confirm the installer can proceed

Return to the graphical installer by pressing Ctrl+Alt+F1. Click the storage configuration button again. The disk should now appear with its capacity and model name. Select it and proceed to partitioning. If you are dual-booting, leave the existing partitions untouched and let Anaconda handle the new filesystems. The installer will create /boot, /boot/efi, and / automatically.

Run a quick check from the TTY to make sure the device node matches what the installer expects.

ls -l /dev/disk/by-id/
# Lists persistent device symlinks based on hardware serial numbers.
# These paths survive reboots and controller reordering.
# Anaconda uses them internally to avoid confusing sda with sdb.

Reboot before you debug. Half the time the symptom is gone once the kernel module loads correctly.

Common pitfalls and what the error looks like

The installer will refuse to proceed and print No disks detected when the block layer returns an empty list. Do not force the installation by editing partition tables manually. The installer needs a valid device node to write the bootloader and mount the target filesystem.

You may see VMD controller detected in dmesg output. This means Intel's Volume Management Device is active. The upstream kernel treats VMD as a separate PCIe bridge. Without the ivmd module or a firmware toggle, the NVMe drives behind it remain invisible. Switch to AHCI or add rd.driver.pre=ivmd at the GRUB prompt.

Some laptops ship with Secure Boot enabled and a custom bootloader shim. If the installer complains about missing signatures after fixing the disk issue, disable Secure Boot temporarily in the UEFI settings. Fedora ships with signed kernels and bootloaders, but third-party firmware sometimes rejects the standard shim. Re-enable Secure Boot after installation if your hardware requires it.

Another frequent trap involves USB boot order. If the machine boots from the wrong USB controller, the installer may load but fail to see internal drives due to PCIe lane sharing. Move the USB drive to a different port. Prefer USB 3.0 ports over USB 2.0 for faster storage scanning.

Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. The same discipline applies to storage configuration. Let the kernel negotiate the correct mode instead of forcing partition layouts that bypass the block layer. Trust the package manager. Manual file edits drift, snapshots stay.

When to use this approach versus alternatives

Use the TTY debugging method when the installer fails early and you need to verify kernel detection before rebooting. Use a firmware mode change to AHCI when Intel RST or VMD is hiding standard NVMe or SATA drives. Use the rd.driver.pre= GRUB parameter when you must keep VMD enabled for other operating systems or hardware features. Use a newer Fedora ISO when your storage controller requires a kernel version that your current USB image does not include. Stay on the default installer flow when the disk appears normally and you only need to adjust partition sizes.

Where to go next