UNIX系统被删文件的恢复策略

与DOS/Windows不同,UNIX文件被删除后很难恢复,这是由UNIX独特的文件系统结构决定的。UNIX文件目录不像DOS/Windows那样,文件即使被删除之后仍保存有完整的文件名、文件长度、始簇号(即文件占有的第一个磁盘块号)等重要信息;相反,它的文件信息全部依靠一种被称为i节点的数据结构来描述,而i节点在相应文件被删除之后即被清空,因此,要想直接恢复被删除的文件内容几乎是不可能的,必须另辟蹊径。本文结合实际,讨论几种文件恢复策略及其关键步骤的具体实现。

一、UNIX文件系统结构

我们知道,UNIX是以文件卷作为其文件系统存储格式的,而不同的UNIX系统,文件卷格式是有差异的,甚至即使是同一UNIX操作系统的不同版本,其文件系统未必完全相同,例如:SCO UNIX 4.1版与5.0版文件系统结构就有明显差异,但只要是UNIX系统,其文件卷的基本结构是一致的。分析如下:

不管是什么UNIX系统,不管什么版本,其文件卷至少包括引导块、超级块、i节点表、数据区等几个部分。除此之外,不同UNIX版本可能还有不同的差异。例如:SCO UNIX系统的位图索引块和位图块AIX的逻辑卷表等。这些系统的特殊性不影响下文的恢复策略,故这里不作讨论,仅介绍标准UNIX文件卷结构。

1. 引导块

位于文件卷最开始的第一扇区,这512字节是文件系统的引导代码,为根文件系统所特有,其他文件系统这512字节为空。

2. 超级块

位于文件系统第二扇区,紧跟引导块之后,用于描述本文件系统的结构。如i节点长度、文件系统大小等,其结构存放于/usr/include/sys/filsys.h中,其结构如下:

struct filsys

{

ushort s_isize; /*磁盘索引节点区所占用的数据块数*/

daddr_t s_fsize; /*整个文件系统的数据块数*/

short s_nfree; /*在空闲块登录表中当前登记的空闲块数目*/

daddr_t s_free[NICFREE]; /*空闲块登记表*/

short s_ninode; /*空闲索引节点数*/

ino_t s_inode[NICINOD]; /*空闲节点登记表*/

char s_flock; /*加锁标志位*/

char s_ilock; /*节点加锁标志位*/

char s_fmod; /*超级块修改标志*/

char s_ronly; /*文件系统只读标志*/

time_t s_time; /*超级块上次修改的时间*/

short s_dinfo[4]; /*设备信息*/

daddr_t s_tfree; /*空闲块总数*/

ino_t s_tinode; /*空闲节点总数*/

char s_fname[6]; /*文件系统名称*/

char s_fpack[6];

long s_fill[13]; /*填空位*/

long s_magic; /*指示文件系统的幻数*/

long s_type; /*新文件系统类型*/

};

时间: 2024-12-22 04:36:52

UNIX系统被删文件的恢复策略的相关文章

判断Unix系统及库文件是32位还是64位的详解_Linux

判断Unix系统及库文件是32位还是64位的详解 一.查看系统32还是64位系统 bootinfo -y    查看硬件位数 bootinfo -K   查看内核位数 二.查看库文件是32位还是64位 1.使用file命令 Linux: # file libnss1_files-2.2.4.so libnss1_files-2.2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped # file lib

ext3文件系统恢复被删文件

大家都知道,在linux系统中是没有回收站的概念的,一旦rm命令删除某个文件之后,就找不回来.不过其实这时还是有救的,之前大概清楚个概念,知道有救,但如何救就没怎么详细去了解了.那么这次我们来实际操作下. 其实为什么说还有救呢?说这个之前需要对ext3文件系统有个大概的了解. 在ext3文件系统中我们创建一个文件时,它首先会在ext3文件系统的inode表申请个inode号,然后再将文件的信息以及数据写入.那么inode号又是什么呢? inode号里面包括两部分,一个是metadata,即是元数

win7系统回收站删除的文件怎么恢复?

  win7系统回收站删除的文件怎么恢复? 1.按下"Win+R"组合键呼出运行,在运行框中输入"regedit"点击确定打开"注册表编辑器"; 2.在注册表编辑器左侧依次展开:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/DeskTop/NameSpace; 3.点击"NameSpace"项后,在右侧空白处单击右键,新建"

360安全卫士把文件删了怎么恢复

  360安全卫士把文件删了怎么恢复             方法一 打开360安全卫士在 点击 左下角 查杀修复 即可看到右下角的恢复区 找到被删除的文件名选项,勾选然后点击恢复就可以了. 方法二 在360安全防护中心中打开日志界面,寻找已经被删除的文件名和路径.(将鼠标放在记录上即可显示路径) 点击进入 安全防护中心 点击进入 日志记录

win8系统怎么使用360卫士恢复已被删除的文件

  win8系统怎么使用360卫士恢复已被删除的文件 1.首先打开360卫士软件,大家可以和我的版本对照下,避免不一样,点击右下角更多按钮,打开; 2.点选全部工具,找到文件恢复按钮,打开; 3.打开软件,可以选择分类; 4.也可以选择对应的硬盘或目录,再点击扫描; 5.扫描找到丢失的文件点击恢复; 6.选择存储到可选文件夹中;

金山毒霸怎么恢复已删文件?

  金山毒霸文件恢复教程大家可以来了解一下,下文将会演示金山毒霸恢复已删文件步骤,如果你一不小心删除了某个文件就可以使用金山毒霸来恢复哦~具体步骤如下. 第一步.在金山毒霸主界面,切换到[电脑杀毒]界面,点击右上角的"恢复区". 第二步.点击右上角的菜单按钮,选择"恢复区". 第三步.勾选需要恢复的文件,然后点击"恢复"按钮即可. 使用金山毒霸恢复文件的方法就是这么简单哦~

如何恢复linux系统根分区文件权限

如果不小心将/目录权限搞错了,比如chmod -R 777 / 那么恭喜你,系统将崩溃,系统很多命令无法启动,命令无法执行: 或许你会说,找一台正常的系统照着权限改回来,那么恭喜你,数十万的文件也会让你崩溃. 这时候可以通过系统自带的getfacl命令来拷贝和还原系统权限,本文将告诉你如何恢复linux系统根分区文件权限 解决方法:找一台权限正常的linux(最好和故障机同版本的) 通过getfacl -R / >systemp.bak将这个正常系统的/目录下所有文件的权限都备份保存在syste

基于纠删码的云计算存储备份及恢复策略

基于纠删码的云计算存储备份及恢复策略 芦欣 刘渊 如何保障云存储系统中数据的可靠性是云计算领域的热点问题.副本备份技术是保障数据可靠性的重要手段,但是存在占用存储空间大.存储效率低等问题.纠删码能够提供优化的数据冗余度,以防止数据丢失,恰当地使用纠删码可以提高空间的利用效率并获得较好的数据保护效果,在通讯方面已经得到广泛应用.本文将纠删码引入云存储系统中,代替副本备份策略,以提高云存储系统的性能.实验表明该方案可以有效提高数据可靠性和空间利用率. 基于纠删码的云计算存储备份及恢复策略

如何判断Unix系统的一个库文件是32位还是64位的

如何判断Unix系统的一个库文件是32位还是64位的 某些时候,我们需要知道操作系统的位数,或者配置插件的时候需要知道主程序的位数(例如配置apache插件的时候需要知道apache的位数以便配置相应的插件),最简单的办法就是执行file命令,如: file 命令 Linux: # file libnss1_files-2.2.4.so  libnss1_files-2.2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1, n