这个问题与其他一些有同样错误的问题类似,但有一个主要区别:
当我尝试让 Ubuntu 进入休眠状态时,出现了许多与 I/O 相关的错误;
bkl_update_request: I/O error, dev sde, sector xxxxxxxxx (this is repeated for a few sectors)
Buffer I/O error on device sde6, logical block xxxxxxxxx
Aborting jounal on device sde6-8
Buffer I/O error on device sde6, logical block xxxxxxxxx, lost sync page write
在其他显示类似错误的帖子中,响应总是“您的硬盘驱动器出现故障”。但是,我已经安装了 gsmartcontrol 并运行了短期和长期测试,它们报告没有错误(除非我遗漏或误读了某些内容)。
从日志中提取:
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 097 097 000 Old_age Always - 14756
12 Power_Cycle_Count 0x0032 098 098 000 Old_age Always - 1699
177 Wear_Leveling_Count 0x0013 096 096 000 Pre-fail Always - 43
179 Used_Rsvd_Blk_Cnt_Tot 0x0013 100 100 010 Pre-fail Always - 0
181 Program_Fail_Cnt_Total 0x0032 100 100 010 Old_age Always - 0
182 Erase_Fail_Count_Total 0x0032 100 100 010 Old_age Always - 0
183 Runtime_Bad_Block 0x0013 100 100 010 Pre-fail Always - 0
187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0032 069 054 000 Old_age Always - 31
195 ECC_Error_Rate 0x001a 200 200 000 Old_age Always - 0
199 CRC_Error_Count 0x003e 100 100 000 Old_age Always - 0
235 POR_Recovery_Count 0x0012 099 099 000 Old_age Always - 468
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 28759429511
SMART Error Log Version: 1
No Errors Logged
完整日志在此 -http://pastie.org/10974743
我假设(可能不正确,因为我的交换分区在 sde5 上,而错误似乎引用了 sde6)问题可能出在交换分区上。因此,我在另一个磁盘上创建了一个交换文件,在我的 fstab 中设置了该文件,并禁用了我当前的交换分区。但我得到了和以前一样的错误。
我正在运行 Ubuntu 16.04 LTS,内核已升级到 4.8.1-040801-generic(不确定这是否重要,但这是我安装后所做的主要更改之一)。我的交换空间小于内存,但过去只要交换空间大于正在使用的内存量,休眠就从来都不是问题。我有 32GB 的内存,16GB 的交换空间。
在我看来,问题不是磁盘引起的,因为智能数据没有报告任何错误。此错误仅在尝试休眠时发生(这是我真正需要的)。所以我猜这是由其他原因引起的。我该如何进一步调试?有什么建议吗?谢谢。
答案1
事实证明,这个问题与升级的内核有关。使用 4.4 版内核时,休眠功能可以正常工作,但如果我升级到较新的版本之一,则会出现上面显示的 I/O 错误。降级回 4.4 版可解决此问题。