在Linux中,有时我们希望打开或关闭硬盘写缓存(Write Cache),此时可以用hdparm命令来实现。
建议下载最新hdparm版本,网址为:
http://sourceforge.net/projects/hdparm/
查看当前硬盘写Cache状态
root@ubuntu:~/hdparm-9.37# hdparm -W /dev/sda
关闭硬盘的写Cache
root@ubuntu:~/hdparm-9.37# hdparm -W 0 /dev/sda
打开硬盘的写Cache
root@ubuntu:~/hdparm-9.37# hdparm -W 1 /dev/sda
hdparm其他参数详细说明如下:
root@ubuntu:~/hdparm-9.37# ./hdparm -h
hdparm – get/set hard disk parameters – version v9.37, by Mark Lord.
Usage: hdparm [options] [device …]
Options:
-a Get/set fs readahead
-A Get/set the drive look-ahead flag (0/1)
-b Get/set bus state (0 == off, 1 == on, 2 == tristate)
-B Set Advanced Power Management setting (1-255)
-c Get/set IDE 32-bit IO setting
-C Check drive power mode status
-d Get/set using_dma flag
-D Enable/disable drive defect management
-E Set cd/dvd drive speed
-f Flush buffer cache for device on exit
-F Flush drive write cache
-g Display drive geometry
-h Display terse usage information
-H Read temperature from drive (Hitachi only)
-i Display drive identification
-I Detailed/current information directly from drive
-k Get/set keep_settings_over_reset flag (0/1)
-K Set drive keep_features_over_reset flag (0/1)
-L Set drive doorlock (0/1) (removable harddisks only)
-m Get/set multiple sector count
-M Get/set acoustic management (0-254, 128: quiet, 254: fast)
-n Get/set ignore-write-errors flag (0/1)
-N Get/set max visible number of sectors (HPA) (VERY DANGEROUS)
-p Set PIO mode on IDE interface chipset (0,1,2,3,4,…)
-P Set drive prefetch count
-q Change next setting quietly
-Q Get/set DMA queue_depth (if supported)
-r Get/set device readonly flag (DANGEROUS to set)
-R Obsolete
-s Set power-up in standby flag (0/1) (DANGEROUS)
-S Set standby (spindown) timeout
-t Perform device read timings
-T Perform cache read timings
-u Get/set unmaskirq flag (0/1)
-U Obsolete
-v Use defaults; same as -acdgkmur for IDE drives
-V Display program version and exit immediately
-w Perform device reset (DANGEROUS)
-W Get/set drive write-caching flag (0/1)
-x Obsolete
-X Set IDE xfer mode (DANGEROUS)
-y Put drive in standby mode
-Y Put drive to sleep
-z Re-read partition table
-Z Disable Seagate auto-powersaving mode
–dco-freeze Freeze/lock current device configuration until next power cycle
–dco-identify Read/dump device configuration identify data
–dco-restore Reset device configuration back to factory defaults
–direct Use O_DIRECT to bypass page cache for timings
–drq-hsm-error Crash system with a “stuck DRQ” error (VERY DANGEROUS)
–fallocate Create a file without writing data to disk
–fibmap Show device extents (and fragmentation) for a file
–fwdownload Download firmware file to drive (EXTREMELY DANGEROUS)
–fwdownload-mode3 Download firmware using min-size segments (EXTREMELY DANGEROUS)
–fwdownload-mode3-max Download firmware using max-size segments (EXTREMELY DANGEROUS)
–fwdownload-mode7 Download firmware using a single segment (EXTREMELY DANGEROUS)
–idle-immediate Idle drive immediately
–idle-unload Idle immediately and unload heads
–Istdin Read identify data from stdin as ASCII hex
–Istdout Write identify data to stdout as ASCII hex
–make-bad-sector Deliberately corrupt a sector directly on the media (VERY DANGEROUS)
–offset use with -t, to begin timings at given offset (in GiB) from start of drive
–prefer-ata12 Use 12-byte (instead of 16-byte) SAT commands when possible
–read-sector Read and dump (in hex) a sector directly from the media
–security-help Display help for ATA security commands
–trim-sector-ranges Tell SSD firmware to discard unneeded data sectors: lba:count ..
–trim-sector-ranges-stdin Same as above, but reads lba:count pairs from stdin
–verbose Display extra diagnostics from some commands
–write-sector Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)
root@ubuntu:~/hdparm-9.37#
楼主,有没有测试过通过HBA卡连接硬盘使用这个命令,我测试了一下好像不行。