如何修復硬碟而不遺失檔案?

如何修復硬碟而不遺失檔案?

簡而言之。我在訪問硬碟上的文件時遇到問題。我還認為這不是硬體問題(更多的是“軟體級別”)。我想知道是否有方法(Linux 命令、Linux 工具)可以幫助監控硬碟並偵測問題。以下是對所發生事件的更詳細描述。

我有一個 Verbatim 硬碟,裡面有很多檔案。今天嘗試在Ubuntu下使用。在檔案瀏覽器中,我看到了 Verbatim 資料夾並嘗試開啟它。結果我看到一個時鐘表明該進程正在運行並且需要更多時間。我權衡了一分鐘左右,看到了相同的圖片(仍在運行,文件夾未打開)並嘗試在終端中執行相同的操作。我曾經cd進入 Verbatim 資料夾,然後在我執行的資料夾中ls -ltr。結果我什麼也沒得到。我嘗試通過取消命令Ctrl C,但沒有成功,所以我只是關閉了終端。然後在面板上我嘗試ejectunmount設備(我不記得它是如何稱呼的)並且Ubuntu寫給我設備正忙於執行ls(或類似的)命令。不管怎樣,我還是斷開了設備的連接。

然後我嘗試使用另一台在 Windows 下運行的電腦存取硬碟上的檔案。 Windows 識別了該設備,但告訴我偵測到錯誤,建議進行掃描(但是,仍然可以選擇在不掃描的情況下顯示文件)。我選擇進行掃描。花了太長時間沒有顯示任何進展,我已經取消了掃描。

然後我斷開了設備並再次插入。仍然可以選擇掃描。可以使用兩個選項執行掃描:(1) 偵測錯誤並自動修正;(2) 偵測遺失的檔案並嘗試還原它們。預設情況下選取第一個選項(我以這種方式運行的上一個(取消的)掃描)。這次我還檢查了第二個選項(因此兩個選項都已檢查)並再次開始掃描。同樣,它太慢了,沒有顯示任何進展,所以我再次取消了它。

然後我開始掃描並選中第一個選項(查找錯誤並自動更正它們)並給它足夠的時間。大約20-30分鐘後就準備好了。結果我收到一條訊息,指出某些資料夾無法存取並已永久刪除。之後我就可以使用該設備(輸入資料夾和子資料夾並查看文件)。

然後我又在Ubuntu下嘗試了該設備。 Ubuntu 大約花了一分鐘來識別設備(太長了)。然後我遇到了同樣的問題(我看不到硬碟上的資料夾)。這意味著我看到了硬碟資料夾,我可以進入該資料夾,但我無法看到其中有哪些檔案。

然後我將裝置連接到 Windows 機器,但它無法識別該裝置(它根本看不到它)。我想在 Ubuntu 上我進行了卸載(或類似的操作),並且在此我已經阻止了硬碟(這樣 Windows 機器就看不到它)。但是,我不確定這個假設。可能該設備已損壞。

有人可以幫我解決這個問題嗎,因為我的裝置上有過去 7 年的所有家庭照片。

答案1

首先,您應該確定該磁碟機上使用的檔案系統的類型。它很可能是 FAT32。您可以使用 fdisk 命令來執行此操作:

fdisk -l

這將返回設備列表,並且在每一行中都會有一個“類型”,它將顯示檔案系統:

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 219353087 219351040 104.6G 83 Linux
/dev/sda2       219355134 234440703  15085570   7.2G  5 Extended
/dev/sda5       219355136 234440703  15085568   7.2G 82 Linux swap / Solaris

如果您有另一個等於或大於故障驅動器的可用驅動器,根據我的經驗,嘗試恢復的最簡單方法是使用名為 dd-rescue 的工具。更多資訊可以在這裡找到:dd-救援

您也可以手動使用 dd 將整個磁碟機的映像製作成檔案。如果硬碟很大,這可能需要很長時間。您還需要確保計劃建立備份映像的磁碟上有足夠的磁碟空間,並確保使用的檔案系統支援足夠大的檔案以包含整個磁碟機的大小。

以下是如何手動完成此操作的範例:

dd bs=4k if=/dev/sda of=/path/to/backup.img conv=noerror,sync 

在上面的指令中,/dev/sda 是損壞的光碟,backup.img 是將包含整個光碟內容作為備份的檔案。有關此命令的更多資訊可以在此處找到:

