国外的Linux系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令
所带来的后果“
Linux下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的inode节点中
的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被系统重新分
配时,那些被删除的数据就会被覆盖,所以误删除数据后,应马上卸载文件所在的
分区。
每个文件有inode和block组成,inode是文件系统组成的最基本单元,它保存着文
件的基本属性(大小、权限、属主组等)和存放的位置信息。而block用来存储数据。
类似key-value,inode就是key,block对应value,通过key查找key对应的value。
类似pyt hon的字典。
目录
1 查看根目录的inode值
2 安装ext undelet e
2.1 下载ext undelet e
2.2 所需依赖包
2.3 编译安装ext undelt e
3 用ext undelet e恢复文件
3.1 模拟数据误删除环境
3.2 卸载磁盘分区
3.3 查询恢复数据信息
3.4 开始恢复单个文件
4 检测是否恢复成功
查看根目录的inode值
# ls -id /
2 /
一般”根”目录的inode值为2,一个分区挂载到一个目录下时,这个”根”目录的inode值
为2
# mount /dev/sdb2 /mnt
# ls -id /mnt
2 /mnt
# umount /dev/sdb1
3、查看当前路径下的文件目录删除情况
开始恢复单个文件
默认恢复到当前目录下的RECOVERED_FILES目录中去
# extundelete /dev/sdb2 --restore-file hosts
恢复一个目录
# extundelete /dev/sdb2 --restore-directory test/
全部恢复
# extundelete /dev/sdb2 --restore-all