diff options
Diffstat (limited to 'upstream/archlinux/man8/hdparm.8')
-rw-r--r-- | upstream/archlinux/man8/hdparm.8 | 914 |
1 files changed, 914 insertions, 0 deletions
diff --git a/upstream/archlinux/man8/hdparm.8 b/upstream/archlinux/man8/hdparm.8 new file mode 100644 index 00000000..ccdbb21a --- /dev/null +++ b/upstream/archlinux/man8/hdparm.8 @@ -0,0 +1,914 @@ +.TH HDPARM 8 "Sep 2022" "Version 9.65" + +.SH NAME +hdparm \- get/set SATA/IDE device parameters +.SH SYNOPSIS +.B hdparm +[options] [device ...] +.SH DESCRIPTION +.BI hdparm +provides a command line interface to various kernel interfaces +supported by the Linux SATA/PATA/SAS "libata" subsystem +and the older IDE driver subsystem. Many newer (2008 and later) +USB drive enclosures now also support "SAT" (SCSI-ATA Command Translation) +and therefore may also work with hdparm. E.g. recent WD "Passport" models +and recent NexStar-3 enclosures. +Some options may work correctly only with the latest kernels. +.SH OPTIONS +When no options are given, +.B -acdgkmur +is assumed. +For "Get/set" options, a query without the optional parameter (e.g. \-d) will query (get) +the device state, and with a parameter (e.g., \-d0) will set the device state. +.TP +.I -a +Get/set sector count for filesystem (software) read-ahead. +This is used to improve performance in sequential reads of large files, +by prefetching additional +blocks in anticipation of them being needed by the running task. +Many IDE drives also have a separate built-in read-ahead function, +which augments this filesystem (software) read-ahead function. +.TP +.I -A +Get/set the IDE drive\'s read-lookahead feature (usually ON by default). +Usage: +.B -A0 +(disable) or +.B -A1 +(enable). +.TP +.I -b +Get/set bus state. +.TP +.I -B +Get/set Advanced Power Management feature, if the drive supports it. A low value +means aggressive power management and a high value means better performance. +Possible settings range from values 1 through 127 (which permit spin-down), +and values 128 through 254 (which do not permit spin-down). +The highest degree of power management is attained with a setting of 1, +and the highest I/O performance with a setting of 254. +A value of 255 tells hdparm to disable Advanced Power Management altogether +on the drive (not all drives support disabling it, but most do). +.TP +.I -c +Get/set (E)IDE 32-bit I/O support. A numeric parameter can be +used to enable/disable 32-bit I/O support. +Currently supported values include +.B 0 +to disable 32-bit I/O support, +.B 1 +to enable 32-bit data transfers, and +.B 3 +to enable 32-bit data transfers with a special +.B sync +sequence required by many chipsets. The value +.B 3 +works with nearly all +32-bit IDE chipsets, but incurs slightly more overhead. +Note that "32-bit" refers to data transfers across a PCI or VLB bus to the +interface card only; all (E)IDE drives still have only a 16-bit connection +over the ribbon cable from the interface card. +.TP +.I -C +Check the current IDE power mode status, which will always be one of +.B unknown +(drive does not support this command), +.B active/idle +(normal operation), +.B standby +(low power mode, drive has spun down), +or +.B sleeping +(lowest power mode, drive is completely shut down). +The +.B -S, -y, -Y, +and +.B -Z +options can be used to manipulate the IDE power modes. +.TP +.I -d +Get/set the "using_dma" flag for this drive. This option now works +with most combinations of drives and PCI interfaces which support DMA +and which are known to the kernel IDE driver. +It is also a good idea to use the appropriate +.B -X +option in combination with +.B -d1 +to ensure that the drive itself is programmed for the correct DMA mode, +although most BIOSs should do this for you at boot time. +Using DMA nearly always gives the best performance, +with fast I/O throughput and low CPU usage. +But there are at least a few configurations of chipsets and drives +for which DMA does not make much of a difference, or may even slow +things down (on really messed up hardware!). Your mileage may vary. +.TP +.I --dco-freeze +DCO stands for Device Configuration Overlay, a way for vendors to selectively +disable certain features of a drive. The +.B --dco-freeze +option will freeze/lock the current drive configuration, +thereby preventing software (or malware) +from changing any DCO settings until after the next power-on reset. +.TP +.I --dco-identify +Query and dump information regarding drive configuration settings +which can be disabled by the vendor or OEM installer. +These settings show capabilities of the drive which might be disabled +by the vendor for "enhanced compatibility". +When disabled, they are otherwise hidden and will not show in the +.B -I +identify output. For example, system vendors sometimes disable 48_bit +addressing on large drives, for compatibility (and loss of capacity) +with a specific BIOS. In such cases, +.B --dco-identify +will show that the drive is 48_bit capable, but +.B -I +will not show it, and nor will the drive accept 48_bit commands. +.TP +.I --dco-restore +Reset all drive settings, features, and accessible capacities back to factory defaults +and full capabilities. This command will fail if DCO is frozen/locked, +or if a +.B -Np +maximum size restriction has also been set. +This is +.B EXTREMELY DANGEROUS +and will very likely cause massive loss of data. +.B DO NOT USE THIS COMMAND. +.TP +.I --direct +Use the kernel\'s "O_DIRECT" flag when performing a +.B -t +timing test. This bypasses the page cache, causing the reads +to go directly from the drive into hdparm's buffers, using so-called +"raw" I/O. In many cases, this can produce results that appear +much faster than the usual page cache method, giving a better indication +of raw device and driver performance. +.TP +.I --drq-hsm-error +.B VERY DANGEROUS, DON'T EVEN THINK ABOUT USING IT. +This option causes hdparm to issue an IDENTIFY command +to the kernel, but incorrectly marked as a "non-data" command. +This results in the drive being left with its DataReQust(DRQ) line +"stuck" high. This confuses the kernel drivers, and may crash the system +immediately with massive data loss. The option exists to help in testing +and fortifying the kernel against similar real-world drive malfunctions. +.B VERY DANGEROUS, DO NOT USE!! +.TP +.I -D +Enable/disable the on-drive defect management feature, +whereby the drive firmware tries to automatically manage +defective sectors by relocating them to "spare" sectors +reserved by the factory for such. Control of this feature +via the +.B -D +option is not supported for most modern drives +since ATA-4; thus this command may fail. +.TP +.I -E +Set cd/dvd drive speed. This is NOT necessary for regular operation, +as the drive will automatically switch speeds on its own. +But if you want to play with it, just supply a speed number +after the option, usually a number like 2 or 4. +This can be useful in some cases, though, to smooth out DVD video playback. +.TP +.I -f +Sync and flush the buffer cache for the device on exit. +This operation is also performed internally as part of the +.B -t +and +.B -T +timings and other options. +.TP +.I --fallocate +This option currently works only on ext4 and xfs filesystem types. +When used, this must be the only option given. +It requires two parameters: the desired file size in kilo-bytes +(byte count divided by 1024), followed by the pathname for the new file. +It will create a new file of the specified size, +but without actually having to write any data to the file. +This will normally complete very quickly, and without thrashing the storage device. +.IP +E.g. Create a 10KByte file: +.B hdparm --fallocate 10 temp_file +.TP +.I --fibmap +When used, this must be the only option given. +It requires a file path as a parameter, and will print +out a list of the block extents (sector ranges) +occupied by that file on disk. +Sector numbers are given as absolute LBA numbers, +referenced from sector 0 of the physical device rather +than from the partition or filesystem. +This information can then be used for a variety of purposes, +such as examining the degree of fragmenation of larger files, or +determining appropriate sectors to deliberately corrupt +during fault-injection testing procedures. +.IP +This option uses the new FIEMAP (file extent map) ioctl() when available, +and falls back to the older FIBMAP (file block map) ioctl() otherwise. +Note that FIBMAP suffers from a 32-bit block-number interface, +and thus not work beyond 8TB or 16TB. FIBMAP is also very slow, +and does not deal well with preallocated uncommitted extents +in ext4/xfs filesystems, unless a sync() is done before using this option. +.TP +.I --fwdownload +When used, this should be the only option given. +It requires a file path immediately after the +option, indicating where the new drive firmware should be read from. +The contents of this file will be sent to the drive using the +(S)ATA +.B DOWNLOAD MICROCODE +command, using either transfer protocol 7 (entire file at once), +or, if the drive supports it, transfer protocol 3 (segmented download). +This command is +.B EXTREMELY DANGEROUS +and could destroy both the drive and all data on it. +.B DO NOT USE THIS COMMAND. +The +.B --fwdownload-mode3 +, +.B --fwdownload-mode3-max +, and +.B --fwdownload-mode7 +variations on basic +.B --fwdownload +allow overriding automatic protocol detection in favour of +forcing hdparm to use a specific transfer protocol, for testing purposes only. +.TP +.I -F +Flush the on-drive write cache buffer (older drives may not implement this). +.TP +.I -g +Display the drive geometry (cylinders, heads, sectors), +the size (in sectors) of the device, +and the starting offset (in sectors) of the device from +the beginning of the drive. +.TP +.I -h +Display terse usage information (help). +.TP +.I -H +Read the temperature from some (mostly Hitachi) drives. +Also reports if the temperature is within operating condition range +(this may not be reliable). Does not cause the drive to spin up if idle. +.TP +.I -i +Display the identification info which the kernel drivers (IDE, libata) +have stored from boot/configuration time. This may differ from the +current information obtainable directly from the drive itself +with the +.B -I +option. +The data returned may or may not be current, depending on activity +since booting the system. +For a more detailed interpretation of the identification info, +refer to +.I AT Attachment Interface for Disk Drives, +ANSI ASC X3T9.2 working draft, revision 4a, April 19/93, and later editions. +.TP +.I --idle-immediate +Issue an ATA IDLE_IMMEDIATE command, to put the drive into a lower power state. +Usually the device remains spun-up. +.TP +.I --idle-unload +Issue an ATA IDLE_IMMEDIATE_WITH_UNLOAD command, to unload or park the heads +and put the drive into a lower power state. Usually the device remains spun-up. +.TP +.I -I +Request identification info directly from the drive, +which is displayed in a new expanded format with considerably +more detail than with the older +.B -i +option. +.TP +.I --Iraw <pathname> +This option dumps the drive's identify data in raw binary to the specified file. +.TP +.I --Istdin +This is a special variation on the +.B -I +option, +which accepts a drive identification block as standard input +instead of using a /dev/hd* parameter. +The format of this block must be +.B exactly +the same as that found in the /proc/ide/*/hd*/identify "files", +or that produced by the +.B --Istdout +option described below. +This variation is designed for use with collected "libraries" of drive +identification information, and can also be used on ATAPI +drives which may give media errors with the standard mechanism. +When +.B --Istdin +is used, it must be the *only* parameter given. +Note that some information will be incomplete, as the drive LOG PAGES are unavailable when +.B --Istdin +is used. +.TP +.I --Istdout +This option dumps the drive's identify data in hex to stdout, +in a format similar to that from /proc/ide/*/identify, and suitable for +later use with the +.B --Istdin +option. +.TP +.I -J +Get/set the Western Digital (WD) Green Drive's "idle3" timeout value. +This timeout controls how often the drive parks its heads and enters +a low power consumption state. The factory default is eight (8) seconds, +which is a very poor choice for use with Linux. Leaving it at the default +will result in hundreds of thousands of head load/unload cycles in a very +short period of time. The drive mechanism is only rated for 300,000 to 1,000,000 +cycles, so leaving it at the default could result in premature failure, +not to mention the performance impact of the drive often having to wake-up +before doing routine I/O. +.IP +WD supply a WDIDLE3.EXE DOS utility for tweaking this setting, +and you should use that program instead of hdparm +if at all possible. The reverse-engineered implementation in hdparm +is not as complete as the original official program, even though it does +seem to work on at a least a few drives. A full power cycle is required +for any change in setting to take effect, regardless of which program is +used to tweak things. +.IP +A setting of 30 seconds is recommended for Linux use. +Permitted values are from 8 to 12 seconds, and from 30 to 300 seconds +in 30-second increments. +Specify a value of zero (0) to disable the WD idle3 timer completely +(NOT RECOMMENDED!). +.TP +.I -k +Get/set the "keep_settings_over_reset" flag for the drive. +When this flag is set, the drive will preserve the +.B -dmu +settings over a soft reset, (as done during the error recovery sequence). +This option defaults to off, +to prevent drive reset loops which could be caused by combinations of +.B -dmu +settings. The +.B -k +option should therefore only be set after one has achieved confidence in +correct system operation with a chosen set of configuration settings. +In practice, all that is typically necessary to test a configuration +(prior to using \-k) is to verify that the drive can be read/written, +and that no error logs (kernel messages) are generated in the process +(look in /var/log/messages on most systems). +.TP +.I -K +Set the drive\'s "keep_features_over_reset" flag. Setting this enables +the drive to retain the settings for +.B -APSWXZ +over a soft reset (as done during the error recovery sequence). +Not all drives support this feature. +.TP +.I -L +Set the drive\'s doorlock flag. Setting this to +.B 1 +will lock the door mechanism of some removable hard drives +(e.g. Syquest, ZIP, Jazz..), and setting it to +.B 0 +will unlock the door mechanism. Normally, Linux +maintains the door locking mechanism automatically, depending on drive usage +(locked whenever a filesystem is mounted). But on system shutdown, this can +be a nuisance if the root partition is on a removable disk, since the root +partition is left mounted (read-only) after shutdown. So, by using this +command to unlock the door +.B after +the root filesystem is remounted read-only, one can then remove the cartridge +from the drive after shutdown. +.TP +.I -m +Get/set sector count for multiple sector I/O on the drive. A setting of +.B 0 +disables this feature. Multiple sector mode (aka IDE Block Mode), is a feature +of most modern IDE hard drives, permitting the transfer of multiple sectors per +I/O interrupt, rather than the usual one sector per interrupt. When this +feature is enabled, it typically reduces operating system overhead for disk +I/O by 30-50%. On many systems, it also provides increased data throughput +of anywhere from 5% to 50%. Some drives, however +(most notably the WD Caviar series), +seem to run slower with multiple mode enabled. Your mileage may vary. +Most drives support the minimum settings of +2, 4, 8, or 16 (sectors). Larger settings may also be possible, depending on +the drive. A setting of 16 or 32 seems optimal on many systems. +Western Digital recommends lower settings of 4 to 8 on many of their drives, +due tiny (32kB) drive buffers and non-optimized buffering algorithms. +The +.B -i +option can be used to find the maximum setting supported by an installed drive +(look for MaxMultSect in the output). +Some drives claim to support multiple mode, but lose data at some settings. +Under rare circumstances, such failures can result in +.B massive filesystem corruption. +.TP +.I --make-bad-sector +Deliberately create a bad sector (aka. "media error") on the disk. +.B EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!! +This can be useful for testing of device/RAID error recovery mechanisms. +The sector number is given as a (base10) parameter after the option. +Depending on the device, hdparm will choose one of two possible ATA commands for +corrupting the sector. The WRITE_LONG works on most drives, but only up to the 28-bit +sector boundary. Some very recent drives (2008) may support the new WRITE_UNCORRECTABLE_EXT +command, which works for any LBA48 sector. If available, hdparm will use that in +preference to WRITE_LONG. The WRITE_UNCORRECTABLE_EXT command itself presents a +choice of how the new bad sector should behave. +By default, it will look like any other bad sector, and the drive may take some +time to retry and fail on subsequent READs of the sector. +However, if a single letter +.B f +is prepended immediately in front of the first digit of the sector number parameter, +then hdparm will issue a "flagged" WRITE_UNCORRECTABLE_EXT, which causes the drive +to merely flag the sector as bad (rather than genuinely corrupt it), and subsequent +READs of the sector will fail immediately (rather than after several retries). +Note also that the +.B --repair-sector +option can be used to restore (any) bad sectors when they are no longer needed, +including sectors that were genuinely bad (the drive will likely remap those +to a fresh area on the media). +.TP +.I -M +Get/set Automatic Acoustic Management (AAM) setting. Most modern harddisk drives +have the ability to speed down the head movements to reduce their noise output. +The possible values are between 0 and 254. 128 is the most quiet (and therefore +slowest) setting and 254 the fastest (and loudest). Some drives have only two +levels (quiet / fast), while others may have different levels between 128 and 254. +At the moment, most drives only support 3 options, off, quiet, and fast. +These have been assigned the values 0, 128, and 254 at present, respectively, +but integer space has been incorporated for future expansion, should this change. +.TP +.I -n +Get or set the "ignore_write_errors" flag in the driver. +Do NOT play with this without grokking the driver source code first. +.TP +.I -N +Get/set max visible number of sectors, also known as the +.B Host Protected Area +setting. Without a parameter, +.B -N +displays the current setting, which is reported as two values: the first +gives the current max sectors setting, and the second shows +the native (real) hardware limit for the disk. +The difference between these two values indicates how many sectors of the disk +are currently hidden from the operating system, in the form of a +.B Host Protected Area (HPA). +This area is often used by computer makers to hold diagnostic software, +and/or a copy of the originally provided operating system for recovery purposes. +Another possible use is to hide the true capacity of a very large disk +from a BIOS/system that cannot normally cope with drives of that size +(eg. most current {2010} BIOSs cannot deal with drives larger than 2TB, +so an HPA could be used to cause a 3TB drive to report itself as a 2TB drive). +To change the current max (VERY DANGEROUS, DATA LOSS IS EXTREMELY LIKELY), +a new value should be provided (in base10) immediately +following the +.B -N +option. +This value is specified as a count of sectors, rather than +the "max sector address" of the drive. +Drives have the concept of a temporary (volatile) setting which is +lost on the next hardware reset, as well as a more permanent (non-volatile) +value which survives resets and power cycles. By default, +.B -N +affects only the temporary (volatile) setting. To change the permanent +(non-volatile) value, prepend a leading +.B p +character immediately before the first digit of the value. +Drives are supposed to allow only a single permanent +change per session. A hardware reset (or power cycle) is required +before another permanent +.B -N +operation can succeed. Note that any attempt to set this value +may fail if the disk is being accessed by other software at the same time. +This is because setting the value requires a pair of back-to-back drive commands, +but there is no way to prevent some other command from being inserted between +them by the kernel. So if it fails initially, just try again. +Kernel support for +.B -N +is buggy for many adapter types across many kernel versions, +in that an incorrect (too small) max size value is sometimes reported. +As of the 2.6.27 kernel, this does finally seem to be working on most hardware. +.TP +.I --offset +Offsets to given number of GiB (1024*1024*1024) when performing +.B -t +timings of device reads. +Speed changes (about twice) along many mechanical drives. +Usually the maximum is at the beginning, but not always. +Solid-state drives (SSDs) should show similar timings regardless of offset. +.TP +.I -p +Attempt to reprogram the IDE interface chipset for the specified PIO mode, +or attempt to auto-tune for the "best" PIO mode supported by the drive. +This feature is supported in the kernel for only a few "known" chipsets, +and even then the support is iffy at best. Some IDE chipsets are unable +to alter the PIO mode for a single drive, in which case this option may cause +the PIO mode for +.I both +drives to be set. Many IDE chipsets support either fewer or more than the +standard six (0 to 5) PIO modes, so the exact speed setting that is actually +implemented will vary by chipset/driver sophistication. +.I Use with extreme caution! +This feature includes zero protection for the unwary, +and an unsuccessful outcome may result in +.I severe filesystem corruption! +.TP +.I -P +Set the maximum sector count for the drive\'s internal prefetch mechanism. +Not all drives support this feature, and it was dropped from the official spec +as of ATA-4. +.TP +.I --prefer-ata12 +When using the SAT (SCSI ATA Translation) protocol, hdparm normally prefers +to use the 16-byte command format whenever possible. +But some USB drive enclosures don't work correctly with 16-byte commands. +This option can be used to force use of the smaller 12-byte command format +with such drives. hdparm will still revert to 16-byte commands for things +that cannot be done with the 12-byte format (e.g. sector accesses beyond 28-bits). +.TP +.I -q +Handle the next option quietly, suppressing normal output (but not error messages). +This is useful for reducing screen clutter when running from system startup scripts. +Not applicable to the +.B -i +or +.B -v +or +.B -t +or +.B -T +options. +.TP +.I -Q +Get or set the device's command queue_depth, if supported by the hardware. +This only works with 2.6.xx (or later) kernels, and only with +device and driver combinations which support changing the queue_depth. +For SATA disks, this is the Native Command Queuing (NCQ) queue depth. +.TP +.I -r +Get/set read-only flag for the device. When set, Linux disallows write operations on the device. +.TP +.I -R +Get/set Write-Read-Verify feature, if the drive supports it. +Usage: +.B -R0 +(disable) or +.B -R1 +(enable). This feature is intended to have the drive firmware automatically +read-back any data that is written by software, to verify that the data was +successfully written. This is generally overkill, and can slow down disk +writes by as much as a factor of two (or more). +.TP +.I --read-sector +Reads from the specified sector number, and dumps the contents in hex to standard output. +The sector number must be given (base10) after this option. +hdparm will issue a low-level read (completely bypassing the usual block layer read/write mechanisms) +for the specified sector. This can be used to definitively check whether a given sector is bad +(media error) or not (doing so through the usual mechanisms can sometimes give false positives). +.TP +.I --repair-sector +This is an alias for the +.B --write-sector +option. VERY DANGEROUS. +.TP +.I -s +Enable/disable the power-on in standby feature, if supported by +the drive. +.B VERY DANGEROUS. +Do not use unless you are absolutely certain +that both the system BIOS (or firmware) and the operating system kernel +(Linux >= 2.6.22) support probing for drives that use this feature. +When enabled, the drive is powered-up in the +.B standby +mode to allow the controller to sequence the spin-up of devices, +reducing the instantaneous current draw burden when many drives +share a power supply. Primarily for use in large RAID setups. +This feature is usually disabled and the drive is powered-up in the +.B active +mode (see \-C above). +Note that a drive may also allow enabling this feature by a jumper. +Some SATA drives support the control of this feature by pin 11 of +the SATA power connector. In these cases, this command may be +unsupported or may have no effect. +.TP +.I -S +Put the drive into idle (low-power) mode, and also set the standby +(spindown) timeout for the drive. This timeout value is used +by the drive to determine how long to wait (with no disk activity) +before turning off the spindle motor to save power. Under such +circumstances, the drive may take as long as 30 seconds to respond to +a subsequent disk access, though most drives are much quicker. The +encoding of the timeout value is somewhat peculiar. A value of zero +means "timeouts are disabled": the device will not automatically enter +standby mode. Values from 1 to 240 specify multiples of 5 seconds, +yielding timeouts from 5 seconds to 20 minutes. Values from 241 to +251 specify from 1 to 11 units of 30 minutes, yielding timeouts from +30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 +minutes. A value of 253 sets a vendor-defined timeout period between 8 +and 12 hours, and the value 254 is reserved. 255 is interpreted as 21 +minutes plus 15 seconds. Note that some older drives may have very +different interpretations of these values. +.TP +.I --set-sector-size +For drives which support reconfiguring of the Logical Sector Size, +this flag can be used to specify the new desired sector size in bytes. +.B VERY DANGEROUS. This most likely will scramble all data on the drive. +The specified size must be one of 512, 520, 528, 4096, 4160, or 4224. +Very few drives support values other than 512 and 4096. Eg. +.B hdparm --set-sector-size 4096 /dev/sdb +.TP +.I -t +Perform timings of device reads for benchmark and comparison purposes. +For meaningful results, this operation should be repeated 2-3 times on +an otherwise inactive system (no other active processes) with at least a +couple of megabytes of free memory. This displays the speed of reading +through the buffer cache to the disk without any prior caching of data. +This measurement is an indication of how fast the drive can sustain +sequential data reads under Linux, without any filesystem overhead. To +ensure accurate measurements, the buffer cache is flushed during the +processing of +.I -t +using the BLKFLSBUF ioctl. +.TP +.I -T +Perform timings of cache reads for benchmark and comparison purposes. +For meaningful results, this operation should be repeated 2-3 times +on an otherwise inactive system (no other active processes) with at +least a couple of megabytes of free memory. This displays the speed +of reading directly from the Linux buffer cache without disk access. +This measurement is essentially an indication of the throughput of the +processor, cache, and memory of the system under test. +.TP +.I --trim-sector-ranges +For Solid State Drives (SSDs). +.B EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!! +Tells the drive firmware +to discard unneeded data sectors, destroying any data that may have +been present within them. This makes those sectors available for +immediate use by the firmware's garbage collection mechanism, to +improve scheduling for wear-leveling of the flash media. +This option expects one or more sector range pairs immediately after the option: +an LBA starting address, a colon, and a sector count (max 65535), with no intervening spaces. +.B EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!! +.IP +E.g. +.B hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz +.TP +.I --trim-sector-ranges-stdin +Identical to +.B --trim-sector-ranges +above, except the list of lba:count pairs is read from stdin +rather than being specified on the command line. This can be used +to avoid problems with excessively long command lines. It also permits +batching of many more sector ranges into single commands to the drive, +up to the currently configured transfer limit (max_sectors_kb). +.TP +.I -u +Get/set the interrupt-unmask flag for the drive. A setting of +.B 1 +permits the +driver to unmask other interrupts during processing of a disk interrupt, +which greatly improves Linux\'s responsiveness and eliminates "serial port +overrun" errors. +.B Use this feature with caution: +some drive/controller combinations do +not tolerate the increased I/O latencies possible when this feature is enabled, +resulting in +.B massive filesystem corruption. +In particular, +.B CMD-640B +and +.B RZ1000 +(E)IDE interfaces can be +.B unreliable +(due to a hardware flaw) when this option is used with kernel versions earlier +than 2.0.13. Disabling the +.B IDE prefetch +feature of these interfaces (usually a BIOS/CMOS setting) +provides a safe fix for the problem for use with earlier kernels. +.TP +.I -v +Display some basic settings, similar to \-acdgkmur for IDE. +This is also the default behaviour when no options are specified. +.TP +.I -V +Display program version and exit immediately. +.TP +.I --verbose +Display extra diagnostics from some commands. +.TP +.I -w +Perform a device reset +.B (DANGEROUS). +Do NOT use this option. +It exists for unlikely situations where a reboot might otherwise be +required to get a confused drive back into a useable state. +.TP +.I --write-sector +Writes zeros to the specified sector number. VERY DANGEROUS. +The sector number must be given (base10) after this option. +hdparm will issue a low-level write (completely bypassing the usual block layer read/write mechanisms) +to the specified sector. This can be used to force a drive to repair a bad sector (media error). +.TP +.I -W +Get/set the IDE/SATA drive\'s write-caching feature. +.TP +.I -X +Set the IDE transfer mode for (E)IDE/ATA drives. +This is typically used in combination with +.B -d1 +when enabling DMA to/from a drive on a supported interface chipset, where +.B -X mdma2 +is used to select multiword DMA mode2 transfers and +.B -X sdma1 +is used to select simple mode 1 DMA transfers. +With systems which support UltraDMA burst timings, +.B -X udma2 +is used to select UltraDMA mode2 transfers (you\'ll need to prepare +the chipset for UltraDMA beforehand). +Apart from that, use of this option is +.B seldom necessary +since most/all modern IDE drives default to their fastest PIO transfer mode +at power-on. Fiddling with this can be both needless and risky. +On drives which support alternate transfer modes, +.B -X +can be used to switch the mode of the drive +.B only. +Prior to changing the transfer mode, the IDE interface should be jumpered +or programmed (see +.B -p +option) +for the new mode setting to prevent loss and/or corruption of data. +.I Use this with extreme caution! +For the PIO (Programmed Input/Output) +transfer modes used by Linux, this value is simply the desired +PIO mode number plus 8. +Thus, a value of 09 sets PIO mode1, 10 enables PIO mode2, +and 11 selects PIO mode3. +Setting 00 restores the drive\'s "default" PIO mode, and 01 disables IORDY. +For multiword DMA, the value used is the desired DMA mode number +plus 32. for UltraDMA, the value is the desired UltraDMA mode number +plus 64. +.TP +.I -y +Force an IDE drive to immediately enter the low power consumption +.B standby +mode, usually causing it to spin down. +The current power mode status can be checked using the +.B -C +option. +.TP +.I -Y +Force an IDE drive to immediately enter the lowest power consumption +.B sleep +mode, causing it to shut down completely. A hard or soft reset +is required before the drive can be accessed again +(the Linux IDE driver will automatically handle issuing a reset if/when needed). +The current power mode status can be checked using the +.B -C +option. +.TP +.I -z +Force a kernel re-read of the partition table of the specified device(s). +.TP +.I -Z +Disable the automatic power-saving function of certain Seagate drives +(ST3xxx models?), to prevent them from idling/spinning-down +at inconvenient times. +.TP +.SH ATA Security Feature Set +.PP +These switches are +.B DANGEROUS +to experiment with, and might not work with some kernels. +.B USE AT YOUR OWN RISK. +.TP +.I --security-help +Display terse usage info for all of the \--security-* options. +.TP +.I --security-freeze +Freeze the drive\'s security settings. +The drive does not accept any security commands until next power-on reset. +Use this function in combination with \--security-unlock to protect drive +from any attempt to set a new password. Can be used standalone, too. +No other options are permitted on the command line with this one. +.TP +.I --security-prompt-for-password +Prompt for the --security PWD rather than getting from the command line args. +This avoids having passwords show up in shell history or in /proc/self/cmdline during execution. +.TP +.I --security-unlock PWD +Unlock the drive, using password PWD. +Password is given as an ASCII string and is padded with NULs to reach 32 bytes. +The applicable drive password is selected with the \--user-master switch +(default is "user" password). +No other options are permitted on the command line with this one. +.TP +.I --security-set-pass PWD +Lock the drive, using password PWD (Set Password) +.B (DANGEROUS). +Password is given as an ASCII string and is padded with NULs to reach 32 bytes. +Use the special password +.B NULL +to set an empty password. +The applicable drive password is selected with the \--user-master switch +(default is "user" password) +and the applicable security mode with the \--security-mode switch. +No other options are permitted on the command line with this one. +.TP +.I --security-disable PWD +Disable drive locking, using password PWD. +Password is given as an ASCII string and is padded with NULs to reach 32 bytes. +The applicable drive password is selected with the \--user-master switch +(default is "user" password). +No other options are permitted on the command line with this one. +.TP +.I --security-erase PWD +Erase (locked) drive, using password PWD +.B (DANGEROUS). +Password is given as an ASCII string and is padded with NULs to reach 32 bytes. +Use the special password +.B NULL +to represent an empty password. +The applicable drive password is selected with the \--user-master switch +(default is "user" password). +No other options are permitted on the command line with this one. +.TP +.I --security-erase-enhanced PWD +Enhanced erase (locked) drive, using password PWD +.B (DANGEROUS). +Password is given as an ASCII string and is padded with NULs to reach 32 bytes. +The applicable drive password is selected with the \--user-master switch +(default is "user" password). +No other options are permitted on the command line with this one. +.TP +.I --user-master USER +Specifies which password (user/master) to select. +.B Defaults to "user" password. +Only useful in combination with \--security-unlock, \--security-set-pass, +\--security-disable, \--security-erase or \--security-erase-enhanced. + u user password + m master password + +.TP +.I --security-mode MODE +Specifies which security mode (high/maximum) to set. +.B Defaults to high. +Only useful in combination with \--security-set-pass. + h high security + m maximum security + +.B THIS FEATURE IS EXPERIMENTAL AND NOT WELL TESTED. USE AT YOUR OWN RISK. +.SH FILES +/etc/hdparm.conf +.SH BUGS +As noted above, the +.B -m sectcount +and +.B -u 1 +options should be used with caution at first, preferably on a +read-only filesystem. Most drives work well with these features, but +a few drive/controller combinations are not 100% compatible. Filesystem +corruption may result. Backup everything before experimenting! +.PP +Some options (e.g. \-r for SCSI) may not work with old kernels as +necessary ioctl()\'s were not supported. +.PP +Although this utility is intended primarily for use with SATA/IDE hard disk +devices, several of the options are also valid (and permitted) for use with +SCSI hard disk devices and MFM/RLL hard disks with XT interfaces. +.PP +The Linux kernel up until 2.6.12 (and probably later) doesn\'t handle the +security unlock and disable commands gracefully and will segfault and in some +cases even panic. The security commands however might indeed have been executed +by the drive. This poor kernel behaviour makes the PIO data security commands +rather useless at the moment. +.PP +Note that the "security erase" and "security disable" commands have been +implemented as two consecutive PIO data commands and will not succeed on a +locked drive because the second command will not be issued after the segfault. +See the code for hints how patch it to work around this problem. Despite the +segfault it is often still possible to run two instances of hdparm +consecutively and issue the two necessary commands that way. +.SH AUTHOR +.B hdparm +has been written by Mark Lord <mlord@pobox.com>, the original primary +developer and maintainer of the (E)IDE driver for Linux, and current contributor +to the libata subsystem, along with suggestions and patches from many netfolk. +.PP +The disable Seagate auto-powersaving code +is courtesy of Tomi Leppikangas(tomilepp@paju.oulu.fi). +.PP +Security freeze command by Benjamin Benz, 2005. +.PP +PIO data out security commands by Leonard den Ottolander, 2005. +Some other parts by Benjamin Benz and others. +.SH SEE ALSO +.B http://www.t13.org/ +Technical Committee T13 AT Attachment (ATA/ATAPI) Interface. +.PP +.B http://www.serialata.org/ +Serial ATA International Organization. +.PP +.B http://www.compactflash.org/ +CompactFlash Association. |