Parking disk drive heads

Matthew N. Dodd mdodd at FreeBSD.ORG
Sun Aug 21 07:12:21 GMT 2005


On Wed, 17 Aug 2005 m.ehinger at ltur.de wrote:
> which is the correct way to park the hd head?

The documentation will refer to this operation as "Unload".

Standby (0xE2) or Standby Immediate (0xE0) would be the only way I can see 
to do this.  (Sleep performs an unload as well, but is not useful for your 
purposes.)

Some of the low power idle modes supported by the Hitachi 5k100 mention 
head retraction to the ramp position, which might be of use provided the 
feature is widely supported on new hardware.

Many drives support an "Emergency Unload" but it only appears to be 
activated by power failure.

Anyhow, here is a snippet that should get you going (on 6.x/CURRENT):

%%%

#include <sys/ata.h>
...

 	struct ata_ioc_request req;
 	int fd;

 	fd = open("/dev/ad0", O_RDONLY);
 	memset(&req, 0, sizeof(struct ata_ioc_request));
 	req.u.ata.command = ATA_STANDBY_IMMEDIATE;
 	req.flags = ATA_CMD_CONTROL;
 	req.timeout = 5;
 	ioctl(fd, IOCATAREQUEST, &req);
 	close(fd);

-- 
10 40 80 C0 00 FF FF FF FF C0 00 00 00 00 10 AA AA 03 00 00 00 08 00


More information about the freebsd-hackers mailing list