You just wiped Windows off a ThinkPad
You booted the Fedora Live USB, clicked through the installer, and watched the progress bar hit one hundred percent. The system reboots. The login screen appears. You log in, but the Wi-Fi adapter vanishes after the first suspend cycle. Or the fingerprint sensor refuses to enroll. Or the trackpoint drifts when you press the middle button. The hardware is enterprise-grade. The software just needs the right configuration to talk to it.
What is actually happening under the hood
ThinkPads ship with aggressive power management, proprietary firmware blobs, and strict Secure Boot policies. Fedora uses a fully open bootloader and a strict kernel module signing policy. The Anaconda installer communicates with the hardware through udev and systemd. When the firmware expects a Windows ACPI table or a signed driver that sits outside the base kernel, the installation stalls or leaves hardware non-functional. You are not fighting a broken operating system. You are aligning an open distribution with a vendor-specific firmware stack.
The kernel loads drivers as character or block devices. udev creates the /dev nodes. systemd mounts the filesystems and starts the user session. If a driver fails to bind, the device never appears in /dev. If a firmware blob is missing, the driver loads but refuses to initialize the hardware. Fedora packages all required firmware in the linux-firmware repository. The ISO includes the most common blobs, but newer Wi-Fi cards or fingerprint sensors sometimes require a network fetch during installation. The installer will not prompt you for this. It will simply skip the hardware and move on.
The installation procedure
Start with the installation media. The dd command works, but modern Linux systems handle raw device writes more safely with explicit flush flags. A corrupted ISO causes Anaconda to fail with a checksum error on the first screen.
Here is how to write the ISO to your USB drive without corrupting the filesystem.
sudo dd if=Fedora-Workstation-Live-x86_64-43-1.5.iso of=/dev/sdX bs=4M status=progress oflag=direct conv=fdatasync
# if points to the downloaded ISO file. Change this path if yours differs.
# of points to the raw USB device, not a partition like /dev/sdX1.
# bs=4M speeds up the write by reading in four megabyte chunks.
# oflag=direct bypasses the OS cache and writes straight to the hardware.
# conv=fdatasync forces a physical flush before the command returns.
Verify the write before you reboot. Run sha256sum /dev/sdX and compare it to the official checksum. A mismatch means the USB is bad or the write was interrupted.
Next, prepare the ThinkPad firmware. Enter the BIOS by pressing F1 at boot. Disable Windows Boot Manager. Enable UEFI mode. Leave Secure Boot enabled if you want to keep the default Fedora signing policy intact. Disable it only if you plan to load unsigned kernel modules like proprietary GPU drivers or custom Wi-Fi firmware. ThinkPads also include a Config Mode toggle in the BIOS. Turn it off. It restricts USB booting on newer models.
Boot the USB. The GRUB menu appears. Select Start Fedora Workstation Live. The desktop loads. Click the Install to Hard Drive icon. Anaconda takes over.
Here is how to configure the installation destination and storage layout.
# This step happens inside the Anaconda GUI, but the underlying logic
# maps directly to the partitioning rules you will see later.
# Select I will configure partitioning to take control of the disk layout.
# Choose Standard Partition for simplicity or Btrfs for snapshot support.
# Create a /boot/efi partition formatted as FAT32, 512 MB is enough.
# Create a / partition formatted as XFS or Btrfs, assign all remaining space.
# Skip swap if you have 16 GB of RAM or more. Fedora uses zram by default.
Anaconda will warn you that the drive contains existing data. Confirm the warning. The installer will wipe the partition table and write the new layout. Click Begin Installation. Set your root password and create a user account. The installation runs in the background.
While the packages copy, configure the network. ThinkPad Wi-Fi cards often use the iwlwifi driver. The firmware lives in the linux-firmware package, which ships on the ISO. If the installer cannot see your network, plug in an Ethernet cable. The installer will pull the firmware from the network if it is missing from the ISO. Do not force a Wi-Fi connection during installation. It causes silent failures that only show up after the first reboot.
Reboot when prompted. Remove the USB drive. The system drops to the GRUB menu. Select the default entry. Fedora boots to the login screen.
Run journalctl -xe first. Read the actual error before guessing.
Verify the hardware stack
Open a terminal. Check the kernel ring buffer for hardware initialization messages.
dmesg | grep -iE "wifi|fingerprint|thinkpad|acpi"
# grep filters the massive dmesg output to only show relevant hardware lines.
# Look for iwlwifi: loaded firmware version to confirm Wi-Fi is active.
# Look for thinkpad_acpi: ThinkPad ACPI Extras for power management.
# Missing lines indicate a driver that failed to bind or a firmware mismatch.
Check the filesystem layout.
df -hT
# df shows mounted filesystems and their types.
# The root / should show xfs or btrfs depending on your choice.
# /boot/efi should show vfat and use roughly 500 MB.
# zram0 will appear if the system is using compressed RAM for swap.
Test suspend and resume. Close the lid. Wait ten seconds. Open it. The screen should wake instantly. If the system hangs on resume, the issue is usually a GPU driver or a PCIe power state mismatch. Check journalctl -xe immediately after the wake event. The x flag adds explanatory context to each log line. The e flag jumps to the end. Most sysadmins type journalctl -xeu systemd-logind muscle-memory style to isolate session issues.
Verify the fingerprint sensor.
systemctl status fprintd
# systemctl status shows recent log lines AND state in one view.
# Always check status before restart.
# If inactive, run systemctl enable --now fprintd to bind the USB interface.
# The daemon will then allow enrollment in GNOME Settings.
Check the keyboard backlight and trackpoint. ThinkPads expose these through sysfs.
cat /sys/class/leds/tpacpi::kbd_backlight/brightness
# Reading this file shows the current backlight level.
# Writing a number between 0 and 2 sets the brightness.
# The tpacpi driver handles this automatically in GNOME, but manual control works here.
Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. If you need to adjust power management or trackpoint sensitivity, create a drop-in file in /etc/udev/rules.d/ or /etc/X11/xorg.conf.d/. The package manager will overwrite /usr/lib/ on every update.
Reboot before you debug. Half the time the symptom is gone.
Common pitfalls and exact error messages
Secure Boot blocks unsigned modules. If you install a proprietary driver and the system refuses to load it, the boot process will drop to an emergency shell. The terminal prints the following:
Failed to start Load Kernel Modules.
See systemctl status systemd-modules-load.service for details.
The fix is to either sign the module with your MOK key or disable Secure Boot in the BIOS. Fedora ships with a fully signed kernel and bootloader. You do not need to disable Secure Boot for standard desktop use.
NVMe drives sometimes timeout during installation. The Anaconda installer hangs at Starting storage configuration. The journal output shows nvme0n1: I/O error or blk_update_request: I/O error, dev nvme0n1. This happens when the drive enters a low-power state that the installer does not expect. Add nvme_core.default_ps_max_latency_us=0 to the kernel command line in GRUB. Press e at the GRUB menu, append the parameter to the linux line, and press F10 to boot. The installer will proceed normally.
SELinux denials show up in journalctl -t setroubleshoot with a one-line summary. Read those before disabling SELinux. Fedora enables SELinux in enforcing mode by default. A missing context or a misconfigured port will block services silently. Run ausearch -m avc -ts recent to see the exact denial. Fix the policy with semanage or restorecon. Do not switch to permissive mode unless you are actively debugging a policy issue.
Trust the package manager. Manual file edits drift, snapshots stay.
When to choose this layout over others
Use automatic partitioning when you want a working system in ten minutes and do not care about advanced snapshot features. Use manual partitioning when you need to preserve an existing data drive or require a specific filesystem layout. Use Btrfs when you want built-in compression and the ability to roll back system changes using snapper. Use LVM when you plan to resize volumes dynamically or add physical disks later. Stay on the default XFS layout if you only deviate from the defaults occasionally.
Run dnf upgrade --refresh weekly. It pulls the latest metadata and applies security patches without crossing release boundaries. Use dnf system-upgrade only when you are ready to cross major Fedora releases. They are different commands. Do not conflate them.