一例Ext4檔案系統fsck後損壞的修復過程
1.故障發生背景
Ext4檔案系統沒有umount下來,之後做了fsck操作檢查一致性,結果導致Ext4檔案mount不上,並且導致目錄變成了檔案。
報錯提示資訊:mount: wrong fs type, bad option, bad superblock
2.故障原理分析
某故障時,日誌和資料不一致造成的正常檔案系統資料被覆蓋的現象。這種故障在Ext3、Ext4檔案系統常有發生,好在.journal日誌檔案留有緩衝,恢復時可以從.journal日誌檔案裡找到相應資訊,並貼上回相應位置,達到重建原檔案的目的。
3.案例重要資訊
Linux系統的硬碟的第一個扇區是MBR扇區,從
Ext3、Ext4檔案系統有日誌功能,本案例可以從.journal日誌檔案中找到丟失資料。
1.塊大小為4KB,即8個扇區。
2.超級塊(Superblock)起始位置在1024位元組處,即2號扇區,大小為2個扇區。
3.塊組描述表從第一個塊開始,即從4096位元組處開始。
4.案例重要概念
超級塊(Superblock):用於儲存檔案系統的配置引數(如塊大小、總塊數、i-節點數)和動態資訊(當前空閒塊數和i-節點數)。Ext4檔案系統的超級塊
塊組:Ext4檔案系統的全部空間被劃分為若干個塊組,每個塊組內的結構都是大致相同的。
塊組描述符表:每個塊組都對應一個塊組描述符,這些塊組描述符統一放在檔案系統的前部,稱為塊組描述符表。每個塊組描述符大小為32位元組,其主要描述塊點陣圖、i-節點點陣圖及i-節點表的地址等資訊。
i節點:描述檔案的時間資訊、大小、塊指標等資訊。
塊組描述符和超級塊在塊中的位置:當塊大小為2個扇區時,0號塊是載入程式或者保留塊,超級塊起始於1號塊。當塊大小為4個扇區時,載入程式或者保留塊位於0號塊的前兩個扇區,超級塊位於0號塊的後兩個扇區。當塊大小為8個扇區時,載入程式或者保留塊位於
Ext4檔案系統的整體結構及第一個塊組的具體結構如圖1所示。
5.解決步驟
步驟總結:
1.通過.journal日誌檔案裡的超級塊備份找到超級塊,確定塊大小。
2.通過.journal日誌檔案裡的超級塊備份找到超級塊,重建超級塊資訊。
3.通過.journal日誌檔案找到目錄節點,重建(恢復)目錄。
4.通過.journal日誌檔案找到目錄節點找到要恢復的檔案的節點資訊,重建(恢復)檔案。
首先用WinHex開啟Ext4檔案系統,可以看到0-23扇區的資料(包括超級塊和塊組描述符)被日誌記錄覆蓋。Ext3、Ext4檔案系統的日誌頁以C0 3B 39 98開頭。如圖2所示。
圖2
-
確定塊大小
超級塊中有關於塊大小的資訊。從.journal日誌中查詢超級塊的備份。用WinHex查詢得到.journal日誌中超級塊的資訊,其標誌是“53ef”。查詢超級塊方式如圖3所示。檢視塊大小方法如圖4和圖5所示。超級塊0x18-0x1B處描述塊大小,確定本案例塊大小為4KB。
圖3
通過超級塊檢視塊大小如圖4所示。
圖4
或者WinHex模板編輯器也可以顯示塊大小如圖5所示。
圖5
2.重建(恢復)超級塊
由於原檔案系統超級塊損壞,所以恢復檔案時,要把這部分超級塊資訊貼上回去,即放在2號扇區開始,或1024位元組處。
做完以上操作,超級塊備份某些地方與實際的超級塊數值可能不一致,需要通過WinHex的模板管理器修改一下。本案例對超級塊所在的塊組作了修改,它在第0個塊組裡。如圖6所示。
圖6
3.重建(恢復)塊組描述表
由於部分塊組描述表被破壞,所以在.journal日誌檔案裡找到所有的塊組描述表,並把它們貼上回去。
.journal日誌檔案裡,如圖1所示,塊組描述符表儲存在超級塊的後面。所以要找塊組描述表時,可以先找到超級塊。找到後將塊組描述符表內容貼上到4096位元組處。
4.重建(恢復)目錄
當我們要恢復某個資料夾裡的檔案時,比如我們需要恢復kyproc資料夾裡的資料。我們發現這些資料夾在WinHex裡是不能開啟的狀態。如圖7所示。很明顯這個目錄損壞了,開啟其節點資訊,發現正常資料被日誌填充,如圖8所示。
圖7
圖8
我們找到它的上一級目錄,即var資料夾。右擊點“open”,開啟看到var檔案裡的所有檔案的目錄資訊。找到要恢復的kyproc目錄的資訊,12 32 EE 00是其i-節點號,10 00表示其目錄項長度,06表示其檔名稱長度,02表示其檔案型別為目錄。如圖9所示。
圖9
然後在var資料夾的目錄塊下查詢kyproc目錄的位置,如圖10所示,標紅的位置是找到的結果。此位置顯示所在塊號為62399108。
圖10
根據所在塊號,就可以定位kyproc目錄相應節點的位置。由於人工補節點比較繁瑣,我們可以開啟.journal日誌檔案,從裡面找到其節點資訊,把相應的資訊貼上回去。
上述方法可以重建(恢復)目錄,恢復目錄裡的檔案也是通過同樣的方法從.journal日誌檔案裡找到相應的檔案的節點資訊,找到後貼上回原來的位置,達到重建(恢復)檔案的目的。
相關推薦
一例Ext4檔案系統fsck後損壞的修復過程
1.故障發生背景 Ext4檔案系統沒有umount下來,之後做了fsck操作檢查一致性,結果導致Ext4檔案mount不上,並且導致目錄變成了檔案。 報錯提示資訊:mount: wrong fs type, bad option, bad superblock 2.
硬碟修復 Ext4檔案系統fsck後損壞的修復過程
1.故障發生背景 Ext4檔案系統沒有umount下來,之後做了fsck操作檢查一致性,結果導致Ext4檔案mount不上(有時也會表現為導致目錄變成了檔案)。 報錯提示資訊:mount: wrong fs type, bad option, bad sup
Ext4檔案系統fsck後損壞的修復過程-linux資料恢復
在資料恢復案例開始之前有幾個概念需要了解塊組:Ext4檔案系統的全部空間被劃分為若干個塊組,每個塊組內的結構都是大致相同的。塊組描述符表:每個塊組都對應一個塊組描述符,這些塊組描述符統一放在檔案系統的前部,稱為塊組描述符表。每個塊組描述符大小為32位元組,其主要描述塊點陣圖、
Ext4檔案系統架構分析(一)
本文描述Ext4 檔案系統磁碟佈局和元資料的一些分析,同樣適用於ext2,ext3檔案系統,除了它們不支援的ext4的特性。整個分析分兩篇博文,分別概述佈局和詳細介紹各個佈局的資料結構及組織定址方式等。 1.Ext4 檔案系統佈局綜述 一個Ext4 檔案系統被分成一系列
linux ext3 ext4 檔案系統 rm -rf刪除後資料快速恢復
linux ext3 ext4 rm -rf刪除後資料快速恢復辦法: rm -rf 後一定不要再在所在分割槽上增加和修改檔案!!!否則會把已刪除檔案覆蓋掉!!! 1.檢視磁碟檔案系統格式:ext3 [[email protected]_45_128_cento
Linux fsync和fdatasync系統呼叫實現分析(Ext4檔案系統)
參考:https://blog.csdn.net/luckyapple1028/article/details/61413724 在Linux系統中,對檔案系統上檔案的讀寫一般是通過頁快取(page cache)進行的(DirectIO除外),這樣設計的可以延時磁碟IO的操作,從而可以減少磁碟讀
ext4檔案系統由檔案的inode號定位其inode Table
轉載:https://blog.csdn.net/yiqiaoxihui/article/details/55683328 在ubuntu中(以16.06為例),stat filename 可以檢視檔案的inode數值,但是如何確定該inode項具體在哪個塊組下的inode Table中不是那麼
EXT4檔案系統禁用日誌功能
ext4提供有很多特性,當然有一些是前一代檔案系統ext3本身就具有的,比如日誌功能,但有時候我們卻並不需要這些特性,則我們可以禁用它們。ext4檔案系統的日誌功能就是在犧牲一定效能的情況下增強穩定性的一種手段,但在一些情況,比如Web Server上存在的大量小檔案所在的檔案系統就是一個典型示例,此時可以禁
Linux.ext4檔案系統 .inode和extent
最近在看相關內容,不過總是不是很系統,今日看到此部落格,感覺恍然大悟,作者寫的非常棒:轉載: https://blog.csdn.net/stringNewName/article/details/73740155 為表示對作者的尊敬,一字不動的敲擊! 最近在看ext4
Linux ext4檔案系統下 extundelete 恢復 誤刪除的檔案
1、檔案基本操作 1.1 檢視檔案 # ls 1.2 建立 1.2.1 建立檔案 # touch {file_name} # vim {file_name} 1.2.2 建立目錄 # mkdir -p {dir} 1.3 複製 1.3.1 複
檔案系統啟動後掛載目錄
ubuntu與開發板之間設定為同一網段中的Ip, 這裡將ubuntu設定為: ifconfig eth0 200.200.4.233 開發板設定為: ifconfig eth0 200.200.4.234 互相ping一下,確保能互相ping通; 虛擬機器要實現上網,需要設定為NAT模式;
Linux掛載SD卡中的 ext4 檔案系統
按照黑金教程移植的Linux,開發板啟動後掛載的檔案系統其實是 uImage 映象中小檔案系統(即 ramdisk 中的檔案系統)。Linux啟動後會出現這樣的提示 “mmc1: tried to reset card”、“blk_update_request: I/O er
linux下如何製作ext4檔案系統映象
1.生成一個空的2MiB檔案 dd if=/dev/zero of=rootfs.ext4 bs=1024 count=2048 (指定每一塊大小為1024位元組,一共又2048塊,那麼就是2048 * 1024 B = 2MiB) 2.對生成的檔案進行格式化 mkfs.ext4 rootfs.ext4
ROS(一):檔案系統介紹
ROS的檔案系統 一個catkin軟體包稱為一個程式包package,package主要包含兩個主要檔案: (1)package.xml:package的描述資訊 (2)CMakeList.txt:構建package的主要CMake檔案,用於呼叫Catkin的函式與巨集,解析p
檔案系統fsck提速方案
朱穎航(個人微訊號:casualfisher),北京靈犀智造科技有限公司(www.linkedsee.com)技術總監,設計參與了百度智慧資料中心專案,集中在智慧供電方向, 負責了硬體感知專案,參與設計伺服器硬體採集及管理工具, 並基於採集資料進行故障及使用趨勢預測,曾設計和開發重複資料刪除檔案系統
Linux TF卡ext4檔案系統錄製視訊檔案用拷貝不用移動的影響
環境 TF卡ext4檔案系統錄製大量視訊檔案後,出現TF卡損壞不能寫的情況,探究用拷貝不用移動的影響。 分析 錄製5分鐘視訊,臨時檔名為開始時間,錄製結束後拷貝到TF卡其他目錄,並把結束時間加在檔名上,然後刪除臨時檔案;
centos5.x格式化ext4檔案系統
在Centos5.x版本中,mkfs格式化時,是沒辦法格式化成ext4的。 其實centos5.8中有ext4模組,但是沒有載入,所以我們要先把模組載入進來 找到模組後用modprobe命令新增 modprobe ext4 lsmod | grep ext4 安裝e4fsprogs yum ins
CentOS7搭建FastDFS V5.11分散式檔案系統及Java整合詳細過程(一)
1.緒論 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的過程中遇到過很多的問題,為了能幫忙到以後搭建FastDFS的同學,少走彎路,與大家分享一下。FastDFS的作者淘寶資深架構餘慶,這個優秀的輕量及的分散式檔案系統的開源沒多久
作業系統概念(高等教育出版社,第七版)複習——第十一章:檔案系統實現
第十一章 檔案系統實現 基礎知識 檔案系統實現(超重點) 一個磁碟可分為多個分割槽,或者一個卷可橫跨多個磁碟上的數個分割槽。分割槽可以是“生的”,即沒有檔案系統,也可以是“熟的”,即含有檔案系統。 目
儲存一問:檔案系統——卷和快照小BUG
儲存小疑惑 背景 原因 方法 對於一個檔案系統,比如 zfs,ext4等 背景 當我們建立一個卷,把它映射出來,格式化成ext4檔案系統 掛載到客戶機後,對這個卷多次讀寫,並在每次讀寫後做快照,如果這個卷一致沒有被 umount