原始讀取 USB 大容量儲存或 SCSI

原始讀取 USB 大容量儲存或 SCSI

妻子的 USB 硬碟有一個小問題,資料夾拒絕開啟(NTFS 檔案系統)。我已經能夠使用 Linux 對驅動器進行映像,但只針對一個扇區(扇區為 4096 位元組)。讀取該磁區失敗:

sudo dd if=/dev/sdb of=區塊跳過=21647245 bs=4096 計數=1
dd:讀取“/dev/sdb”時發生錯誤:輸入/輸出錯誤
0+0 筆記錄
0+0記錄輸出
複製 0 位元組 (0 B),22.9317 秒,0.0 kB/秒

用空位元組替換該磁區會導致與 Windows 中相同的症狀,因此該磁區似乎與有問題的目錄有關。

當訪問所述扇區時,dmesg 輸出顯示:

[20381.842495] sd 7:0:0:0: [sdb] 未處理的感知代碼
[20381.842506] sd 7:0:0:0: [sdb]  
[20381.842510] 結果:hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
[20381.842514] sd 7:0:0:0: [sdb]  
[20381.842517] Sense Key:硬體錯誤 [目前]
[20381.842531] sd 7:0:0:0: [sdb]  
[20381.842535]新增。 Sense:沒有額外的Sense訊息
[20381.842539] sd 7:0:0:0: [sdb] CDB:
[20381.842542]讀取(10):28 00 01 4a 4f 8d 00 00 01 00
[20381.842557] end_request:I/O 錯誤,dev sdb,磁區 173177960
[20381.842572] 裝置 sdb 上的緩衝區 I/O 錯誤,邏輯區塊 21647245

有沒有辦法讀取這個原始扇區,而不進行 CRC 檢查或其他任何實際嘗試恢復一些損壞的資料?

我打開外殼:硬碟是原生USB,沒有USB轉SATA轉換。

編輯: 嘗試過ddrescue,但也無法恢復壞扇區。讀取壞扇區周圍的 2Gigs,讓磁頭在尋道後穩定下來:

sudo ddrescue -s 2Gi -o 0 -i 87593373696 /dev/sdb blkk
GNU 地址救援 1.19
按 Ctrl-C 中斷
已救援:2147 MB​​,錯誤大小:4096 B,當前速率:0 B/s
   ipos:88667 MB,錯誤:1,平均速率:8488 kB/s
   opos:1073 MB,運行時間:4.21 m,成功讀取:1.06 m 前
完成的

向後讀取(-R 標誌)也失敗。

編輯2:我計劃的第二步是使用取證來嘗試取得遺失的文件。我首先開始手動查看 MFT,但這很快就變得非常非常乏味。所以我的清單上有以下工具:

  1. 偵探包
  2. NTFS-3G
  3. 解剖刀
  4. scrounge-ntfs

Sleuthkit 不會做任何有用的事情,很早就退出並抱怨元資料結構中的錯誤。

使用 Ntfs-3g(現在為 Tuxera),可以使用偵錯輸出掛載映像:

sudo mount -o 循環,ro,偏移=258048,調試 image2 ./mnt -t ntfs-3g

嘗試進入錯誤目錄會觸發錯誤:

目錄 inode 101874 的索引緩衝區 (VCN 0x0) 的大小 (24) 與目錄指定的大小 (4096) 不同。

在 DuckduckGo 中找到該錯誤導致我看到以下帖子: http://www.tuxera.com/forum/viewtopic.php?f=3&t=27054 事實證明,Tuxera / ntfs-3g 的人實際上鼓勵使用微軟的 CHKDSK 來恢復 NTFS 錯誤

在磁碟上執行 chkdsk 是我計劃的第三步也是最後一步,但應該更早嘗試,因為知道它可以在磁碟映像上運行,例如使用 OSFMount (http://www.osforensics.com/tools/mount-disk-images.html)。

大多數遺失的檔案和目錄(如果不是全部)已透過已安裝的磁碟映像上的 chkdsk /f 還原。一百多個錯誤(其中大部分是孤立文件)已修復。

編輯3:我接受普蘇西的回答。儘管沒有被證明是不可能的,但嘗試讀取壞扇區無疑是從輕度損壞的硬碟中恢復資料的最不確定和最困難的途徑。

答案1

不,這是不可能的。有一個 SCSI 命令可以執行此操作,但您仍然只會得到垃圾,而且消費級驅動器不支援它,尤其是 USB。那個部門裡的一切都消失了。

相關內容