日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

UNIX系統(tǒng)被刪文件的恢復(fù)策略

與DOS/Windows不同,UNIX文件被刪除后很難恢復(fù),這是由UNIX獨(dú)特的文件系統(tǒng)結(jié)構(gòu)決定的 。UNIX文件目錄不像DOS/Windows那樣,文件即使被刪除之后仍保存有完整的文件名、文件長(zhǎng)度、始簇號(hào)(即文件占有的第一個(gè)磁盤(pán)塊號(hào))等重要信息;相反,它的文件信息全部依靠一種被稱為i節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)來(lái)描述,而i節(jié)點(diǎn)在相應(yīng)文件被刪除之后即被清空,因此,要想直接恢復(fù)被刪除的文件內(nèi)容幾乎是不可能的,必須另辟蹊徑 。本文結(jié)合實(shí)際,討論幾種文件恢復(fù)策略及其關(guān)鍵步驟的具體實(shí)現(xiàn) 。;
一、UNIX文件系統(tǒng)結(jié)構(gòu);
我們知道,UNIX是以文件卷作為其文件系統(tǒng)存儲(chǔ)格式的,而不同的UNIX系統(tǒng),文件卷格式是有差異的,甚至即使是同一UNIX操作系統(tǒng)的不同版本,其文件系統(tǒng)未必完全相同,例如:SCO UNIX 4.1版與5.0版文件系統(tǒng)結(jié)構(gòu)就有明顯差異,但只要是UNIX系統(tǒng),其文件卷的基本結(jié)構(gòu)是一致的 。分析如下:;
不管是什么UNIX系統(tǒng),不管什么版本,其文件卷至少包括引導(dǎo)塊、超級(jí)塊、i節(jié)點(diǎn)表、數(shù)據(jù)區(qū)等幾個(gè)部分 。除此之外,不同UNIX版本可能還有不同的差異 。例如:SCO UNIX系統(tǒng)的位圖索引塊和位圖塊AIX的邏輯卷表等 。這些系統(tǒng)的特殊性不影響下文的恢復(fù)策略,故這里不作討論,僅介紹標(biāo)準(zhǔn)UNIX文件卷結(jié)構(gòu) 。;
1. 引導(dǎo)塊;
位于文件卷最開(kāi)始的第一扇區(qū),這512字節(jié)是文件系統(tǒng)的引導(dǎo)代碼,為根文件系統(tǒng)所特有,其他文件系統(tǒng)這512字節(jié)為空 。;
2. 超級(jí)塊;
位于文件系統(tǒng)第二扇區(qū),緊跟引導(dǎo)塊之后,用于描述本文件系統(tǒng)的結(jié)構(gòu) 。如i節(jié)點(diǎn)長(zhǎng)度、文件系統(tǒng)大小等,其結(jié)構(gòu)存放于/usr/include/sys/filsys.h中,其結(jié)構(gòu)如下:;
struct filsys;
{;
ushort s_isize; /*磁盤(pán)索引節(jié)點(diǎn)區(qū)所占用的數(shù)據(jù)塊數(shù)*/;
daddr_t s_fsize; /*整個(gè)文件系統(tǒng)的數(shù)據(jù)塊數(shù)*/;
short s_nfree; /*在空閑塊登錄表中當(dāng)前登記的空閑塊數(shù)目*/;
daddr_t s_free[NICFREE]; /*空閑塊登記表*/;
short s_ninode; /*空閑索引節(jié)點(diǎn)數(shù)*/;
ino_t s_inode[NICINOD]; /*空閑節(jié)點(diǎn)登記表*/;
char s_flock; /*加鎖標(biāo)志位*/;
char s_ilock; /*節(jié)點(diǎn)加鎖標(biāo)志位*/;
char s_fmod; /*超級(jí)塊修改標(biāo)志*/;
char s_ronly; /*文件系統(tǒng)只讀標(biāo)志*/;
time_t s_time; /*超級(jí)塊上次修改的時(shí)間*/;
short s_dinfo[4]; /*設(shè)備信息*/;
daddr_t s_tfree; /*空閑塊總數(shù)*/;
ino_t s_tinode; /*空閑節(jié)點(diǎn)總數(shù)*/;
char s_fname[6]; /*文件系統(tǒng)名稱*/;
char s_fpack[6]
long s_fill[13]; /*填空位*/;
long s_magic; /*指示文件系統(tǒng)的幻數(shù)*/;
long s_type; /*新文件系統(tǒng)類型*/;
}
3. i節(jié)點(diǎn)表;
i節(jié)點(diǎn)表存放在超級(jí)塊之后,其長(zhǎng)度是由超級(jí)塊中的s_isize字段決定的,其作用是用來(lái)描述文件的屬性、長(zhǎng)度、屬主、屬組、數(shù)據(jù)塊表等,其數(shù)據(jù)結(jié)構(gòu)在/usr/include/sys/ino.h中,如下:;
struct dinode;
{;
ushort di_mode
short di_nlink
ushort di_uid
ushort di_gid
off_t di_size
char di_addr[40]
time_t di_atime
time_t di_mtime
time_t di_ctime
}
4. 目錄結(jié)構(gòu);
UNIX所有文件均存放于目錄中,目錄本身也是一個(gè)文件 。目錄存放文件的機(jī)制如下:首先,目錄文件本身也象普通文件一樣,占用一個(gè)索引節(jié)點(diǎn),其次,由這個(gè)索引節(jié)點(diǎn)得到目錄內(nèi)容的存放位置,再次,從其內(nèi)容中取出一個(gè)個(gè)的文件名和它對(duì)應(yīng)的節(jié)點(diǎn)號(hào),從而訪問(wèn)一個(gè)文件 。目錄結(jié)構(gòu)如下:;
索引節(jié)點(diǎn)號(hào)(2字節(jié)) .(本目錄)(14字節(jié));
索引節(jié)點(diǎn)號(hào)(2字節(jié)) ..(父目錄)(14字節(jié));
索引節(jié)點(diǎn)號(hào)(2字節(jié)) 文件名(14字節(jié));
索引節(jié)點(diǎn)號(hào)(2字節(jié)) 文件名(14字節(jié));
索引節(jié)點(diǎn)號(hào)(2字節(jié)) 文件名(14字節(jié));
由上可知文件名是依靠目錄來(lái)描述的,文件的內(nèi)容和其他信息則由索引節(jié)點(diǎn)來(lái)描述 。;

推薦閱讀