Dej*_*rum 20 64-bit 12.04 12.10
我在主硬盘上的 ext4 分区上安装的 Ubuntu 12.04 x64“新鲜”上遇到问题。当不使用时,每 5 到 10 秒 HDD 会在大约 10 秒内处于活动状态,无论打开或运行什么应用程序。我用iotop发现jbd2一直在写硬盘。硬盘的噪音让我发疯,以这种速度磁盘不会持续很长时间。在同一个硬盘上,我有 Windows 7(双启动 Grub2),一切正常,磁盘在不使用时关闭,计算机静音。其他一切都运行良好(Skype 和网络摄像头只是出现了一些小问题,但这是可以忍受的),但是担心丢失磁盘和噪音是无法忍受的,因为我每天打开电脑 10 个小时......
我尝试手动降低日志记录的频率,但到目前为止在网络上找不到任何解决方案对我有帮助,磁盘以相同的速度研磨。
这个问题的任何解决方案?如果不是,我想我会停止使用 Ubuntu,没有硬盘可以在这种使用率下持续很长时间,而且硬盘的噪音是不能容忍的......
这是硬盘驱动器活动超出正常使用并且用户没有那么多使用它的罕见情况。在我使用 Ubuntu 的这些年里,它只发生在我身上两次。有一次我通过fsck在磁盘上做一个来解决这个问题。
例如,如果您的硬盘驱动器是/dev/sdb1然后执行以下操作:
sudo fsck /dev/sdb1
Run Code Online (Sandbox Code Playgroud)
在那种情况下,它说我在没有检查的情况下启动了硬盘驱动器 200 多次。我实际上没有计算多少次,但200在我的书中很多。
无论如何,当开始检查时,在某些时候它开始发现问题并修复它们。其实很多。之后我重新启动,问题消失了。
在第二种情况下,是因为我编辑/etc/fstab并错误地将参数传递给了硬盘。解决方案是从中删除该参数。
我还不得不说,添加noatime到硬盘驱动器会减少写入操作的数量。例如,这是我在fstab文件中的硬盘:
# / was on /dev/sda2 during installation
UUID=38673e00-ecc8-4e11-85d2-58af72999e5b / ext4 noatime,errors=remount-ro 0 1
Run Code Online (Sandbox Code Playgroud)
使用noatime参数,磁盘活动较少。不过,如果使用 2.6.30 或更高版本的内核,relatime会好得多。
我对此的建议是:
fsck在出现问题的驱动器上运行。它可能会检测到许多问题,也可能不会,但是检查它可以确保信息正确并且硬盘驱动器没有文件系统问题。
在桌面上运行该disks实用程序。它显示驱动器的状态和有关它的 SMART 信息。这可以为您提供有关它的更多信息,特别是如果它有硬件问题。
键入dmesg并查看最后几行。如果每 10 秒有一些东西,它就会显示在那里。它也可以显示在cat /var/log/syslog或cat /var/log/kern.log
最后将noatime参数添加到您的fstab文件中以节省一些访问时间的写作。
如果您在没有任何活动的情况下看到大量活动,请检查是否有任何日志获得了大量更新。查看运行此命令时是否有任何文件增长...
ls -lS /var/log/*log | head
Run Code Online (Sandbox Code Playgroud)如果您的硬盘支持 SMART,您可以使用
hdparm -B 255 /dev/sdX
Run Code Online (Sandbox Code Playgroud)
其中 sdX 需要更改为有效分区。
检查您fstab的noatime.
从下面的最后一个链接,有人声称他通过强制检查分区解决了这个问题。
touch /forcecheck
Run Code Online (Sandbox Code Playgroud)
重新启动将确认您是否属于这种情况。
也看看这个话题:
这很可能是内核问题(与 Ubuntu 没有特别关系)。2010 年,Ubuntu 和 Arch 用户都遇到了同样的问题。可能值得将其作为针对您正在使用的内核的启动板上的错误发布。
我的联想/Thinkpad 遇到了这个问题,我尝试了一切,但最终我发现它是东芝驱动器。东芝驱动器的停车选项存在问题,它会变得混乱并不断尝试停车驱动器,这就是您听到的噪音。
http://disablehddapm.blogspot.com.au/2011/12/disabling-hard-disk-drive-advanced.html
解决方案是禁用电源管理,但这会缩短电池寿命。这适用于我的驱动器,但由于您没有告诉我们您拥有什么驱动器,因此该解决方案可能不起作用并且需要不同的参数集。
小智 -2
/etc/fstab在 HDD 上的文件系统的安装选项末尾添加文件以下字符串:
,commit=600
例如:
UUID=cc614fb7-fbdc-4b6d-af3c-a3fda4f699a0 / ext4 defaults,commit=600 0 2
Run Code Online (Sandbox Code Playgroud)
重新启动并享受
man mount说:
commit=nrsec 每 nrsec 秒同步所有数据和元数据。默认值为 5 秒。零表示默认。