Comment 78 for bug 61235

Revision history for this message
mesae (aerospin-ed-misc) wrote :

FWIW: I was having the same problem and I appear to have come across a solution (derived from this thread) for my particular setup at least:

Dell Latitude D620;
lsusb:
Bus 005 Device 008: ID 0b97:7762 O2 Micro, Inc. Oz776 SmartCard Reader
Bus 005 Device 006: ID 046d:c043 Logitech, Inc.
Bus 005 Device 003: ID 0bc2:2000 Seagate RSS LLC
Bus 005 Device 007: ID 0ace:1215 ZyDAS
Bus 005 Device 005: ID 0b97:7761 O2 Micro, Inc.
Bus 005 Device 004: ID 050d:0234 Belkin Components F5U234 USB 2.0 4-Port Hub
Bus 005 Device 002: ID 413c:a005 Dell Computer Corp.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Booted with Ubuntu 7.04 installed using the alternate "text" install CD with all updates applied on Seagate FreeAgent Go 120GB, Linux and Windows (for sharing) partitions.

my script "disk-allow-restart.sh":

#!/bin/bash
# Place this file (and make executable) in /etc/init.d/, and list in /etc/rc.local like this: "/etc/init.d/disk-allow-restart.sh"
echo 1024 > /sys/block/sdb/device/max_sectors
echo 1 > /sys/class/scsi_disk/0:0:0:0/allow_restart
echo 1 > /sys/class/scsi_disk/2:0:0:0/allow_restart

I had to experiment a bit at the command line to find the format that actually changed the value in "allow_restart". This is the only computer I boot with this external drive, so I did not need to fiddle with any wildcards.

I don't know if the "max_sectors" setting is necessary, and what made the difference on spinning up the drive was the "allow_restart" values changing to "1". After more time if I get any IO errors, I'll put max_sectors down to 128 or something.