前往
大廳
主題

修復Linux因意外斷電後,無法成功掛載硬碟的問題

傲月織羽 | 2024-11-24 21:27:58 | 巴幣 2 | 人氣 141

因為無法控制的意外,我安裝Linux系統的電腦遭遇了斷電,當我回到租屋處後重啟系統,就遇到無法掛載磁區的問題;因為在Linux下我不只一次遇到這狀況,而且我也不想往後都是重新格式化來處理這事情,所以趁這機會就尋找解決的方法


我自己這次的解法


1.從Dlophin點擊磁碟,不意外的無法掛載成功,並且上方會出現以下錯誤

Error mounting /dev/nvme0n1p1 at /media/jkoppailove/Samsuang SSD 970 EVO Plus 500G: wrong fs type, bad option, bad superblock on /dev/nvme0n1p1, missing codepage or helper program, or other error

大概是說磁碟區有問題,無論是設定或是壞軌等等

2.直接在Kubuntu下執行fsck /dev/nvme1n1p1,無效,出現以下錯誤

fsck from util-linux 2.40.2
fsck: fsck.ntfs not found; ignore /dev/nvme1n1p1

這是因為fsck沒有找到可以用於修復NTFS磁區的程式,所以無法修復;當然在這個階段我還不清楚原因為何,單純以為沒辦法找到NTFS磁區,所以才會有後面的動作

3.在Konsole(KDE預設的終端機)中輸入lspci,確認是否硬碟還在
確認硬碟還沒死透

4.輸入sudo blkid,確認是否能夠辨識檔案磁區
確認可以讀取到磁區

5.輸入CD /sbin,移動至sbin這個目錄
輸入ls fcks*,確認可以修復的指令
這邊可以看到,不包含NTFS格式,所以我就切換至Windows PE的環境進行修復

6.在Windows PE內輸入chkdsk /f /r C:
/f :修復硬碟上的錯誤
/r:定位壞軌並修復可讀取資訊
7.修復後,重新開機進入Linux,實測成功掛載,修復成功


後續更新

1.回到上個階段的第三項

fsck: fsck.ntfs not found; ignore /dev/nvme1n1p1

這個異常訊息是因為沒有找到可以用於修復NTFS的指令導致,但實際上Linux下是具備修復NTFS磁區的能力,但命令並非fsck,而是ntfsfix,靠ntfs-3g實現

2.修復指令可以改為使用ntfsfix /dev/nvme1n1p1來進行修復

3.另一個方式是將ntfsfix跟fsck連結在一起,往後執行fsck遇到NTFS分割方式時,就可以自動帶入ntfsfix的修復指令

sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs
sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs-3g

4.有鑑於我自己事後使用這個指令嘗試修復未果、且根據找到的一些結果,使用ntfsfix只能進行一些簡單的錯誤修復;故情況允許,仍然以Windows PE執行chkdsk為主要的修復手段為佳


指令整理


Linux指令
說明
lspci
ls為Linux常用的指令之一,要求輸出使用者所需的資訊;pci為通道

故這段指令是說列出電腦的pci通道上的所有裝置
blkid
列出目前電腦上所有抓到的儲存裝置的的分割區狀態
fsck -y /dev/nvme1n1p1
fsck為Linux下修復磁區的指令,不加上任何引數的情況下,僅檢查而不修復

/dev/nvme1n1p1為需要修復的硬碟掛載點,一顆硬碟並非只會有一個磁區,每一個都會有自己的掛載點,所以必須看實際的狀況來修改

-y為偵測到錯誤時,自動應答執行修復
-a偵測到錯誤時,不提問直接進行修復
-r偵測錯誤時,會詢問是否進行修復
-N不執行修復
-C顯示進度條
sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs
sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs-3g
ln -nsf為建立連結的指令

-s為建立軟連結
-f為強制覆蓋舊檔

-n尚未找到解釋

Windows PE指令
說明
chkdsk /f /r /x
chkdskWindows專屬的磁碟修復程式,必須在Windows、Windows PE環境下才可以執行

/f 檢查磁碟錯誤,必須鎖定硬碟
/r 檢查硬碟壞軌,並嘗試修復,必須鎖定硬碟,這個指令可以偵測物理壞軌;包含/r的功能
/x 若有必要則強制解鎖磁區;包含/f的功能



參考資料


創作回應

更多創作