
デュアル モニターで nouveau が何度もすべてをフリーズした後、MacBook Pro (2010 年中盤、Fedora 24、SAMSUNG HN-M500MBB ハード ドライブ) の電源を切らなければなりませんでした。IO を大量に消費する作業は何もしていませんでした。ただ、evince でスライドを表示しているだけでした。
再起動すると、不良セクタに関するエラーが吐き出され、次のようなエラーでハングアップし始めます。
blk_update_request: I/O error, dev sda, sector 969158669
ata1: EH complete
ata1.00: exception Emask 0x0 SAct 0x3c000000 SErr 0x0 action 0x6 frozen
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:d0:08:30:c4/00:00:39:00:00/40 tag 26 ncq dma 4096 in
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/28:d8:c8:2f:c4/00:00:39:00:00/40 tag 27 ncq dma 20480 in
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/38:e0:88:2f:c4/00:00:39:00:00/40 tag 28 ncq dma 28672 in
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/78:e8:08:2f:c4/00:00:39:00:00/40 tag 29 ncq dma 61440 in
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1: hard resetting link
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: configured for UDMA/133
ata1.00: device reported invalid CHS sector 0
時々
sd 0:0:0:0: [sda] tag#19 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:0:0: [sda] tag#19 Sense Key : Medium Error [current]
sd 0:0:0:0: [sda] tag#19 Add. Sense: Unrecovered read error - auto reallocate failed
sd 0:0:0:0: [sda] tag#19 CDB: Read(10) 28 00 39 c4 30 08 00 00 08 00
blk_update_request: I/O error, dev sda, sector 969158669
Buffer I/O error on dev dm-2, logical block 1, async page read
そして
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1.00: irq_stat 0x40000001
ata1.00: failed command: READ SECTOR(S) EXT
ata1.00: cmd 24/00:01:0d:30:c4/00:00:39:00:00/e0 tag 6 pio 512 in
res 51/40:01:0d:30:c4/00:00:39:00:00/e0 Emask 0x9 (media error)
ata1.00: status: { DRDY ERR }
ata1.00: error: { UNC }
以下は、hdparm を使用して不良セクターの後のいくつかのセクターを読み取ろうとした後の smartctl 出力です。
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 100 100 051 Pre-fail Always - 469
2 Throughput_Performance 0x0026 252 252 000 Old_age Always - 0
3 Spin_Up_Time 0x0023 086 086 025 Pre-fail Always - 4463
4 Start_Stop_Count 0x0032 092 092 000 Old_age Always - 8099
5 Reallocated_Sector_Ct 0x0033 252 252 010 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 252 252 051 Old_age Always - 0
8 Seek_Time_Performance 0x0024 252 252 015 Old_age Offline - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 19382
10 Spin_Retry_Count 0x0032 252 252 051 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 980
12 Power_Cycle_Count 0x0032 092 092 000 Old_age Always - 8214
181 Program_Fail_Cnt_Total 0x0022 097 097 000 Old_age Always - 66246139
191 G-Sense_Error_Rate 0x0022 100 100 000 Old_age Always - 3820
192 Power-Off_Retract_Count 0x0022 100 100 000 Old_age Always - 20
194 Temperature_Celsius 0x0002 064 051 000 Old_age Always - 32 (Min/Max 15/49)
195 Hardware_ECC_Recovered 0x003a 100 100 000 Old_age Always - 0
196 Reallocated_Event_Count 0x0032 252 252 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 15
198 Offline_Uncorrectable 0x0030 252 252 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0036 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x002a 100 100 000 Old_age Always - 255
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 980
225 Load_Cycle_Count 0x0032 001 001 000 Old_age Always - 1583719
保留中のセクターに注意してください... 短いセルフテストと長いセルフテストの両方で、カーネルと同じ不良セクターが報告されます。
Hdparmは奇妙なことにすべてを正常に読み取ることができますが、(下の編集を参照)は、ぶら下がって言う
reading sector 969158769: SG_IO: bad/missing sense data, sb[]: 70 00 03 00 00 00 00 0a 00 51 e0 01 11 04 00 00 a0 71 00 00 00 00 00 00 00 00 00 00 00 00 00 00
succeeded
そして、最初の不良セクタの後、約 200 セクタについてこのエラーが報告されています。hdparm --write-sector を使用していくつかのセクタを書き換えたところ、エラーはなくなりました。現在、バックアップを実行して新しいドライブを注文しましたが、その間に何が起こったのかを理解し、このセクタを修復してみたいと思います。
いくつかの不良セクターを書き換えた後、再割り当てされたセクター数が増加していないことに注意してください。これが全体の奇妙さを増しています。書き換え後、何も起こらなかったかのように正常に読み取りおよび書き込みが行われますが、ファームウェアはそれらを不良セクターとして再マップしないようです。
何かアイデアはありますか? ドライブを捨てたほうがいいでしょうか?
PS. 別のパーティション内の OSX はまだ問題なく動作します。
編集: 余波
バックアップ後、ハードドライブで少し実験を始めました。
最初の不良セクタの後に、同じ問題のあるセクタが約 150 個ありました。 と を使用して読み取ろうとしましたdd
がdd_rescue
、失敗しました。
hdparm --read-sector
は機能しましたが (上記のセンス エラーあり)、一貫性のないデータが返されました (読み取りごとに異なる)。
hdparm --write-sector
問題は解決したようだったので、失敗したセクタをすべて書き直しました。
現在、smartctl
保留中のセクターは 0、再割り当ては 0 と報告され、短いセルフテストと長いセルフテストの両方がエラーなしで完了しました。Linux は正常に起動し、すべてのエラーが消えました。
削除した約 70kb については少し心配です。LVM では、そこに実際に何が含まれていたのか理解するのは少し難しいです。その領域の周りの数 MB をダンプしましたが、すべてゼロだったので、空き領域かスワップのいずれかであると確信しています。
まだ祝うには早すぎますが、結果は有望に見えます。何か新しいことが起こったら質問を更新します。