Disk errors in Linux can cause serious issues such as system crashes, data corruption, and potential data loss. These errors may arise from bad sectors, physical disk failures, or filesystem inconsistencies. Repairing these errors promptly is crucial to maintaining system stability and preventing further damage.
To repair disk errors, you need to unmount the affected disk to avoid corrupting the data during the repair process. If the disk cannot be unmounted, such as when dealing with the root filesystem, use a live Linux environment like Ubuntu to perform the repairs safely.
Linux provides several command-line tools for disk repair. The fsck tool is used to detect and fix filesystem inconsistencies. The smartctl utility helps identify hardware-related issues, and badblocks can locate and handle bad sectors on the disk.
Related: How to check disk errors in Linux
Related: How to recover lost partition in Linux
Steps to repair disk errors in Linux:
- List the disks available on your system.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 513M 0 part /boot/efi └─sda3 8:3 0 19.5G 0 part /
- Unmount the disk that needs repair.
$ sudo umount /dev/sda3 [sudo] password for user:
Ensure that the disk is fully unmounted before proceeding with repairs. Replace sda3 with the correct disk identifier for your system.
- Run fsck to repair filesystem errors.
$ sudo fsck /dev/sda3 fsck from util-linux 2.36.1 e2fsck 1.45.7 (28-Jan-2021) /dev/sda3: recovering journal /dev/sda3: clean, 11/1310720 files, 126322/5242880 blocks
The fsck command will automatically repair filesystem inconsistencies. If it prompts for corrections, confirm them to proceed.
- Check the disk's S.M.A.R.T. status to diagnose any hardware issues.
$ sudo smartctl -H /dev/sda === START OF READ SMART DATA SECTION === SMART Health Status: OK
If the S.M.A.R.T. status indicates errors, consider backing up your data immediately and replacing the disk if necessary.
- Scan the disk for bad blocks and handle them using badblocks.
$ sudo badblocks -wsv /dev/sda3 Checking for bad blocks in read-write mode From block 0 to 20971519 Testing with pattern 0xaa: done Pass completed, 0 bad blocks found. (0/0/0 errors)
The badblocks command writes patterns to the disk to identify bad sectors. Any found bad blocks will be reported, and you may need to consider data recovery options if they are detected.
- Remount the disk after completing the repairs.
$ sudo mount /dev/sda3 /mnt
Always check that the disk mounts correctly after repairs and that no errors are reported.
Mohd Shakir Zakaria is an experienced cloud architect with a strong development and open-source advocacy background. He boasts multiple certifications in AWS, Red Hat, VMware, ITIL, and Linux, underscoring his expertise in cloud architecture and system administration.
Comment anonymously. Login not required.