Home Systems

Understanding PC Boot & Startup Processes: diagnostic map

A PC boots by a short chain of handoffs: firmware and power initialize hardware, firmware launches a bootloader, the bootloader loads the kernel and initramfs, and the kernel starts userspace. This article maps each stage to failure signatures, checks to run, and safe fixes.

14 min read
Photo of a desktop PC tower with the side panel removed, showing the motherboard, CPU cooler, RAM sticks, and power supply inside.

A PC boots by a short chain of handoffs: power and firmware run hardware checks and initialize devices, the firmware locates and launches a bootloader, the bootloader loads the OS kernel and initramfs, and the kernel starts userspace and the login session. This article explains those stages, the hardware and firmware that participate, common failure signatures at each stage, and the specific checks and commands you can run on Windows and Linux to pinpoint and fix problems safely. Say you want to know why your machine stops before the desktop — follow the 30‑second test below to locate the failing stage and then use the stage-specific checks and fixes that follow.

Quick check: where is the boot failing (30‑second test)

Follow this short sequence and note the first place you do not get normal output — that tells you which stage to focus on.

  1. Power on: check that fans spin and LEDs light. If nothing runs, check the AC outlet, power cable, and PSU switch, and try a different known-good cable or outlet.
  1. POST/beeps/firmware screen: watch for a manufacturer logo, POST codes, or beep patterns and whether you can press the firmware key (Del/F2 or vendor key). If you can’t enter firmware or you get beep codes and no display, the issue is at power/POST/firmware.
  1. Firmware boot order menu: try entering UEFI/BIOS and confirm drives and NVMe/SATA devices are listed. If drives are missing or settings reset, it’s a firmware/drive-level problem.
  1. Bootloader menu: look for GRUB, systemd-boot, or Windows Boot Manager. If the system stops between firmware and the OS selector, the bootloader or EFI entries are the likely cause.
  1. Kernel messages: if you see a kernel splash, slow scrolling text, kernel panic, or an initramfs/busybox prompt, the kernel/initramfs stage is failing.
  1. Login/desktop: if the kernel boots but the graphical login, services, or session hang, you’re in userspace.

Immediate actions: take a phone photo of any firmware screen or error, try booting a known-good bootable USB to separate firmware/drive/OS faults, and note any beep codes or repeated LED blink patterns. Those observations guide the stage-specific checks below.

Stage map: what each boot stage does, visible signs and one-minute checks

Power / firmware / POST — role: verify power rails, CPU, memory, chipset and initialize controllers, then present the firmware UI (UEFI or legacy BIOS). Hardware/firmware involved: power supply, motherboard, firmware chip, RAM, CPU, GPU, storage controller.

Failure signs: no fans or LEDs, repeated beep codes, blank screen, inability to enter firmware.

One-minute check: reseat RAM and GPU if user-serviceable, swap the power cable, and photograph any POST code LEDs.

Firmware handoff / boot device selection — role: firmware reads NVRAM boot entries or MBR, locates bootloader code (EFI .efi files on the ESP or MBR boot sector) and transfers control. Involved: firmware, NVRAM, EFI System Partition (ESP) on GPT disks or MBR on legacy disks.

Failure signs: “No bootable device”, firmware drops to an EFI shell, missing drives in the firmware menu.

One-minute check: enter firmware, inspect boot order and device visibility, and try manually selecting a USB or EFI entry.

Bootloader — role: present a menu (GRUB, systemd-boot, Windows Boot Manager) and load the kernel and initramfs, or hand off to Windows Boot Manager which then loads the Windows kernel.

Failure signs: GRUB rescue prompt, bootloader errors, missing or corrupt EFI files, Windows recovery loop.

One-minute check: boot a rescue USB and list the ESP contents to confirm boot files exist. On a Linux live USB run:

Linux shell
ls /boot/efi/EFI

Kernel / initramfs — role: kernel initializes drivers, mounts the root filesystem (often via initramfs/initrd), and starts init (systemd, SysV init). Failures here include kernel panics, an initramfs/busybox shell, or I/O errors while mounting root.

Failure signs: kernel panic messages, stuck at "starting init" or being dropped to an initramfs shell.

One-minute check: interrupt the bootloader to add single or systemd.unit=rescue.target to the kernel command line, or boot a live USB and run dmesg to look for device and I/O errors.

Userspace / login — role: start system services, display manager, and user session. Failures include display manager crashes, services that fail to start, or extremely slow logins.

Failure signs: blank or frozen login screen, services stuck in failed state, desktop environment not loading.

One-minute check: on Linux switch to a TTY and run systemctl status for the display manager; on Windows try Ctrl+Alt+Del and Task Manager or boot into Safe Mode.

Examples — labeled diagnostic example:

Say you power on and fans spin but the machine shows "No bootable device". That points to firmware not finding a bootloader or a missing EFI entry (firmware handoff / boot device selection). A quick test is to enter UEFI, check the ESP for EFI files, and boot a USB to confirm the OS drive is readable.

