閱讀644 返回首頁    go 汽車大全


記一次數據盤掛載mount: wrong fs type, bad option, bad superblock on /dev/vdb1的排查

背景:
重啟後數據盤掛載不上,報錯如下:

mount: wrong fs type, bad option, bad superblock on /dev/vdb1

(注意:任何操作請務必先給自己的盤做下快照備份,部分圖為後補)
(注意:任何操作請務必先給自己的盤做下快照備份,部分圖為後補)
(注意:任何操作請務必先給自己的盤做下快照備份,部分圖為後補)

現場:
1,看下現場,這個報錯嚐試先使用不同的文件係統掛載試下均不可
bad1

mount -t ext2 /dev/vdb1 /mnt
mount -t ext3 /dev/vdb1 /mnt
mount -t ext4 /dev/vdb1 /mnt

bad11

破局:
2,嚐試使用fsck修複,報錯如故
bad12

3,找台正常的機器獲取一下磁盤相關信息

e2fsck -f /dev/xvdb1

3.1 e2fsck是檢查ext2、ext3、ext4等文件係統的正確性, -f 即使文件係統沒有錯誤跡象,仍強製地檢查正確性。
ok1

dumpe2fs -f /dev/xvdb1 |grep -i superblock

3.2 dumpe2fs 會顯示 superblock 上的檔案係統資訊和每個區塊組 (block group) 的資訊,在一般擁有很多區塊組檔案係統,輸出會非常多,因此加上grep過濾一下superblock
ok2

(-f 的參數,英文不好,就不翻譯了,,,
force dumpe2fs to display a filesystem even though it may have
some filesystem feature flags which dumpe2fs may not understand
(and which can cause some of dumpe2fs’s display to be suspect).)

mkfs.ext4 -n /dev/xvdb1

3.3 看下如果ext4格式化的話對應的相關信息(-n 不真正創建文件係統,隻是顯示創建的信息)
ok3

3.4 利用工具e2fsck,修複文件係統(指定superblock,可以對照dumpe2fs獲取到得備份的superblock起始位置)

e2fsck -f -b 32768 /dev/xvdb1

ok4

3.5 重新掛載即可恢複
ok5

恢複:
4,檢查文件係統的正確性,失敗
bad3

5,獲取superblock失敗
bad2

6, 嚐試修複
bad4

將基本麵的那些superblock全部測試了一遍,都不行

腦洞:

7,安裝testdisk,檢查一下這塊數據盤
不做贅述,可參考
https://www.oschina.net/p/testdisk

8,找個windows的虛機,使用diskgenius掃一下

在這我使用的是掛windows虛機上使用磁盤工具掃描,但是什麼也沒掃到,連文件係統都沒掃描到,這個是不應該的

迷之尷尬:
9,檢查history對xvdb盤的操作(不一定全)
10,與係統管理員確認了一下之前的數據目錄名稱,全盤掃了一下,發現了兩個疑似的目錄,確認是數據目錄

彩蛋:
原來之前的管理員分區後沒有格式化,直接寫到了fstab裏麵,這也是為什麼我們看到的fstab是掛載了數據盤,但是實際無法使用的原因 :)

最後更新:2017-07-09 19:02:27

  上一篇:go  如何選擇開發語言或者開發工具
  下一篇:go  java代碼生成器 二次開發 外包項目利器 springmvc SSM後台框架源碼 快速開發平台