Chinaunix首页 | 论坛 | 博客
  • 博客访问: 432439
  • 博文数量: 55
  • 博客积分: 2235
  • 博客等级: 大尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-14 13:34
文章分类
文章存档

2012年(2)

2011年(26)

2010年(1)

2009年(20)

2008年(6)

我的朋友

分类:

2009-06-13 14:32:31

为了保证数据能够更新到硬盘里,注意要使用sync更新。

我的要求是不能让机器重启,但是在buffer中的数据要写到硬盘里。发现用sync无效。之后

用umount命令可以实现我的要求。


让硬盘休眠的命令为: (busybox里有源码)

hdparm -Y /dev/hd*:使硬盘进入睡眠模式;
hdparm -y /dev/hd*:使硬盘进入省电模式;
hdparm -S[num] /dev/hd*:设置超时值使硬盘进入睡眠模式;

  唤醒硬盘hdparm好像没有相应参数,实际上你去操作硬盘就会自动唤醒硬盘,使用ioctl有个参数可以唤醒硬盘,你可以查看硬盘操作的相应头文件。

1、-Y 使IDE硬盘进入睡眠模式。
   硬盘睡眠模式,写硬件时自动唤醒。
2、-y 使IDE硬盘进入省电模式。
   省电模式设置后,不操作硬盘,那么他就一直不工作,只要读它,他就在大约5S内启动起来!

显示的提示:(busybox-1.0.0)

uclibc[disk]# hdparm -Y /dev/discs/disc0/part5 执行完这一步开始睡眠

/dev/discs/disc0/part5:
 issuing sleep command


uclibc[disk]# hdparm -C /dev/discs/disc0/part5

/dev/discs/disc0/part5:
hda: irq timeout: status=0xd0 { Busy }

hda: status timeout: status=0xd0 { Busy }

hda: drive not ready for command
 drive state is: unknown        显示unknow,已经睡眠了!

 

uclibc[disk]# ls -l > /mnt/idisc1/abc          唤醒硬盘了!
hda: status timeout: status=0xd0 { Busy }

IDE: DMA disabled for hda
hda: drive not ready for command
ide0: reset: success
uclibc[disk]# ls /mnt/idisc1/
abc lost+found
uclibc[disk]# hdparm -C /dev/discs/disc0/part5

/dev/discs/disc0/part5:
 drive state is: active/idle

uclibc[disk]# hdparm -y /dev/discs/disc0/part5    省电方式!

/dev/discs/disc0/part5:
 issuing standby command
uclibc[disk]# hdparm -C /dev/discs/disc0/part5

/dev/discs/disc0/part5:
 drive state is: standby
(省电模式)

hdparm
功能说明:显示与设定硬盘的参数。
语  法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p ][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
参  数:
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行後续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 平谷硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。

阅读(4820) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~