ntfsfix 顯示磁碟機上沒有錯誤但頻繁出現 IO 錯誤

ntfsfix 顯示磁碟機上沒有錯誤但頻繁出現 IO 錯誤

我有一個 NTFS 磁碟作為資料磁碟機安裝到 Ubuntu 系統 (19.10)。

在過去的幾天裡,驅動器變得非常緩慢且不可靠。

日誌(journalctl -r)顯示:

Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 54 to 53
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 46 to 47
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 188 Command_Timeout changed from 100 to 99
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 183 Runtime_Bad_Block changed from 97 to 96
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Offline uncorrectable sectors (changed +8)
...
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Currently unreadable (pending) sectors (changed +8)

但是ntfsfix報告磁碟沒問題(我認為)

 sudo ntfsfix -bd /dev/sdb1
 Mounting volume... OK
 Processing of $MFT and $MFTMirr completed successfully.
 Checking the alternate boot sector... OK
 NTFS volume version is 3.1.
 Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK
 NTFS partition /dev/sdb1 was processed successfully.
  • 還有其他方法檢查該磁碟嗎?

根據評論的建議一些smartctl輸出。

smartctl -data -A /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.3.0-23-generic] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

[=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   079   078   006    Pre-fail  Always       -       168133076
  3 Spin_Up_Time            0x0003   094   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1209
  5 Reallocated_Sector_Ct   0x0033   093   093   036    Pre-fail  Always       -       9840
  7 Seek_Error_Rate         0x000f   074   060   030    Pre-fail  Always       -       8648101443
  9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       24172
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -       1237
183 Runtime_Bad_Block       0x0032   096   096   000    Old_age   Always       -       4
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       12019
188 Command_Timeout         0x0032   099   098   000    Old_age   Always       -       11 26 26
189 High_Fly_Writes         0x003a   097   097   000    Old_age   Always       -       3
190 Airflow_Temperature_Cel 0x0022   047   042   045    Old_age   Always   In_the_past 53 (Min/Max 47/58 #91)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1217
193 Load_Cycle_Count        0x0032   099   099   000    Old_age   Always       -       3392
194 Temperature_Celsius     0x0022   053   058   000    Old_age   Always       -       53 (0 18 0 0 0)
197 Current_Pending_Sector  0x0012   001   001   000    Old_age   Always       -       41344
198 Offline_Uncorrectable   0x0010   001   001   000    Old_age   Offline      -       41344
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       23784h+22m+27.579s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       16322055947757
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       108452827544617

我不知道如何準確地解釋它,但看起來像是一些加熱問題?

答案1

建議更換驅動器。

  1. Smart 05表示要用多少個備用磁區來替換壞磁區。 RAW值9840表示9840個扇區,即4920KB。 93 是標準化值,表示您仍有 93% 的備用分割器。

  2. 然而,同時,197 表示有 41344 個待處理扇區。掛起的磁區並不一定意味著這些磁區是壞的,而是硬碟無法完全處理它。 (有時是因為在電源中斷之前沒有刷新)在下一次寫入時,它將返回到良好的扇區狀態,或者轉到 05 並由備用扇區替換。

    不管怎樣,41344 已經是 20MB 左右了。這已經太多了,意味著你的驅動器不穩定。

答案2

由於您已將資料備份到雲端,我們可以將磁碟機準備到壞區塊,這樣...

  • 用於gparted建立新的 GPT 分割區表(這將擦除驅動器

  • 用於gparted建立使用所有未分配空間的單一 ext4 分割區(磁碟壞區塊後您始終可以重新建立 NTFS 分割區)


Note: do NOT abort a bad block scan!

Note: do NOT bad block a SSD

Note: backup your important files FIRST!

Note: this will take many hours

Note: you may have a pending HDD failure

啟動至 Ubuntu Live DVD/USB。

terminal...

sudo fdisk -l# 辨識所有「Linux 檔案系統」分割區

注意:確保正確識別哪個驅動器是壞塊...sdb1/等。

sudo e2fsck -fcky /dev/sdXX# 唯讀測試

或者

sudo e2fsck -fccky /dev/sdXX# 無損讀/寫入測試(受到推崇的)

-k 很重要,因為它保存先前的壞塊表,並將任何新的壞塊添加到該表中。如果沒有 -k,您將丟失所有先前的壞塊資訊。

-fccky 參數...

   -f     Force checking even if the file system seems clean.

   -c     This option causes e2fsck to use badblocks(8) program  to  do  a
          read-only  scan  of  the device in order to find any bad blocks.
          If any bad blocks are found, they are added  to  the  bad  block
          inode  to  prevent them from being allocated to a file or direc‐
          tory.  If this option is specified twice,  then  the  bad  block
          scan will be done using a non-destructive read-write test.

   -k     When combined with the -c option, any existing bad blocks in the
          bad blocks list are preserved, and any new bad blocks  found  by
          running  badblocks(8)  will  be added to the existing bad blocks
          list.

   -y     Assume  an answer of `yes' to all questions; allows e2fsck to be
          used non-interactively.  This option may not be specified at the
          same time as the -n or -p options.

注意:如果壞塊無法產生可用的驅動器,請更換它。

相關內容