I'm suffering from the same bug unter Ubuntu 9.10. The problem can be solved by adding a sleep timer of 20-60s (depends how fast the system is booted) the file "/usr/lib/pm-utils/power.d/95hdparm-apm" before the "hdparm"-command :
then
level=$(hdparm_apm_option_for_disk $dev)
if [ -n "$level" ]; then
sleep 20 # Prevents harddisk from reseting
hdparm -B $level $dev
fi
"hdparm" is executed twice in a very short time (1s) during the boot and both commands are called when the boot process do the most I/O on the harddisk. Heavy I/O and setting a firmware command twice in a very short time does not work very well, so the harddisk is reseted by the kernel.
Adding the sleep timer prevents this and "hdparm" will be executed after the heavy I/O-throughput, for example when the login manager appears and is waiting for the login.
For my notebook a 20s timer works perfectly, but 60s seems to be a better value because most desktop-systems will be completely booted after 60s and have no more heavy harddisk I/O.
I'm suffering from the same bug unter Ubuntu 9.10. The problem can be solved by adding a sleep timer of 20-60s (depends how fast the system is booted) the file "/usr/lib/ pm-utils/ power.d/ 95hdparm- apm" before the "hdparm"-command :
then $(hdparm_ apm_option_ for_disk $dev)
level=
if [ -n "$level" ]; then
sleep 20 # Prevents harddisk from reseting
hdparm -B $level $dev
fi
"hdparm" is executed twice in a very short time (1s) during the boot and both commands are called when the boot process do the most I/O on the harddisk. Heavy I/O and setting a firmware command twice in a very short time does not work very well, so the harddisk is reseted by the kernel.
Adding the sleep timer prevents this and "hdparm" will be executed after the heavy I/O-throughput, for example when the login manager appears and is waiting for the login.
For my notebook a 20s timer works perfectly, but 60s seems to be a better value because most desktop-systems will be completely booted after 60s and have no more heavy harddisk I/O.