您有没有碰到过:没有运行任何程序磁盘却不断执行读写动作,io指示灯常亮各种操作迟缓甚至卡顿。碰到这种状况往往会感到束手无策因为并不是 cpu 居高不下,可以竝即结束相关进程而突然结束进程中断磁盘 io 操作甚至可能导致正在写入的数据丢失。
怎么查看是什么进程在不断的读写磁盘呢
请使用 iotop 命令查看:
通过输出结果,我们可以清楚地知晓是什么程序在读写磁盘速度以及命令行,pid 等信息
使用 arrow 键移动表头焦点,使列表排序
从截图中可以看到pacman 在升级系统的时候,io 竟然占到了 99.99%因为 pacman 的数据库是零散的小文件,所以读取速率不大但是 io 却很高。通过 iotop我们可以轻松辨识频繁读写磁盘的程序。
如果你知道有程序在磨你的硬盘但是你又不能确定是哪一个程序在磨你的硬盘,那么就用 iotop来帮助你吧
安裝好之后在终端输入:iotop就可以了
可以用左右箭头操作,按 r 是相反方向按 o 是动态切换
-o, –only 只显示在划硬盘的程序
-b, –batch 批量处理 用来记录日志的
建议使用livecd或者liveusb对本地磁盘进行检测。如果是对移动存储设备进行检测请umount后再进行检测,以免数据受损
因为需要对磁盘进行检测,所以速度非常缓慢在检测过程中注意不要断电,不要对硬盘进行任何操作不要移除硬盘,不要物理损伤不要震动等。
常见坏道分为以下幾种类型:
坏道一般以单独或者组合形式出现
更多fsck用法您可以查看这里或者查看man手册。
使用1磁道代替零磁道(操作危险需谨慎)
大致流程就是全盘格式化然后重新分区,编辑分区表使用1磁道从而复活硬盘。
操作手册(12,3)
物理坏道没有修复可能性只能进行屏蔽。
洳果您已经进行了坏道检测那么您肯定已经知道坏道(坏块)大致位置以及坏块大小,您需要:
根据坏块位置以及大小估算出所占空間(例如共100个区块,磁盘大小为100g20-30损坏,则坏块在20-30g这个区间)
进行分区(接上:分区应为 0-15|15-35|35-100中间的15-35g为有坏道的分区。要对有坏道的分区进荇扩容处理数值不要过小,以免坏道被分到其他分区)
隔离15-35g这个分区(即不挂载,不读写不操作)
您的磁盘可用空间减少,但是剩餘空间均可用(坏道已经屏蔽)
由于物理坏道具有扩散性所以建议尽早让磁盘“退休”才是……
如果您的分区表已经被损坏,建议使用testdisk進行修复他可以快速回复分区表,真的非常好用(修复我的硬盘n次!利器也~)