[求助] 不怎么会用 hdparm

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
Dogs1985
帖子: 58
注册时间: 2007-12-11 14:01

[求助] 不怎么会用 hdparm

#1

帖子 Dogs1985 » 2007-12-21 13:35

我不怎么会用 hdparm ,可以叫我用吗?
我用:

sudo hdparm -c1 /dev/sda1
setting 32-bit IO_support flag to 1
HDIO_SET_32BIT failed: Invalid argument
IO_support = 0 (default 16-bit)

sudo hdparm -d1 /dev/sda1
/dev/sda1:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device

我是用很旧的笔记本,谁可以帮我吗?
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

#2

帖子 syrano » 2007-12-21 19:47

使用hdparm工具可以调整IDE硬盘性能,它设计时专门考虑了使用UDMA驱动器。在缺省情况下,Linux使用是最安全的,但是设置访问IDE驱动器是最慢的。缺省模式没有利用UDMA可能的最快的性能。

使用hdparm工具,通过激活下面的特性可以显著地改善性能:

◆ 32位支持 缺省设置是16位;

◆ 多部分访问 缺省设置是每次中断单部分传送。

注意:在使用hdparm之前,确保对系统已经做了完全的备份。使用hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失。

sudo hdparm -v /dev/hda

上面命令显示出当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。

改变驱动器设置,激活32位传输,输入下面的命令:

sudo hdparm -c3 /dev/hda

-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。

大多数新IDE驱动器支持多部分传输,但是Linux缺省设置为单部分传输。注意:这个设置在一些驱动器上,激活多部分传输能引起文件系统的完全崩溃。这个问题大多数发生在较老的驱动器上。

输入下面的命令激活多部分传输:

sudo hdparm -m16 /dev/hda

-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降。对西部数据驱动器来说,设置为4部分是最合适的。

激活多部分访问能够减少CPU负载30%~50%,同时可以增加数据传输速率到50%。使用-m0参数可以取消多部分传输。

Hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个IDE驱动器:

sudo hdparm -Tt /dev/hda

此测试可测量驱动器直接读和高速缓冲存储器读的速度。结果是一个优化的“最好的事例”数字。

你可以编辑/etc/hdparm.conf来设置硬盘参数。
_________________
设置完用sudo hdparm -k1 /dev/hda 保存
重启后看设置变回去了没有,如果变回去了每次开机重新设置 :wink: [/url]
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

#3

帖子 syrano » 2007-12-21 19:58

Dogs1985
帖子: 58
注册时间: 2007-12-11 14:01

#4

帖子 Dogs1985 » 2007-12-22 5:38

我看一个帖跟着做
sudo hdparm -d1 -u1 -m16 -c3 /dev/sda

/dev/sda:
setting 32-bit IO_support flag to 3
HDIO_SET_32BIT failed: Invalid argument
setting multcount to 16
HDIO_SET_MULTCOUNT failed: Inappropriate ioctl for device
setting unmaskirq to 1 (on)
HDIO_SET_UNMASKINTR failed: Inappropriate ioctl for device
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_MULTCOUNT failed: Inappropriate ioctl for device
IO_support = 0 (default 16-bit)


sudo hdparm -i /dev/sda

/dev/sda:
Model=FUJITSU MHS2020AT E , FwRev=8307 , SerialNo= NL12T35189LP
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=?8?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=39070080
IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: mode=0xFE (254) WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: ATA/ATAPI-2,3,4,5,6

* signifies the current active mode


sudo hdparm /dev/sda

/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 2432/255/63, sectors = 39070080, start = 0

为什么我的旧笔记本不能的,出现什么的 HDIO_SET_32BIT failed: Invalid argument :cry: :cry: :cry:
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

#5

帖子 syrano » 2007-12-22 17:08

你的硬盘不是/dev/sda
/dev/sd*是sata硬盘
你可以看一下你的windows分区挂载的地方,如果是hda1 hda5....,你的硬盘就是/dev/hda,如果是hdc1 hdc5....,你的硬盘就是/dev/hdc
头像
milujite
帖子: 644
注册时间: 2007-01-01 22:14
联系:

#6

帖子 milujite » 2007-12-22 17:15

是IDE硬盘,但是新版本内核都识别为sdX
Dogs1985
帖子: 58
注册时间: 2007-12-11 14:01

#7

帖子 Dogs1985 » 2007-12-22 17:57

我在 dev 文件夹下都找不到 hdx 之类的东西,有看到 sda 的东西。
还有什么办法吗? :cry: :cry: :cry:
Dogs1985
帖子: 58
注册时间: 2007-12-11 14:01

#8

帖子 Dogs1985 » 2007-12-23 15:40

我的问题不能解决吗? :cry: :cry: :cry:
Dogs1985
帖子: 58
注册时间: 2007-12-11 14:01

#9

帖子 Dogs1985 » 2007-12-27 3:06

我的问题还是不能解决呢。请问我还要怎么的做呢。
回复