在前幾篇文章講完 Windows 使用為主的 NTFS 硬碟邏輯格式,這次來分享 Linux 常用的硬碟邏輯格式 Ext4,因為本人習慣用 Windows 系統,所以 Ext4 邏輯是用 Windows 去解析此格式的硬碟,雖然 Windows 不支援 Ext4 但解析硬碟格式邏輯資料方式都是一樣的,不管是什麼作業系統。
我以簡單方式說明,其實 Ext4 一開始從 Super Block 找到 Inode 位置,我們就可以用遞迴方式解析該硬碟底下所有目錄與檔案,Inode 簡單來說就是紀錄硬碟內的檔案與目錄詳細資訊,感覺跟 NTFS 的 MFT 表很像但沒比它記錄的結構邏輯這麼複雜,所以一開始會從 Root 在 Inode 編號為 2 開始解析,資料結構內容如下:
Root 是一個目錄,從他的 Inode 得到他詳細資訊後,找到 Root 目錄內容資訊所存放的位置,Recovery 後所得到的內文,就是上圖底下的 Binary ,記錄著 Root 目錄底下有哪些目錄與檔案,他們的 Inode 編號各別為多少,權限資訊與名稱等等…,我舉上圖看到的 abc 目錄底下的檔案 Inode 的內容基本有哪些常調查的資訊,我們看下圖:
你們應該會問我,為何會知道紅色那筆是刪除檔案,難道上面沒顯示該檔案名稱就這樣認定,其實不是,我們可以在上圖的 Binary 裡對應到每筆檔案結構資訊,其中有一個訊息會告訴你下一筆檔案在哪個位置,所以該筆檔案刪除後,他上一筆的檔案資訊會跳過該筆刪除檔案的位置直接指到下下筆檔案位置,當然要是知道這筆是刪除的資訊,我們還是能找到他 Inode 編號,我們來看看 Inode 內容吧:
上圖內容是剛上上圖那筆刪除檔案的 Inode 內容,其實裡面記錄著檔案 mode 、大小、四個時間、檔案內文位置等…詳細資訊,我框出時間資訊,框的顏色對應同顏色文字,其中綠色的刪除時間只有該檔案被刪除才會出現,我們也能依此根據來判斷該筆是否刪除,再來解說檔案內文儲存位置資訊,來看下兩張圖:
正常檔案 Inode 資訊
紅框為檔案儲存硬碟位置,他是有值的,我們看下一張
刪除檔案 Inode 資訊
刪除檔案的內容檔案儲存硬碟位置為 0 ,所以在 Ext4 的邏輯裡,檔案刪除後 Inode 的位置紀錄就會為 0 ,要 Recovery 就不容易了,但是我們可以從 Ext4 的一個地方有機會找到該筆刪除檔案的檔案實體位置,我在下一篇文章在開始介紹。
這是我的粉絲團 facebook.com/rexlintechnology 我也有開一些課程有興趣可以參考看看,不吝嗇給個讚跟追蹤吧!
