Kernel reporting "Buffer I/O error on dev xxx"
Environment
- Red Hat Enterprise Linux 10
- Red Hat Enterprise Linux 9
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 6
- SCSI and NVMe disks
Issue
- Kernel reporting "Buffer I/O error on dev xxx".
Feb 4 11:17:56 test kernel: end_request: I/O error, dev sdc, sector 48
Feb 4 11:17:56 test kernel: Buffer I/O error on device sdc, logical block 6
Feb 4 11:17:56 test kernel: Buffer I/O error on device sdc, logical block 7
Feb 4 11:17:56 test kernel: Buffer I/O error on device sdc, logical block 8
Feb 4 11:17:56 test kernel: Buffer I/O error on device sdc, logical block 9
Feb 4 12:52:52 test kernel: Buffer I/O error on device sdc, logical block 268435440
Feb 4 12:52:52 test kernel: end_request: I/O error, dev sde, sector 0
Feb 4 12:52:52 test kernel: end_request: I/O error, dev sdc, sector 2147483640
Feb 4 12:52:52 test kernel: end_request: I/O error, dev sde, sector 0
Feb 4 12:52:53 test kernel: end_request: I/O error, dev sdc, sector 2147483640
Nov 11 19:23:49 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 3125627392
Nov 11 19:23:49 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 3125627392
Nov 11 19:23:49 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 390703424, async page read
Nov 11 19:23:49 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 3125627392
Nov 11 19:23:49 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 390703424, async page read
Nov 11 19:23:50 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 0
Nov 11 19:23:50 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 0
Nov 11 19:23:50 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 0, async page read
Nov 11 19:23:50 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 0
Nov 11 19:23:50 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 0, async page read
Nov 11 19:23:50 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 0
Nov 11 19:23:50 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 0, async page read
Nov 11 19:23:50 hostname kernel: blk_update_request: I/O error, dev nvme2n1, sector 0
Nov 11 19:23:50 hostname kernel: Buffer I/O error on dev nvme2n1, logical block 0, async page read
Resolution
-
Engage Hardware Vendor to run hardware diagnostic tools.
-
Use the disk checking tool
badblocksto scan the specified hard disk block by block. For example, to scan/dev/hdaissue the commands:# mount | grep hda # find all mounted partitions of hda # umount /dev/hda1 # unmount the partitions (may be more then one) # badblocks -n -vv /dev/hda -
Where
-nis use non-destructive read-write mode. By default only a non-destructive read-only test is done. -
If the messages similar to the examples found below appear in
/var/log/messagesor to the console following the running ofbadblocksit is recommended to backup any data on the affected devices and replace the device:Feb 4 13:50:40 test kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } Feb 4 13:50:40 test kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367232 Feb 4 13:50:40 test kernel: ide: failed opcode was: unknown Feb 4 13:50:40 test kernel: end_request: I/O error, dev hda, sector 74367232 Feb 4 13:50:42 test kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } Feb 4 13:50:42 test kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367240 Feb 4 13:50:42 test kernel: ide: failed opcode was: unknown Feb 4 13:50:42 test kernel: end_request: I/O error, dev hda, sector 74367240 Feb 4 13:50:44 test kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Additional Notes
- If the output of
badblocksis going to be fed to thee2fsckormke2fsprograms, it is important that the block size is properly specified, since the block numbers which are generated are very dependent on the block size in use by the filesystem. For this reason, it is strongly recommended that users not runbadblocksdirectly, but rather use the-coption of thee2fsckandmke2fsprograms. - Never use the -w option on a device containing an existing file system. This option erases data! If write-mode testing needs to be performed on an existing file system, use the
-noption instead. It is slower, but it will preserve the data.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.