
我有一個名為 /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
如果不起作用的話測試磁碟是解決方案。