《Linux系統(tǒng)數(shù)據(jù)恢復(fù)實(shí)戰(zhàn)案例》要點(diǎn):
本文介紹了Linux系統(tǒng)數(shù)據(jù)恢復(fù)實(shí)戰(zhàn)案例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
http://sec007.cc/3554.html
程序員的誤操作造成數(shù)據(jù)丟失,忙著一個(gè)星期的項(xiàng)目,就這樣付之東流了.老板的痛斥、經(jīng)理的訓(xùn)斥接踵而來(lái).接下來(lái)就是沒(méi)休息、加班,甚至忙到凌晨都不能離開(kāi)那該死的電腦,都有種想屎的感覺(jué)呢?
為那些不喜歡備份數(shù)據(jù)的朋友帶來(lái)了福音,我們來(lái)談?wù)剶?shù)據(jù)恢復(fù),這里我們來(lái)手把手地教會(huì)你如何利用簡(jiǎn)單的工具來(lái)恢復(fù)被你刪除的數(shù)據(jù).
工具:
hexedit、fdisk
下文內(nèi)容操作均在root環(huán)境下完成.
hexedit:
在linux上,經(jīng)常會(huì)使用hexedit來(lái)修改程序的16進(jìn)制代碼.而fdisk這里就不介紹了.
現(xiàn)在我們走進(jìn)磁盤(pán)的世界,看看磁盤(pán)它對(duì)數(shù)據(jù)做點(diǎn)了什么吧.
首先,在終端下使用root權(quán)限,來(lái)運(yùn)行下命令:
fdisk -l
/dev/sdb1是今天的主角,從圖片很清晰地看到一些相關(guān)數(shù)據(jù),比如磁盤(pán)的size,、sector、I/O size等等.
磁盤(pán)格式為ext4,而非MS上的vfat32和NTFS格式,在文章的結(jié)尾貼上FAT32的圖片.
第一步:
運(yùn)行fdisk,使用專家模式,來(lái)備份Partition table.
ext4的partition table非常簡(jiǎn)單,一般備份partition table為ext4.img.備份是為了避免數(shù)據(jù)恢復(fù)中被破壞.
第二步:
首先在target sdb1上執(zhí)行剪切的命令操作,把sdb1上的文件移動(dòng)到電腦硬盤(pán)上,執(zhí)行完成后,使用hexedit 來(lái)打開(kāi)sdb1.
被剪切的文件名:usb.png
Command : hexedit -s /dev/sdb1
圖片中可以看到文件名和它所在的sector, 是不是發(fā)現(xiàn)了圖片的設(shè)備是sdc1?由于磁盤(pán)的自動(dòng)掛載發(fā)生了dev的改變,而數(shù)據(jù)是不會(huì)隨著磁盤(pán)的dev變化而變化的.這里已經(jīng)找到了文件名的所在,接下來(lái),需要找到文件header.
如何找到文件頭呢? 可以利用hexedit進(jìn)行hex search,如果是要著ASCII,可以按下TAB切換到ASCII區(qū)域.
文件的大小決定了文件在磁盤(pán)中所占用的sector 數(shù),1 sector==512 bytes.在圖中,顯示了文件header offset和sector.
提取hex值,寫(xiě)入文件.
恢復(fù)后的圖片:
上看著很簡(jiǎn)單吧,它只是單文件的剪切操作與數(shù)據(jù)恢復(fù).這里提醒下各位:磁盤(pán)中保存的數(shù)據(jù),不是刪除了可以恢復(fù),被剪切掉的數(shù)據(jù)一樣可恢復(fù).
下面我們來(lái)看看從磁盤(pán)刪除數(shù)據(jù)后,如何來(lái)操作呢?
在磁盤(pán)上執(zhí)行delete命令來(lái)刪除一個(gè)名為1.gif的文件,操作如下:
上看著很簡(jiǎn)單吧,它只是單文件的剪切操作與數(shù)據(jù)恢復(fù).這里提醒下各位:磁盤(pán)中保存的數(shù)據(jù),不是刪除了可以恢復(fù),被剪切掉的數(shù)據(jù)一樣可恢復(fù).
下面我們來(lái)看看從磁盤(pán)刪除數(shù)據(jù)后,如何來(lái)操作呢?
在磁盤(pán)上執(zhí)行delete命令來(lái)刪除一個(gè)名為1.gif的文件,操作如下:
文件header sector : 264056, end sector: 264061 , 第一次執(zhí)行刪除的文件header sector: 264056 ,end sector : 264057, 這樣可以看到第一次刪除的數(shù)據(jù)被覆蓋掉,而保留了第二此刪除的數(shù)據(jù).
這里操作是對(duì)磁盤(pán)單一文件進(jìn)行數(shù)據(jù)恢復(fù)和其磁盤(pán)中的數(shù)據(jù)變化進(jìn)行論證.接下來(lái)我們來(lái)看看雙文件的操作.
磁盤(pán)中存在兩個(gè)不同類(lèi)型的文件.
文件名:partition.zip
文件名:cab.ico
第一個(gè)文件的header secotor:264056,end sector:264058
第二個(gè)文件header sector:264064,end sector:264076.發(fā)現(xiàn)第一個(gè)文件的end sector與第二個(gè)文件的header sector相差多個(gè)sector,那么中間的差值是什么呢?
可以看到中間的差值全部以00填充.到這里我們來(lái)總結(jié)下這次在linux上的實(shí)踐操作:
ext4 file system
執(zhí)行 剪貼
file name : usb.png sector 67120
file header : sector 264064 file end: sector 264076
執(zhí)行 刪除
file name : 1.gif sector 67112 (覆蓋)
file header: start : sector 264056 end: sector 264057 (覆蓋)
file name: 56.jpg sector 67112
file header:start: sector 264056 end: sector 264061
當(dāng)單文件時(shí),執(zhí)行刪除時(shí),覆蓋上一次被刪除的數(shù)據(jù).
儲(chǔ)存文件:
(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
剪切區(qū):sector 264064
刪除區(qū): sector 264056
儲(chǔ)存區(qū):與刪除區(qū)共存
儲(chǔ)存區(qū): 當(dāng)單文件時(shí),儲(chǔ)存文件覆蓋刪除區(qū)數(shù)據(jù).
數(shù)據(jù)恢復(fù):當(dāng)多文件時(shí),執(zhí)行刪除時(shí),刪除區(qū)保留數(shù)據(jù)hex,如果建立新文件數(shù)據(jù)時(shí),將覆蓋被刪除數(shù)據(jù)hex.
附圖(FAT32磁盤(pán)格式圖):
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4616.html