我有一个 MBR 表,其中有一些先前已删除的分区。
有哪些方法可以在不使用第 3 方工具或 testdisk 等软件的情况下重新组装 MBR 分区条目并恢复已删除的分区。
答案1
答案可以像“顺其自然”一样简单,也可以非常非常复杂。在我的历史中,我发生过两次 MBR 事故,都是因为“手比头快”。有更多方法可以“删除”MBR 表中的分区。通过使用cli程序、GUI程序,操作磁盘的前512字节。在MBR中有4条记录代表4个基本分区。但 GUI 程序会默默地使用扩展的 MBR,这会使恢复调查变得复杂。原则上您可以遵循两个目标: - 恢复原始 MBR, - 保存原始分区内容。您可以使用基本的 Linux 工具,也可以寻找复杂的 GUI 程序。如果您有足够的可用磁盘空间,建议首先制作位复制(磁盘映像),而不是触及原始磁盘。 R-Studio 程序有很好的效果,但我不确定许可证。如果您知道原始分区文件系统的类型(NTFS、ext3),则可以搜索起始签名。您记住,有关丢失分区的原始大小和顺序的任何信息都可能有助于减少需要扫描的空间。好吧,例如,如果您记得有两个分区,第一个 20GB,第二个 200GB,您可能会判断第一个分区的开头可能靠近磁盘的开头,第二个分区的开头可以在扇区 39062500 44040192 之间找到。假设您查找NTFS,可以使用以下命令搜索签名:
$ hd disk_image.dd -s20000000000 -n2548578304
在原始磁盘上执行此类命令您必须具有 root 权限。
如果您成功找到分区的开头,保存发现的分区似乎更容易,然后创建新的 MBR,为分区保留足够的空间,然后将保存的分区复制回新位置。您也可以尝试重新计算字节到扇区,并尝试使用一些标准工具(fdisk
、、 )重新配置 MBR 表,但结果可能无法满足您的期望。如果您提供sfdisk
更多parted
详细信息,我们可能会有更多机会帮助您。即:磁盘容量是多少、原始分区的大小(甚至大致大小)、删除分区的方式、用于恢复 MBR 的操作系统等。如果您只需要查找并保存一些文件,您可以使用 sleuthkit 等特殊工具。
答案2
每个文件系统都有一个签名。因此,如果您知道分区上使用了哪些文件系统,则可以使用十六进制编辑器打开块设备并搜索文件系统。文件系统往往在分区的开头(或附近)开始,因此当您找到文件系统的开头时,您很有可能也找到了分区的起始扇区。
分区往往在下一个分区开始之前结束,因此这就是您确定结束扇区的方式;当然,最后一个分区除外。
一旦有了开始/结束扇区,您就可以简单地使用分区工具来创建这些分区。然后,祈祷并尝试挂载文件系统。
当然,有些情况会使此过程变得困难或不可能:
- 如果文件系统存储在加密的块设备(例如 LUKS)中。
- 是否有文件系统或磁盘映像,例如用于虚拟机的文件系统或磁盘映像。如果没有更多信息,您将无法区分磁盘映像和分区之间的区别。
我上面描述的基本上就是testdisk
为您实现自动化的内容。