Linux-Mint

我的 USB 硬碟似乎無法訪問

  • June 23, 2017

所以,我有一個 USB 硬碟驅動器,它可以自動掛載,並通過快照用於每小時、每天、每週、每月的全盤快照。

它似乎失敗了。如果可以恢復,我對嘗試完全重新格式化持懷疑態度,因為那會使我失去所有舊備份。


語境

作業系統是 Linux Mint 18.1。驅動器是 WD MyPassport。為此使用 USB 驅動器的唯一原因是我已經擁有它 - 我不傾向於拔掉它。

我最近更改了插入的電源板,這是最近唯一可能導致斷電的事件 - 但是,當我這樣做時電腦已關閉。之後我在啟動時遇到了一些問題,搜尋似乎表明可以通過短接主機板上的 CLR CMOS 引腳來重置 BIOS 來解決問題。因此,不知何故,顯然可能存在電源問題。之後,我繼續無法通過緊急恢復終端啟動,直到我從fstab.

嘗試診斷

(所有帶有 的命令sudo

fdisk -l /dev/sdb生產fdisk: cannot open /dev/sdb: Input/output error

blkid /dev/sdb什麼都不輸出。

fsck /dev/sdb輸出

fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdb
Could this be a zero-length partition?

ls /dev列表sdb

嘗試通過 UUID 掛載它會產生mount: can't find UUID=83dbb817-b194-4c83-bb3f-9b67163e1c5c

嘗試在不註釋驅動器的情況下啟動電腦fstab會導致綠點啟動飛濺持續很長時間,最終變成橙色並產生各種錯誤消息。我轉錄的唯一一個以blk_update_request: critical medium error.

當我在它完成關閉之前關閉時,我得到以下終端螢幕:

Linux Mint 18.1 Serena dt tty 1
dt login: [ 5840.759433] blk_update_request: critical medium error, dev sdb, sector 0
[ 5840.759523] Buffer I/O error on dev sdb, logical block 0, async page read

這兩個錯誤消息重複(慢慢地,每個之間的顯著延遲)多次,時間戳增加,直到機器最終關閉。第二次顯示消息之前的差距約為。17 秒。沒有進一步的照片,但它可能又重複了六次。這些也大致是在嘗試啟動時看到的錯誤。

我剛剛注意到驅動器上的小燈一直閃爍,並且在電腦關閉時驅動器一直在輕柔地呼呼。我不記得當它正常工作時是否是這種情況。

試過smartctl

~ $ sudo smartctl -i -A /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-56-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Elements / My Passport (USB, AF)
Device Model:     WDC WD20NMVW-11AV3S4
Serial Number:    WD-WX11E23AAA87
LU WWN Device Id: 5 0014ee 2b36180eb
Firmware Version: 01.01A01
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Wed Jun 21 22:50:33 2017 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       207
 3 Spin_Up_Time            0x0027   222   216   021    Pre-fail  Always       -       3900
 4 Start_Stop_Count        0x0032   099   099   000    Old_age   Always       -       1664
 5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
 7 Seek_Error_Rate         0x002e   185   185   000    Old_age   Always       -       248
 9 Power_On_Hours          0x0032   094   094   000    Old_age   Always       -       4855
10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       182
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       56
193 Load_Cycle_Count        0x0032   199   199   000    Old_age   Always       -       5196
194 Temperature_Celsius     0x0022   126   105   000    Old_age   Always       -       26
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       3
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

dmesg粘貼箱:這裡

部分答案:這是第一次嘗試訪問磁碟時的日誌消息:

[   19.614242] sd 6:0:0:0: [sdb] 3906963456 512-byte logical blocks: (2.00 TB/1.82 TiB)
[   19.614484] sd 6:0:0:0: [sdb] Write Protect is off
[   19.614485] sd 6:0:0:0: [sdb] Mode Sense: 47 00 10 08
[   19.614724] sd 6:0:0:0: [sdb] No Caching mode page found
[   19.614734] sd 6:0:0:0: [sdb] Assuming drive cache: write through

這些是驅動器初始化的正常消息。但 10 秒後(可能是超時時間跨度):

[   38.037295] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[   38.037297] sd 6:0:0:0: [sdb] tag#0 Sense Key : Medium Error [current]
[   38.037298] sd 6:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read error
[   38.037299] sd 6:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[   38.037300] blk_update_request: critical medium error, dev sdb, sector 0

所以從一開始,第一次讀取就失敗了,那次讀取似乎是針對分區表的。這意味著在最好的情況下,您在分區表所在的位置有一個壞塊。你還記得關於分區表的任何事情嗎?如果它是整個磁碟的一個分區,恢復應該很容易。

在最壞的情況下,它無法讀取任何內容,因此第一步是執行badblocks /dev/sdb並查看您得到了多少讀取錯誤。

如果它只是分區表,安全的選擇(如果數據真的很有價值)是獲得第二個硬碟,使用dd_rescueddrescue或嘗試讀取每個塊,查看讀取錯誤在哪裡(僅分區表,或更多?),在損壞的硬碟副本上創建一個新分區,看看你能恢復什麼。

更不安全的選項是只使用(MBR) 或(GPT) 創建一個新分區fdisk,具體取決於您創建分區表的方式以及您是否記得它。重新分配的扇區數為零,因此它應該有備用扇區來替換損壞的扇區。不要在分區中創建新的文件系統,這會破壞你的舊數據。以只讀方式掛載分區,看看你能得到什麼。sfdisk``sgdisk

不過,我以後不會使用此驅動器來備份您的數據。

引用自:https://unix.stackexchange.com/questions/372390