Speeding Up e2fsck: Bad Blocks Testing with Lbadblocks.txt and -c

Abstract: Resolve filesystem corruption on drives with physical bad blocks by using e2fsck -c to automatically detect and mark damaged sectors.

Created: 2026-09-21 by

Use the -c flag with e2fsck to perform a read-only bad block check before running the filesystem repair. This process identifies damaged sectors and updates the bad block inode, preventing future data corruption on those specific blocks without requiring external tools or manual file management.

Understanding the -c Flag in e2fsck

The e2fsck utility is the standard tool for checking and repairing ext2, ext3, and ext4 filesystems in Linux environments. By default, it verifies the structural integrity of the filesystem metadata, such as inodes, directories, and block groups. However, it does not inherently scan the physical storage media for hardware defects unless explicitly instructed to do so. The -c option instructs e2fsck to run a bad block check using the badblocks program internally. When you append this flag to your command, the utility pauses the standard filesystem checks to first read every block on the device. It looks for unreadable sectors that indicate physical damage to the disk drive or SSD controller. If the check finds any bad blocks, it automatically adds them to the filesystem's bad block inode. This ensures that the filesystem allocator avoids writing new data to these compromised areas in the future. It is important to note that there is no double -c flag. Using --check-badblocks or multiple instances of -c is incorrect syntax and will likely result in an error from the parser. The single -c flag is the correct and only way to trigger this specific behavior within e2fsck.

Read-Only vs. Read-Write Checks

By default, the -c flag performs a read-only test. This means it attempts to read data from every block to verify if it can be retrieved correctly. A read-only test is faster than a write test because it does not alter the data on the disk. This is generally sufficient for detecting most types of physical degradation. If you suspect more severe issues or want to ensure that the drive can actually write data to those sectors, you can use the -c -c syntax? No, that is invalid. Instead, you should look at the underlying badblocks options if you need a write test. However, e2fsck itself primarily supports the read-only check via the single -c flag. For a comprehensive write test, administrators often run badblocks separately before mounting the filesystem, then pass the resulting list to e2fsck using the -l (lowercase L) flag. But for quick identification during a repair session, the single -c is the standard approach.

Step-by-Step Execution Guide

Before running any filesystem checks, you must ensure the target partition is unmounted. Running e2fsck on a mounted filesystem can lead to catastrophic data loss or inconsistent states. Always boot from a live USB or enter recovery mode if the root filesystem needs checking. Follow these steps to perform a safe bad block check:
  1. Identify the Partition: Use lsblk or df -h to determine which device corresponds to your filesystem. Ensure it is not currently mounted by checking the output of mount.
  2. Unmount the Filesystem: Execute umount /dev/sdX1 replacing /dev/sdX1 with your actual partition identifier. If the system complains about busy devices, identify the processes holding the mount open using fuser -m /dev/sdX1 and terminate them.
  3. Run the Check: Type e2fsck -c /dev/sdX1. The system will begin scanning. You may see messages indicating the progress of the bad block check. This process can take a long time depending on the size of the drive and its health.
  4. Review Results: Once complete, e2fsck will report whether any bad blocks were found. If none were found, it proceeds to the standard filesystem consistency check. If bad blocks were found, they are recorded in the bad block inode.

Performance Considerations and Alternatives

Running the bad block check significantly increases the time required for e2fsck to complete. For large hard drives, this operation can take several hours. If you are performing routine maintenance on a healthy system, you might skip this step unless you have specific reasons to believe the hardware is failing. Some users attempt to speed up this process by manually creating a file named Lbadblocks.txt and trying to feed it into e2fsck. This is a misconception. e2fsck does not accept a generic text file named Lbadblocks.txt directly. Instead, it uses the -l flag followed by the path to a file containing the list of bad blocks. For example: e2fsck -l /path/to/bad_blocks.txt /dev/sdX1. The file must contain one block number per line. If you already know the bad blocks from a previous scan, using the -l flag is much faster than re-running the physical scan with -c. This is useful when you have performed a deep scan with badblocks and saved the results, but you need to apply those findings to the filesystem structure immediately. For more information on handling low-level file operations, you might find our guide on How to Shrink Sparse Files in Linux After Copying Without the -S Operator helpful for understanding how Linux handles block allocation efficiently.

Common Pitfalls

A frequent error occurs when users try to run e2fsck -c on a filesystem that is already corrupted beyond repair. In such cases, the bad block check might fail to start, or the subsequent filesystem repair might fail to update the bad block inode due to permission errors or missing superblock structures. Always verify the superblock integrity first. Another pitfall is confusing the -c flag with other flags like -f (force) or -y (assume yes). The -c flag is strictly for bad block detection. It does not fix filesystem inconsistencies; it only prepares the filesystem to avoid bad sectors. You still need to let e2fsck proceed with its normal repair logic after the check completes. For troubleshooting connectivity issues that might arise if you are performing these checks over SSH, refer to our article on Troubleshooting kex_exchange_identification Error in Linux SSH Connection, as network drops during long-running disk checks can interrupt the process.

Frequently Asked Questions

Does the -c flag fix bad blocks?

No, the -c flag does not repair physical damage on the disk. It only detects existing bad blocks and marks them in the filesystem so that the operating system stops allocating data to those sectors. Physical repair requires replacing the faulty hardware component.

Can I use -c on a mounted filesystem?

Absolutely not. Running e2fsck with any flags, including -c, on a mounted filesystem is dangerous and can lead to data corruption. You must unmount the partition before initiating the check to ensure exclusive access to the disk blocks.

What is the difference between -c and -l?

The -c flag triggers a real-time read-only scan of the entire disk to find bad blocks. The -l flag takes a pre-existing list of bad blocks from a file and applies them to the filesystem without performing a new physical scan. Use -l if you already have the bad block list from a prior badblocks run.

How long does the -c check take?

The duration depends entirely on the size of the drive and its rotational speed or interface type. For a 1TB HDD, it can take several hours. For modern NVMe SSDs, it may be faster, but still significant. There is no way to significantly accelerate this process without skipping the check entirely.

What happens if bad blocks are found?

If bad blocks are detected, e2fsck updates the special bad block inode associated with the filesystem. This tells the ext2/ext3/ext4 driver to exclude those specific block numbers from future allocation requests. The rest of the filesystem check continues normally to fix logical inconsistencies.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More