Practical fixes by stage: reversible checks and commands to run

Firmware / POST fixes:

  • Reset firmware to defaults with "Load Optimized Defaults" or similar; this can clear bad settings.
  • Disable firmware fast boot options while troubleshooting so POST messages remain visible.
  • Reseat accessible components (RAM, GPU), check power connectors, and try a known-good PSU or cable if available.

Bootloader fixes (Windows):

  1. Boot a Windows recovery USB and open Command Prompt.
Command Prompt
bcdboot C:\Windows /s S: /f ALL
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

Bootloader fixes (GRUB on Linux):

  1. Boot a Linux live USB and mount the root and EFI partitions, then chroot and reinstall GRUB.
Linux shell
sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for d in /dev /dev/pts /proc /sys; do sudo mount --bind $d /mnt$d; done
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
update-grub
exit

systemd-boot notes: copy kernel and initramfs into the ESP loader entries and ensure loader/entries/*.conf points to the correct linux and initrd files. To (re)install systemd-boot:

Linux shell
sudo bootctl --path=/boot/efi install

Kernel / initramfs fixes:

  • From the bootloader, add single, init=/bin/sh, or systemd.unit=rescue.target to the kernel command line to get a shell.
  • Rebuild initramfs from a chroot if modules are missing:
Linux shell
sudo update-initramfs -u
# or for Arch-based distros
sudo mkinitcpio -P
  • If the initramfs drops to busybox with missing device errors, check that /etc/fstab uses correct UUIDs and that the initramfs includes the required storage drivers.

Userspace fixes:

  • On Linux, disable a failing service from a rescue shell:
Linux shell
sudo systemctl disable --now problematic.service
  • On Windows, boot to Safe Mode from recovery options and use Device Manager to roll back or disable drivers and check Event Viewer for service failures.

If a step is model-specific (EFI paths, vendor firmware tools), check the vendor support page before flashing firmware or overwriting firmware-managed boot entries.

Firmware deep-dive and safe configuration changes

UEFI vs legacy BIOS — practical differences:

  • UEFI uses GPT, an EFI System Partition (ESP) containing .efi files, and boot entries stored in NVRAM. Recovery typically involves working with the ESP and EFI binaries (for example bootmgfw.efi or grubx64.efi).
  • Legacy BIOS uses MBR boot code and a bootable flag on partitions; recovery relies on restoring the MBR and partition boot sector.

Why it matters for configuration and recovery:

  • A system installed in UEFI mode should be repaired using EFI tools; switching firmware to legacy/CSM can prevent the system from booting until the OS is reinstalled or conversions are performed.

Secure Boot:

  • Secure Boot enforces signed boot components. Enabling it can block unsigned kernels or custom bootloaders unless you use a signed shim or enroll your key (MOK) per your distribution's instructions.

Safe steps to change Secure Boot or CSM settings:

  1. Photograph current firmware settings.
  2. Create and verify a recovery USB that can boot on the machine.
  3. If enabling Secure Boot, confirm your OS vendor supplies signed boot components or follow distro docs for shim/MOK enrollment.
  4. Avoid enabling CSM/legacy unless you must boot legacy MBR media.

Updating firmware:

  • Check vendor release notes and the vendor site for the correct firmware image and instructions before updating. Keep the machine on AC power and avoid interrupting firmware updates.

How to inspect boot sequence and logs on Windows and Linux

Linux — useful commands and what to look for:

  • dmesg — shows kernel messages from early boot. Look for storage controller errors, driver failures, or repeated I/O errors.
Linux shell
dmesg | less
  • journalctl -b — shows the systemd journal for the current boot. Look for service failures and kernel oops/panic messages.
Linux shell
journalctl -b | less
  • systemd-analyze blame and systemd-analyze critical-chain — measure which services take the most time and the boot-critical path.
Linux shell
systemd-analyze blame
systemd-analyze critical-chain
  • Inspect the EFI partition to confirm boot files exist:
Linux shell
sudo ls /boot/efi/EFI

Windows — where to look and tools to run:

  • Event Viewer → Applications and Services Logs → Microsoft → Windows → Diagnostics-Performance → Operational: contains boot and shutdown phase timings. Look for long durations and critical errors.
  • Task Manager → Startup tab: shows enabled startup items and their impact.
  • msinfo32 → Software Environment → System Drivers to check driver load order and problem drivers.

To collect diagnostics, boot to Windows recovery media and use Command Prompt and bcdedit to inspect boot entries when the OS won’t boot.

What to look for in logs:

  • Repeated device errors, timeouts connecting to network mounts, driver load failures, or service start failures. Kernel OOPS, panics, or repeated SMART I/O errors in dmesg or Windows Event Viewer are strong signs to stop and back up data.

How bootloaders work and concise repair steps

How they work — brief:

  • Windows Boot Manager (bootmgfw.efi) is an EFI application that reads BCD (Boot Configuration Data) and starts the Windows kernel. On legacy systems, Windows uses MBR boot code that loads the Windows loader.
  • GRUB is a multistage bootloader that can present a menu and load kernels and initramfs. On EFI systems it’s installed as an .efi in the ESP and references kernels on the root filesystem.
  • systemd-boot is a simple EFI boot manager that reads loader entries from the ESP and directly boots kernels and initramfs.

Concise repair steps summary:

  • Windows EFI repair: use recovery media and the bootrec/bcdboot sequence in a Command Prompt (see Practical fixes). Ensure you identify the correct system partition letter before running commands.
  • GRUB repair: boot a Linux live USB, mount root and ESP, chroot, and run grub-install and update-grub (see Practical fixes). Confirm partition names with lsblk first.
  • systemd-boot repair: ensure your ESP contains loader/entries/*.conf pointing to the correct linux and initrd; reinstall with bootctl --path=/boot/efi install if the loader is missing.

Interpreting kernel/init errors and safe recovery steps

Common kernel/init error signatures and what they mean:

  • "kernel panic" with a backtrace: a serious crash in kernel space; can be caused by bad drivers, hardware faults, or corrupted kernel modules.
  • Busybox/initramfs prompt with messages like "unable to find root device": the kernel couldn’t locate or mount the root filesystem (wrong UUID, missing driver in initramfs, or disk failure).
  • Repeated I/O errors in dmesg: likely disk hardware problems or controller issues.

Safe recovery steps:

  1. Boot a live USB to inspect disks and copy important files off a failing drive.
  1. From the live environment, run dmesg and journalctl -k to collect kernel messages.
  1. If root cannot be found, check /etc/fstab UUIDs against blkid and rebuild initramfs from a chroot:
Linux shell
blkid
sudo mount /dev/sdXN /mnt
sudo mount /dev/sdYM /mnt/boot/efi
for d in /dev /dev/pts /proc /sys; do sudo mount --bind $d /mnt$d; done
sudo chroot /mnt
update-initramfs -u
exit
  1. For Windows, boot into Safe Mode or use recovery media to run sfc /scannow and chkdsk from a recovery command prompt if the filesystem shows errors.

Measuring and fixing slow boots

How to measure boot time and where delays occur:

Linux:

Linux shell
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain

What to look for: services with long times in systemd-analyze blame, and blockers in critical-chain such as mounts waiting for network or failing services.

Windows:

  • Check Event Viewer → Microsoft → Windows → Diagnostics-Performance → Operational for time spent in boot phases.
  • Use Task Manager → Startup to disable programs with high startup impact.

Common causes of slow boots and fixes:

  • Network mounts (NFS/SMB) configured in fstab or as services that time out — remove or mark them nofail and use systemd automounts if needed.
  • Faulty drivers or devices causing timeouts — update or disable the offending driver.
  • Many enabled startup services — disable unnecessary ones.
  • Disk issues or fragmentation on older HDDs — check SMART health using smartctl and consider replacing failing drives.

Quick fixes:

  • On Linux, mask or delay nonessential services: systemctl disable --now service or add x-systemd.requires= entries as appropriate.
  • On Windows, disable high-impact startup items in Task Manager and update drivers from the vendor site.

When to stop troubleshooting and seek replacement or professional help

Stop and get professional help or hardware replacement in these cases:

  • Repeated SMART failures, growing reallocated sector counts, or persistent I/O errors — back up immediately and replace the drive.
  • Intermittent POST failures, random reboots, or BIOS settings that reset — possible motherboard or power delivery faults; stop and consult a technician.
  • Firmware corruption you cannot repair with vendor tools, or failed firmware updates that leave the device unbootable — consult vendor RMA or professional repair.

Priorities if you see these signs:

  1. Back up or clone data right away.
  2. Avoid destructive tests that might make data recovery harder.
  3. Contact vendor support or a qualified repair service, and follow RMA guidance if the machine is under warranty.

I’ve left more invasive fixes to professionals because bad firmware flashes or component swaps can destroy data or void warranties.

Conclusion

If the failure is at power/POST, focus on power, RAM, and firmware defaults. If firmware finds the device but the bootloader or kernel fails, use a live USB to inspect the EFI partition, kernel command line, and initramfs. Measure slow boots with `systemd-analyze` or Windows Diagnostics-Performance, then target drivers, services, or disks. Always photograph firmware settings, make a tested recovery USB before changes, and stop when SMART or repeated POST errors point to imminent hardware failure. For firmware updates and model-specific procedures, check your vendor’s current documentation before acting.

Frequently Asked Questions

How can I capture a firmware or POST screen I miss during fast boot?

Take a phone photo or video immediately on power-up, or disable fast/quick boot in firmware so POST messages remain visible; some UEFI settings have a "POST messages" or "Full screen logo" toggle you can change.

If GRUB is missing after a Windows update, what’s the safest fix?

Boot a Linux live USB, mount your root and EFI partitions, chroot into the system, and reinstall GRUB with `grub-install` and `update-grub` as shown above. Keep a recovery USB and a backup copy of the EFI partition before overwriting boot entries.