解決 Ubuntu 掛載 JFS 檔案系統失敗與修復
在 Linux 系統中掛載較少見的 JFS(Journaled File System)檔案系統時,有時會遇到令人頭痛的掛載錯誤。本文將透過實際案例,帶你一步步從安裝工具、排查錯誤,到成功修復並掛載 JFS 磁碟。
正常掛載 JFS 的基本步驟
在 Ubuntu 中,掛載 JFS 檔案系統的基本流程如下:
- 安裝 JFS 工具包:
sudo apt update
sudo apt install jfsutils - 確認磁碟代號:
使用 lsblk 尋找你的目標分割區(例如 /dev/sdg1)。 - 建立掛載點並掛載:
sudo mkdir /mnt/pvr
sudo mount -t jfs /dev/sdg1 /mnt/pvr
遇到 Mount Error 怎麼辦?
如果你在執行掛載時,系統噴出以下錯誤訊息:
mount: /mnt/pvr: wrong fs type, bad option, bad superblock on /dev/sdg1...
這代表該分割區可能存在檔案系統Dirty、日誌損壞或Superblock讀取失敗的問題。此時可以透過以下兩大步驟來救回。
第一步:檢查檔案系統狀態(唯讀模式)
首先,我們使用 jfs_fsck -n 來對磁碟進行唯讀式的安全檢查:
sudo jfs_fsck -n /dev/sdg1
檢查結果分析:
在案例中,檢測發現了 Errors detected in the Fileset File/Directory Allocation Map,且文末明確指出:
Filesystem is dirty.Filesystem is dirty but is marked clean. In its present state, the results of accessing /dev/sdg1... are undefined.
這證實了檔案系統確實處於Dirty狀態,必須先修復才能順利掛載。
第二步:強制修復與重建日誌
既然知道了問題所在,我們可以使用 fsck.jfs(或 jfs_fsck -a)來進行自動修復。請確保在執行前磁碟是未掛載狀態:
sudo fsck.jfs /dev/sdg1
修復日誌解讀:
修復過程中可能會看到 logredo failed (rc=-274),這代表原本的日誌重放失敗,但不用擔心,fsck 會繼續跑完 1 到 9 的完整階段(Phases),包括重建分配圖(Rebuild Allocation Maps)以及重新格式化檔案系統日誌(Reformat File System Log)。
當看到最末行顯示 Filesystem is clean.,就代表磁碟已經重獲新生!
最終確認與成功掛載
修復完成後,我們可以先用 blkid 確認磁碟的 UUID 與檔案系統型態(TYPE="jfs")是否正常:
sudo blkid /dev/sdg1
確認無誤後,即可使用讀寫模式(rw)正式掛載磁碟:
sudo mount -t jfs -o rw /dev/sdg1 /mnt/pvr
這時候進入 /mnt/pvr,就能正常存取裡面的資料了。若後續需要卸載,再執行 sudo umount /dev/sdg1 即可。
JFS 掛載失敗時不要慌,通常是因為不正常關機導致的日誌與分配圖損壞。只要善用 jfsutils 工具箱中的 jfs_fsck 強制重建結構,就能完美修復啦!
留言