【linux命令讲解大全】125.硬盘维护与调优:fsck和hdparm命令的使用

2024-03-02 14:03:54 浏览数 (2)

fsck

检查并且试图修复文件系统中的错误

补充说明

fsck命令被用于检查并且试图修复文件系统中的错误。当文件系统发生错误时,可使用fsck指令尝试修复。

语法

代码语言:javascript复制
fsck [选项] [参数]

选项

  • -a:自动修复文件系统,不询问任何问题;
  • -A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
  • -N:不执行指令,仅列出实际执行会进行的动作;
  • -P:当搭配-A参数使用时,则会同时检查所有的文件系统;
  • -r:采用互动模式,在执行修复时询问问题,让用户确认并决定处理方式;
  • -R:当搭配-A参数使用时,则会略过/目录的文件系统不予检查;
  • -s:依序执行检查作业,而非同时执行;
  • -t <文件系统类型>:指定要检查的文件系统类型;
  • -T:执行fsck指令时,不显示标题信息;
  • -V:显示指令执行过程。

参数

  • 文件系统:指定要查看信息的文件系统。

实例

Linux的文件系统损坏会导致Linux不正常关机。当出错时,如果系统告诉你是哪一块硬盘的分区有问题,比如是/dev/hda2,可以使用以下命令去对付它:

代码语言:javascript复制
fsck -y /dev/hda2

修复完成后,使用reboot命令重启系统。

如果不知道出了问题的位置,在随后的多个确认对话框中输入y即可:

代码语言:javascript复制
fsck

修复完成后,同样使用reboot命令重启系统。

hdparm

显示与设定硬盘的参数

补充说明

hdparm命令提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数。

语法

代码语言:javascript复制
hdparm [选项] [参数]

选项

  • -a <快取分区>:设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定;
  • -A <0或1>:启动或关闭读取文件时的快取功能;
  • -c <I/O模式>:设定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模式>:设定硬盘的PIO模式;
  • -P <磁区数>:设定硬盘内部快取的分区数;
  • -q:在执行后续的参数时,不在屏幕上显示任何信息;
  • -r <0或1>:设定硬盘的读写模式;
  • -S <时间>:设定硬盘进入省电模式前的等待时间;
  • -t:评估硬盘的读取效率;
  • -T:评估硬盘快取的读取效率;
  • -u <0或1>:在硬盘存取时,允许其他中断要求同时执行;
  • -v:显示硬盘的相关设定;
  • -w <0或1>:设定硬盘的写入快取;
  • -X <传输模式>:设定硬盘的传输模式;
  • -y:使IDE硬盘进入省电模式;
  • -Y:使IDE硬盘进入睡眠模式;
  • -Z:关闭某些Seagate硬盘的自动省电功能。

参数

  • 设备文件:指定id驱动对应的设备文件名。

实例

显示硬盘的相关设置:

代码语言:javascript复制
hdparm /dev/sda
代码语言:javascript复制
/dev/sda:
 IO_support = 0 (default 16-bit)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 19457 [柱面数] / 255 [磁头数] / 63 [扇区数], sectors = 312581808 [总扇区数], start = 0 [起始扇区数]

显示硬盘的柱面、磁头、扇区数:

代码语言:javascript复制
hdparm -g /dev/sda
代码语言:javascript复制
/dev/sda:
 geometry = 19457 [柱面数] / 255 [磁头数] / 63 [扇区数], sectors = 312581808 [总扇区数], start = 0 [起始扇区数]

测试硬盘的读取速度:

代码语言:javascript复制
hdparm -T /dev/sda
代码语言:javascript复制
/dev/sda:
 Timing cached reads: 4684 MB in 2.00 seconds = 2342.92 MB/sec

测试硬盘缓存的读取速度:

代码语言:javascript复制
hdparm -T /dev/xvda
代码语言:javascript复制
/dev/xvda:
Timing cached reads: 11154 MB in 1.98 seconds = 5633.44 MB/sec

检测硬盘的电源管理模式:

代码语言:javascript复制
hdparm -C /dev/sda
代码语言:javascript复制
/dev/sda:
 drive state is: standby [省电模式]

查询并设置硬盘多重扇区存取的扇区数,以增进硬盘的存取效率:

代码语言:javascript复制
hdparm -m /dev/sda
hdparm -m    # 参数值为整数值如8 /dev/sda

附:硬盘坏道修复方法

检查:smartctl -l selftest /dev/sda 卸载:umount /dev/sda* 修复:badblocks /dev/sda

0 人点赞