HDD 出現 DRDY 錯誤

HDD 出現 DRDY 錯誤

突然間,我的筆記型電腦運行 linux 時開始出現 DRDY ERR 錯誤..一些訊息看起來像...

    ata1:00: status: { DRDY ERR }
    ata1.00: error {UNC }
    ata1:00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
    ata1:00: BMDMA stat 0x25
    ata1:00: failed command: READ DMA

最後它讓我進入命令提示符,要求我輸入運行級別,然後

    INIT: no more processes left in this runlevel

由於懷疑 HDD 崩潰,我將其取出並在另一台 PC 上用作外部 USB HDD 驅動器,並且我能夠安裝並查看其中的所有分割區和檔案。所以我認為光碟沒問題。

[編輯/更新]

我還可以透過 Linux 的 USB 隨身碟啟動筆記型電腦,甚至可以查看磁碟上的所有分割區並存取它們。

還取出硬碟並將其放入外殼中並嘗試啟動到同一台筆記型電腦,但出現了不同的錯誤

    end_request: critical target error, dev sda, sector 32839936
    EXT4_fs error: (device sda5): ext4_find_entry:935: inode #393217: comm init: reading directory lblock 0

    INIT: No inittab file found
    Enter runlevel:

所以我猜,硬碟可以作為儲存裝置訪問,但不能啟動。此硬碟上的分區方案如下,如果有幫助的話..(GPT 方案)

    partition   FileSystem  size    flags
    ---------   ----------- ----    -----
    /dev/sda1   unknown     2.00MB  bios_grub
    /dev/sda2   ext2        128MB           # was supposed to be common boot partition for chain loading
    /dev/sda3   swap        1.5GB
    /dev/sda4   ext4        8GB         # Linux 1 (somehow, Grub does not show this in the menu, cannot boot into)
    /dev/sda5   ext4        8GB         # Linux 2 (I could only boot into this one from Grub.)
    /dev/sda6   ext4        94GB        # DATA
    unallocated _           1MB

我已經安裝了一個又一個 Linux,實際上想在 /dev/sda2 中安裝 Grub 並鏈加載 Linux 1 和 2,但在我能夠做到這一點之前,我遇到了這個障礙!

有任何想法嗎?解決方案?

[更新2]

  • 問題標題不再適用 *

我從 USB 啟動並對所有分割區執行“fsck”。所有(除 /sda5 外)均報告乾淨。 /dev/sda5 報告了許多錯誤(可能大約有幾百個),我只在所有提示中輸入“y”。中間有一些訊息,例如「連結『丟失+找到』....」在所有分割區上運行 2 次後,當我從 HDD 重新啟動時,這是最新的錯誤...

    INIT: verision 2.88 booting
    INIT: No inittab file file found

    Enter runlevel:

我看起來能夠恢復作業系統實例並啟動嗎?

答案1

您回報的第一個錯誤:

ata1:00: status: { DRDY ERR }
ata1.00: error {UNC }
ata1:00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1:00: BMDMA stat 0x25
ata1:00: failed command: READ DMA

表示對READ DMAATA 連接埠 1 上的磁碟執行 ATA 命令失敗(狀態ERR包括錯誤)。該連接埠很可能是硬碟,並且錯誤表示驅動器有問題。該DMA部分可能會被忽略; DMA 是直接記憶體訪問這是當今主流的傳輸模式,如果您遇到 RAM 或 RAM 總線問題,以至於反覆遇到類似的問題,那麼如果系統能夠正常運行,您可能會看到更多的錯誤。

第二個錯誤:

end_request: critical target error, dev sda, sector 32839936
EXT4_fs error: (device sda5): ext4_find_entry:935: inode #393217: comm init: reading directory lblock 0
INIT: No inittab file found

說 /dev/sda 的磁區 32839936 上存在一些問題,該磁區的 512 位元組磁區使我們在物理上接近 /dev/sda5 分割區的末尾,這與device sda5檔案系統驅動程式所報告的相加。報告的錯誤init以及檔案系統驅動程式的錯誤詳細資訊表明檔案系統存在問題,導致 /etc/inittab 不可用或(不太可能)不可讀。這意味著根目錄、/etc 目錄或 /etc/inittab 檔案條目以某種方式參與了損壞。考慮到 inode 號,我會特別將 /e​​tc/inittab 視為罪魁禍首,直到被證明是錯誤的。

你寫(我的重點):

由於懷疑 HDD 崩潰,我將其取出並在另一台 PC 上用作外部 USB HDD 驅動器,並且我能夠掛載並查看其中的所有分割區和文件。所以我認為光碟沒問題。

我會這樣說你的假設是沒有根據的。磁碟顯然有問題;運氣好的話,很容易修復。

我要做的第一件事在您的情況下,就是刷新該磁碟上所有內容的備份。確保您不會覆蓋或刪除最近備份中的任何內容,因為您肯定會需要它。也許最好的選擇是將您能夠訪問的所有內容進行全新備份到新的(或至少以前未用於您自己的備份)驅動器上。製作該副本時,來源上可能會出現一些 I/O 錯誤。

第二來嘗試恢復。如果幸運的話,考慮到這些錯誤,這是一個單一磁區或幾個磁區的問題,導致了少量的檔案系統損壞,在這種情況下e2fsck 應該能夠修復大部分損壞。您的某些檔案可能已經消失,但運氣好的話,您也許能夠在檔案系統掛載根目錄下的/lost+found 中找到它們(例如,如果您將/dev/sda5 掛載在/data/lost +found 上)資料)在讓 e2fsck 盡其所能之後。否則,請與問題出現之前的最新備份進行比較,並從備份中還原相關檔案。 (我是否提到過,如果發生不好的事情,備份是有用的,因為它們不可避免地會發生?)

第三問題是您是否可以信任該驅動器以供將來使用。從驅動器的角度來看,一些壞扇區不一定是災難性的,但在大多數外形規格中,大約100 GB 大小的旋轉驅動器實際上無法在今天採購新的驅動器,這表明這是一個相對較舊的驅動器。就我個人而言,我可能會接受該驅動器此時已超過其使用壽命並進行更換,但話又說回來,當涉及到我的數據時,我相當偏執;你的旅費可能會改變。你不得不權衡更換驅動器的成本與完全故障的風險驅動器和後續的驅動器上的所有資料全部遺失。

相關內容