Firstly I thought it’s that my hard drive it’s faulty, because while writing a few large files it failed with the following messages:
sd 3:0:0:0: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, initializing command required end_request: I/O error, dev sdb, sector 794703 EXT3-fs error (device sdb1): read_inode_bitmap: Cannot read inode bitmap - block_group = 3, inode_bitmap = 99330 Aborting journal on device sdb1. sd 3:0:0:0: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, initializing command required end_request: I/O error, dev sdb, sector 12423 Buffer I/O error on device sdb1, logical block 1545 lost page write due to I/O error on sdb1 sd 3:0:0:0: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, initializing command required end_request: I/O error, dev sdb, sector 63 Buffer I/O error on device sdb1, logical block 0 lost page write due to I/O error on sdb1 EXT3-fs error (device sdb1) in ext3_new_inode: IO failure EXT3-fs error (device sdb1) in ext3_create: IO failure ext3_abort called. EXT3-fs error (device sdb1): ext3_journal_start_sb: Detected aborted journal Remounting filesystem read-only
After googling around I’ve found this thread:
http://ubuntuforums.org/showthread.php?t=494673
Thanks to trolav, I’ve solved my problem.
[root@silver ~]# cat /etc/udev/rules.d/85-usb-hd-fix.rules BUS=="scsi", KERNEL=="sd?", SYSFS{vendor}=="Seagate", SYSFS{model}=="FreeAgent Go", RUN+="/scripts/usbhdfix %k"
[root@silver ~]# cat /scripts/usbhdfix #!/bin/bash # USB FIX: # http://ubuntuforums.org/showthread.php?t=494673 echo 1024 > /sys/block/$1/device/max_sectors echo 1 > /sys/block/$1/device/scsi_disk:*/allow_restart
8 comments ↓
Hi Silver,
I have same problem with you on my 2 of seagate external drives. What I am asking is on the line :
kernel==”sd?”, should I replace the line of “sd?” with the real drive partition ? or just let it be ?
On my case, my Ext HD read as sdb1. Should I replace it to kernel==”sdb” or something ?
Thank you for your advice.
You should go with ’sd?’ as it will match all ’sd’ prefixed devices (’sda’, ’sdb’ …).
Owh I See…. ok I will try it to my external HD then…. I will update the result later….Thank you.
Helo Cherpec,
Day 1st, it still failed to spin. The Ext HD was stop working again. Hmmm…. I wrote the script like this :
For file /etc/udev/rules.d/85-usb-hd-fix.rules :
BUS==”scsi”, KERNEL==”sdd”, SYSFS{vendor}==”Seagate”, SYSFS{model}==”FreeAgent Go”, RUN+=”/scripts/usbhdfix %k”
Is that correct ? should I change the permission for that file and the other file ? please advice and thanks
Check that you have execution bit on /scripts/usbhdfix.
You can try to execute script from command line:
# replace sdX with drive’s device name
/scripts/usbhdfix sdX
# verify
cat /sys/block/sdX/device/max_sectors
cat /sys/block/sdX/device/scsi_disk:*/allow_restart
ok This is my /scripts/usbhdfix file
#!/bin/bash
# USB FIX:
# http://ubuntuforums.org/showthread.php?t=494673
echo 1024 > /sys/block/sdd/device/max_sectors
echo 1 > /sys/block/sdd/device/scsi_disk:*/allow_restart
I have replace the sdd as your sugestion. What about the permission ? I have :
1. /scripts/usbhdfix = 644
2. /etc/udev/rules.d/85-usb-hd-fix.rules = 644
should I change the permition ? Many thanks
OK I have put /scripts/usbhdfix permission to executable.
I’ll report to you again for the result. Thanks
hi,
Finally my Ext HD is working normally. But I don’t use the step above. The Seagate FreeAgent is set up the STAND BY Mode by 1. I have to change it to 0 value with command :
#sdparm –clear STANDBY -6 /dev/sd?
And for checking it has been changed, use command :
#sdparm -a /dev/sd?
Ok thanks cherpec…..
Leave a Comment