使用 dd 從死硬碟恢復數據

最好使用較小的區塊大小參數,這樣在遇到錯誤時就有缺少較少資料的風險。例如“bs=1024”,但這會導致操作花費更長的時間。

除非您的硬碟啟用了 SMART 等功能,否則很難確定硬碟是否確實發生故障。您的光碟可能沒有故障,而您的問題是由於檔案系統損壞造成的。

不幸的是,除了通常由 BIOS 控制的 SMART 等功能之外,我不知道有什麼好方法可以實際確定硬碟的損壞程度。

一旦確定了該光碟上使用的檔案系統類型,您就可以像以前在 Linux 中的 Windows 上一樣,嘗試使用 fsck 命令修復檔案系統:(確保您使用的 fsck 與您的特定檔案系統類型相符。

fsck.vfat /dev/sdb1

應該注意的是,Linux 並不總是擅長修復 ntfs 或 fat 分割區,因此在驗證備份之前不應嘗試此操作。事實上,我建議您對備份映像執行嘗試修復。可以在此處找到對備份檔案執行 fsck 的說明:安裝用 dd 製作的原始分區文件

根據檔案系統的安裝方式,ls 指令如果正在更改檔案或目錄元數據,確實可能會損壞檔案系統;特別是透過更新訪問時間。在寫入任何內容時拔出磁碟機將導致檔案系統出現錯誤,特別是在沒有良好日誌功能的檔案系統(例如 FAT32)中,這些錯誤通常可以使用 fsck 來修正。

對於您處於如此不穩定的境地,我感到非常抱歉,我希望您能夠恢復這些文件。

答案2

返回您的 Linux 系統。

打開根終端,然後輸入tail -f /var/log/kern.log,最大化此視窗。

連接您的硬碟。

如果您的驅動器有硬體問題,它將顯示在此。如果 USB 連線出現問題,您將收到「無法列舉裝置」或類似訊息。如果驅動器有媒體問題,您將收到有關壞塊的訊息。

如果出現 USB 連接錯誤,則可能是硬碟機外殼中的 USB 連接線、連接器或 USB 轉 SATA 轉接器有問題(插針斷裂、連接器從主機板上脫落等)

假設您的外接硬碟型號的 USB 板上沒有加密功能,您可以從外殼中取出該驅動器,直接將其連接到 PC,然後像使用任何內建驅動器一樣使用它。如果它確實有加密功能- 您確實需要讓該板正常工作,並且應該嘗試與擅長電子/焊接的人聯繫以更換USB 連接器或將電纜直接焊接到板上的焊盤(希望不會被扯掉) )。硬碟仍然可以在另一個系統上工作,但您將無法取得資料。

位於外殼內部的 USB 板範例:

在此輸入影像描述

排除任何硬體問題後,您可以嘗試執行 Testdisk 以查看它可以恢復什麼。您可以apt-get在 Ubuntu 下的根終端機上安裝它,或者下載並運行Windows 版本。準備好另一個驅動器來複製文件,並且下次備份資料。

祝你好運。

答案3

沒有辦法在不遺失檔案的風險的情況下修復故障的硬碟。根據驅動器上的資料對您的價值多少,專業的資料恢復服務可能是您的最佳選擇。我相信這些服務的起價約為 500 美元,之後價格會大幅上漲,具體取決於恢復資料所需的工作量。即使最好的資料恢復服務也可能無法恢復您的所有數據,但他們比您自己做的任何事情都有更好的機會。

我建議你去探索希捷恢復服務了解更多。

我確信這不是您想聽到的,但是專業的資料恢復可以打開驅動器並執行其他您自己無法完成的程式。資料復原需要專業知識、專用軟體和工具、硬碟零件,並且必須在無塵室中完成。這是不可能在家做的。

答案4

您是否嘗試過手動使用 Windows 進行完整磁碟檢查?

如果您開啟 cmd 並輸入 chkdsk /?,它會顯示所有可能的選項。

對於 NTFS 分割區,您可以執行 chkdsk /F /R /B /X,它可以執行最完整的檢查。對於 FAT32,省略 /B。

請注意,這需要花費大量時間,具體取決於您的硬碟。但這可能是挽救一些數據的可能性。

相關內容