如何復原 ext4 檔案系統

如何復原 ext4 檔案系統

我有一個名為 /dev/sdc1 的 HDD 設備,它託管除我的根之外的檔案系統。我斷電後開機,無法掛載。我想知道檔案系統是否有可能被損壞而無法修復。我認為在失敗的那一刻甚至沒有使用過它。我可以嘗試什麼讓它再次安裝?

user@pc ~ $ sudo fdisk -l /dev/sdc 
... 
Device     Start        End    Sectors  Size Type 
/dev/sdc1   2048 5860532223 5860530176  2.7T Linux filesystem

/etc/fstab: 
/dev/sdc1   /mnt/data_c ext4    defaults    0 0 

user@pc ~ $ sudo mount /dev/sdc1 
mount: wrong fs type, bad option, bad superblock on /dev/sdc1, 
   missing codepage or helper program, or other error 

   In some cases useful info is found in syslog - try 
   dmesg | tail or so.

user@pc ~ $ dmesg|tail
...
[154150.717274]  sdc: sdc1 
[154564.927084] EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

然後我嘗試使用備用超級區塊位置進行安裝。

mount -t ext4 -o sb=131072,ro /dev/sdc1 /mnt/data_c

我執行了上述操作,其中 sb 選項等於以下所有數字 4 的倍數:32768、98304、163840、229376、294912、819200、884736、1605632、2654208、4096000它們必須乘以4,因為mount 需要其sb= 1k 塊)。我總是遇到同樣的錯誤(錯誤的檔案系統類型、錯誤的選項、錯誤的超級區塊...以及 VFS:找不到 ext4 檔案系統)。

然後我使用了testdisk,它可以找到分割區,並且可以列出其中的檔案(我認為是所有檔案)。它還可以逐一複製一些文件,但問題是我需要大約 200-300 個文件,這很耗時,所以我想探索另一個可能修復文件系統的可能性。

Disk /dev/sdc - 3000 GB / 2794 GiB - CHS 364801 255 63 

     Partition                  Start        End    Size in sectors 

  MS Data                     2048 5860532223 5860530176 [data3] 
superblock 0, blocksize=4096 [data3] 
superblock 32768, blocksize=4096 [data3] 
superblock 98304, blocksize=4096 [data3] 
superblock 163840, blocksize=4096 [data3] 
superblock 229376, blocksize=4096 [data3] 
superblock 294912, blocksize=4096 [data3] 
superblock 819200, blocksize=4096 [data3] 
superblock 884736, blocksize=4096 [data3] 
superblock 1605632, blocksize=4096 [data3] 
superblock 2654208, blocksize=4096 [data3] 

To repair the filesystem using alternate superblock, run 
fsck.ext4 -p -b superblock -B blocksize device

我很好奇,硬碟使用時間不到一年,我相當確定在斷電時沒有寫入任何內容(儘管它可能一直在讀取)。有沒有可能所有的超級塊都失效了?也許他們在其他地方?

答案1

首先您可以透過軟體包測試您的硬碟智慧監控工具

在您的驅動器中啟動“智慧型”:

 smartctl -s on /dev/sdc

開始一個長時間的測試(你可以先嘗試“短的“ 測試 ) :

 smartctl -t long /dev/sdc

等待測試結束並取得結果:

 smartctl -l selftest /dev/sdc

如果你的硬碟沒問題,你可以嘗試下面的指令來檢查檔案系統:

 e2fsck -n /dev/sdc1

如果不起作用的話測試磁碟是解決方案。

相關內容