An Input/Output Error is usually caused by an error in the physical connection of the device to the system.
For a hard drive this could be:
- Incorrectly attached power or data cables
- Bad data cable
- Failing Power Supply
- Bad USB cable, port, or connecting block (external drives)
- Hard drive controller problem
- USB controller problem (external drives)
- And of course, a failing hard drive
You want to check to see if any of the above possibilities account for the error.
As for controller errors, you can try the drive on another computer. If the problem follows the drive then you can discount any errors in your system.
Hope that helps