原理主要是删除的文件并没有实际上从硬盘上抹去,只是inode索引删除了相关的信息,因此专只要找到刚删除属文件的block上,就可以恢复已经删除的文件。
以下方法在ext3的文件系统上测试通过,ext2的没有测试过。假设删除的文件在dir下面,位于/dev/sda5上。
主要借助debugfs
1 运行debugfs,进入调度模式
2 执行open /dev/sda5
3 执行ls -d dir 会列出此目录最近的操作,其中可以看到<num>的日志删除记录
4 执行logmp -i <num> 显示此日志内容
5 在输出中寻找删除文件对应的block,记录下来blockid
6退出debugfs,运行dd if=/dev/sda5 of=/tmp/saved bs=1024 count=1 skip=blockid
『贰』 linux的分区被误删了,开机进入不了系统
电脑是XP和AS4的抄双系统,用AS4的GRUB引导,昨天在XP下误删了1G的SWAP分区,导致开机进入GRUB命令提示符,用命令可以进入XP,用分区工具重新创建SWAP分区后还是无法进入Linux。难倒要重装Linux?这种情况下应该是你的启动分区在swap之后,造成swap被删后,分区id改变 。 你可以在grub shell下重新指定启动分区。
假如linux安装分区/dev/hda6
你输入 root (hd0, grubinstall重装下grub swap 删了,应该跟grub 没什么关系吧!我是这样想的!用livecd 进去后,修改 /etc/fstab文件应该就可以了!我是菜鸟,不要见笑! grubinstall重装下grub
后按tab键,就可以看到当前的分区信息,根据列出的分区信息补上你现在实际根分区id就可以