linuxrm-rf删除⽂件之后的恢复办法
记录我尝试恢复rm命令删除⽂件之后的恢复的三种办法。
先不管使⽤哪种办法,⽹上到的主流的都是基于inode的,所以,在⽂件被删除后,马上挂起挂载盘只允许读操作,拒绝写操作是第⼀要义。
第⼀种误删⽂件进程还在
这种⽅法就⽐较简单,能还原的⽂件限制也⽐较多。如果被删除的⽂件的进程还是存在,即能到进程PID。通过命令 lsof | grep (deletefile) 查到进程id。然后就是进⼊进程⽬录 cd /proc/PID/fd 。然后可以通过 ll 命令查看具体⽂件信息,将有软连接到被删除⽂件的⽂件复制就可还原了。
第⼆种使⽤extundelete之类基于inode的⼯具
这个⼯具和还有⼀些其他类似的恢复⼯具,都是基于inode,还原⽂件的,也就是说,需要被删除⽂件的inode还在,没有被覆盖,即在⽂件删除之后,没有读写输⼊。所以第⼀件事就是挂起⽂件所在分区。但是这个操作有个问题就是,如果系统只有⼀个挂载盘,⽽且还是线上服务的话,挂起是不现实的。并且就算读写不多,但是系统本⾝没有安装这些恢复⼯具,在你安装编译这些恢复⼯具时的读写,也很可能把删除的⽂件inode覆盖了。
但是如果,系统拥有多个挂载盘,且被删除⽂件分区所在的⽂件盘挂起并不印象,你还是可以尝试这个⽅法的。或者系统本⾝就有安装这个⼯具,距离⽂件删除不是很久,也可以试⼀下,也许inode还在呢。
具体使⽤⽅法这⾥就不说了,⽹上很多教程,随便搜⼀下都是。
第三种 testdisk⼯具文件删除不了怎么办
testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费⼯具(testdisk ⽀持如下⽂件系统:
FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk ⽀持的功能: 修复分区表, 恢复已删除分区,⽤ FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,⽤备份表恢复 NTFS 启动扇区,⽤ mft 镜像表(mft mirror)修复 mft 表,查 ext2/ext3 备份的 superblock,从 FAT,NTFS 及 ext2 ⽂件系统恢复删除⽂件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制⽂件。
所以,这个⼯具是不基于inode的,即时⽂件后,没有挂起分区,读写操作⼀直在进⾏,或者过去很久了,都是可以有机会恢复⽂件的。
但也不是百分百能成功,举个栗⼦,被删除的是 /usr/local/mytest 这个⽂件夹。然后你这个⽂件夹下部分⽂件的备份,为了及时先恢复部分线上业务,然后你mkdir /usr/local/mytest 然后将部分备份复制了进
去。那么testdisk也⽆法拯救恢复了。还有就是testdisk恢复⽂件时,还需要注意看⼀下⽂件⼤⼩。如果⽂件⼤⼩显⽰为0,那么就算选择恢复这个⽂件,也是会得到⼀个0kb的⽂件。
所以这个适⽤于,⼀些inode已经被覆盖,但是⽂件物理存储块还未被覆盖的⽂件,可以尝试⼀下这个⽅法,也许可以回部分丢失⽂件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论