如何恢复 Linux 上删除的文件 (3)

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:恢复系统中删除的文件是一个非常繁琐的过程,而 e2undel 这个工具可以用来方便地恢复文件系统中已删除的文件。本文将首先讨论 e2undel 的工作原理和用法,并对之进行一些改进。然后讨论了文件系统故障、文件系统重建、磁盘物理损坏等情况下应该如何恢复数据。

  清单9. 清空超级块信息的后果

# dd if=/dev/zero of=/dev/sda2 bs=4096 count=1
  
# mount /dev/sda2 /tmp/test -t ext2
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try
    dmesg | tail or so

  由于无法从磁盘上读取到有效的超级块信息,mount 命令已经无法挂载 /dev/sda2 设备上的文件系统了。

  为了防止这个问题会造成严重的后果,ext2 文件系统会在每个块组中保存一份超级块的拷贝。当然,这会造成一定的空间浪费,因此在最新的 ext2 文件系统中,只是在特定的块组中保存一份超级块的拷贝。具体来说,是在第 0、1 个块组和第 3、5、7 的整数次幂个块组中保存一份超级块的拷贝,而其他块组中的空间都可以节省出来了。下面来看一个 20GB 大小的文件系统的实际例子:

  清单10. ext2 文件系统中超级块拷贝的位置

# dumpe2fs /dev/sdb6 | grep -i superblock
dumpe2fs 1.39 (29-May-2006)
 Primary superblock at 0, Group descriptors at 1-2
 Backup superblock at 32768, Group descriptors at 32769-32770
 Backup superblock at 98304, Group descriptors at 98305-98306
 Backup superblock at 163840, Group descriptors at 163841-163842
 Backup superblock at 229376, Group descriptors at 229377-229378
 Backup superblock at 294912, Group descriptors at 294913-294914
 Backup superblock at 819200, Group descriptors at 819201-819202
 Backup superblock at 884736, Group descriptors at 884737-884738
 Backup superblock at 1605632, Group descriptors at 1605633-1605634
 Backup superblock at 2654208, Group descriptors at 2654209-2654210
 Backup superblock at 4096000, Group descriptors at 4096001-4096002

来源:ibm    作者:冯锐 王磊    责编:豆豆技术应用

正在加载评论...