工具: hexedit、fdisk
下文內容操作皆在root環境下完成。
hexedit:
在linux上,常常會使用hexedit來修改程式的16進位程式碼。而fdisk這裡就不介紹了。
現在我們走進磁碟的世界,看看磁碟它對資料做點什麼吧。
首先,在終端機下使用root權限,來執行下指令:
Command: fdisk -l
/dev/sdb1是今天的主角,從圖片很清楚地看到一些相關數據,例如磁碟的size,、sector、I/O size等等。
磁碟格式為ext4,而非MS上的vfat32和NTFS格式,在文章的最後貼上FAT32的圖片。
***步驟:
執行fdisk,使用專家模式,來備份Partition table。
ext4的partition table非常簡單,一般備份partition table為ext4.img。備份是為了避免資料恢復中被破壞。
第二步:
首先在target sdb1上執行剪切的命令操作,把sdb1上的檔案移到電腦硬碟上,執行完成後,使用hexedit 來開啟sdb1。
剪下的檔名:usb.png
Command : hexedit -s /dev/sdb1
圖片中可以看到檔案名稱和它所在的sector, 是不是發現了圖片的裝置是sdc1?由於磁碟的自動掛載發生了dev的改變,而資料是不會隨著磁碟的dev變化而變化的。這裡已經找到了檔案名稱的所在,接下來,需要找到檔案header。
如何找到檔案頭呢?可以利用hexedit進行hex search,如果要著ASCII,可以按下TAB切換到ASCII區域。
檔案的大小決定了檔案在磁碟中所佔用的sector 數,1 sector==512 bytes。在圖中,顯示了檔案header offset和sector。
提取hex值,寫入檔案。
恢復後的圖片:
#上看著很簡單吧,它只是單一檔案的剪下操作與資料恢復。這裡提醒下各位:磁碟中保存的數據,不是刪除了可以恢復,被剪切掉的數據一樣可恢復。
下面我們來看看從磁碟刪除資料後,如何來操作呢?
在磁碟上執行delete指令來刪除一個名為1.gif的檔案,操作如下:
圖片可以看到檔案header到檔案end的sector 的變化,header sector: 264056 , end sector: 264057,檔案大小在1K, 圖片很小。
建立個新文件,然後再執行delete操作,看看磁碟資料變化。
#檔案header sector : 264056, end sector: 264061 , ***次執行刪除的檔案header sector: 264056 ,end sector : 264057, 這樣可以看到***次刪除的資料被覆掉,而保留了第二此刪除的資料。
這裡操作是對磁碟單一檔案進行資料復原和其磁碟中的資料變更進行論證。接下來我們來看看雙文件的操作。
磁碟中存在兩個不同類型的檔案。
檔名:partition.zip
檔名:cab.ico
***個檔案的header secotor:264056,end sector:264058
第二個檔案header sector:264064,end sector:264076。發現***個檔案的end sector與第二個檔案的header sector相差多個sector,那麼中間的差值是什麼呢?
可以看到中間的差值全部以00填充。到這裡我們來總結下這次在linux上的實作操作:
ext4 file system
執行剪貼
file name : usb.png sector 67120
#file header : sector 264064 file end: sector 264076
執行刪除
file name : 1.gif sector 67112 (覆蓋)
file header: start : sector 26405#file66 end: sector 264057 (覆蓋)
file name: 56.jpg sector 67112
file header:start: sector 264056 end: sector 264061
當單一檔案時,執行##當單一檔案時,執行#刪除時,覆蓋上一次被刪除的資料。
儲存檔案
(1) file name : partition.zip sector 67112
##(1) file name : partition.zip sector 67112
file header: start sector 264056 end sector 264058
(2) file name : cab.ico sector 67112
file header: start sector 264064 end sector: 264068
#ector以上是linux系統資料復原的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!