block device read retry limit exceeded

Fix: Block Device Read Retry Limit Exceeded Error on Hard Drives

This error means your hard drive tried to read a sector many times and gave up. I'll show you the three most common causes and how to fix each one fast.

Cause #1: Bad Sectors on the Drive (Most Common Fix)

I know this error is infuriating. It usually means your hard drive found a bad sector and tried reading it over and over until it gave up. On Linux, you'll see something like buffer I/O error on device sda, logical block 123456 in dmesg. This tripped me up the first time too — I thought the whole drive was dead. But most times, it's just a few bad sectors.

The Fix: Isolate Bad Sectors with badblocks and Mark Them

First, check if the drive is still usable. Run this from a live USB (don't run it on your mounted system drive):

sudo badblocks -sv /dev/sda > badsectors.txt

This scans the whole drive (/dev/sda — replace with your actual device). The -s shows progress, -v gives details. It takes hours on big drives. If it finds bad sectors, you have two paths:

  • If the bad sectors are few (under 100): Use ddrescue to copy data off first, then zero out those sectors so the drive firmware remaps them. For example:
    sudo ddrescue -d /dev/sda /dev/null logfile.log
    sudo hdparm --write-sector 123456 /dev/sda
    (replace 123456 with the actual bad block number).
  • If the bad sectors are many (hundreds or more): The drive is failing. Back up everything now. Use ddrescue to copy what you can:
    sudo ddrescue -d -r3 /dev/sda /mnt/backup/image.img rescue.log
    The -r3 retries three times before skipping.

After you get your data, check the SMART values. High Reallocated_Sector_Ct (above 10) means the drive is dying. Replace it.

Cause #2: Loose or Failing Cable Connection

This one fooled me for a week once. The error shows up randomly, not always at the same block. You'll see the retry limit error but with different block numbers each time. It's the cable, not the disk.

The Fix: Reseat or Replace the Cable

  1. Shut down the PC. Open the case. Unplug both ends of the SATA cable (or SAS cable for server drives).
  2. Blow out dust from the connectors. Use compressed air if you have it.
  3. Plug everything back in tight. SATA cables should click. If the connectors feel loose, replace the cable. I only use cables with metal latches now — the plastic ones wear out.
  4. Boot up and run dmesg | grep -i 'error'. If the errors stop, it was the cable. Simple fix.
Pro tip: If you're using a cheap SATA cable that's longer than 18 inches, swap it for a shorter one. Long cables pick up noise and cause read errors.

Cause #3: Power Supply or Controller Issues

Less common, but I've seen it on older motherboards (pre-2018) and cheap power supplies. The error looks like the first one but happens under load — like when you're copying files or running a backup. The drive motor can't spin steady because the voltage drops.

The Fix: Check Voltage and Try a Different Port

First, try plugging the drive into a different SATA port on the motherboard. If you're using a PCIe SATA controller card, try a motherboard port instead. Then check the power supply:

  • Use a different power cable from the PSU. Don't use daisy-chain cables for high-power drives (like 7200 RPM or enterprise drives). Use a dedicated cable from the PSU.
  • If you have a multimeter, check the +12V and +5V rails when the drive is reading. The 12V should be between 11.4V and 12.6V. If it drops below 11.4V under load, your PSU is weak or failing.

On server hardware, I've seen this with backplane power connectors that corrode slightly. Reseating the drive in a different slot fixes it.

Quick-Reference Summary Table

CauseSignsFixTime
Bad sectorsSame block number in errors, high SMART reallocated countUse ddrescue, zero bad blocks, replace drive if manyHours (scan) + 30 min fix
Loose cableRandom block numbers in errors, error with different blocks each bootReseat or replace SATA cable, use metal-latched cables10 minutes
Power/controllerErrors under load, different blocks, voltage drops under 11.4VTry different SATA port and power cable, check PSU voltage30 minutes

If none of these work, the drive is probably gone. I've had exactly two cases where a firmware update fixed this on old Seagate drives (ST3000DM001 models). But those are exceptions. Nine times out of ten, it's bad sectors, a loose cable, or a weak power supply. Start with cause #1 — it's the most common by far.

Related Errors in Hardware – Hard Drives
0XC00D11CF Fix 0XC00D11CF: Windows Media Player CD Drive in Use Error 0X80030070 STG_E_MEDIUMFULL (0X80030070) – Disk Space Error Fix 0XC00D0FA0 NS_E_NO_CD (0XC00D0FA0): Drive Empty? Try This ZFS Pool Degraded: Missing Device Fix (3 Steps)

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.