Windows系统下磁盘结构的恢复方法

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Windows系统下磁盘结构层面的数据恢复是一类很有趣的问题,处理这类问题的效果是非常明显,往往会给用户比较神奇的感觉。这次我们就结合实例来谈谈这类问题的处理方法与技巧。首先我们来了解一下磁盘分区的大致结构:   上图是磁盘大致的分区结构。

Windows系统下磁盘结构层面的数据恢复是一类很有趣的问题,处理这类问题的效果是非常明显,往往会给用户比较神奇的感觉。这次我们就结合实例来谈谈这类问题的处理方法与技巧。首先我们来了解一下磁盘分区的大致结构:

 

上图是磁盘大致的分区结构。在一块磁盘的扇区0 - 即第一个扇区会包含主引导记录(MBR - Master Boot Record),实际就是嵌入磁盘的一段代码,主要负责在启动过程引导系统找到正确的分区继续启动流程,紧接着主引导记录就是分区表,其中包含了每个分区的起始位置和长度信息,以及其他类似文件系统类型的信息。分区表指明了每个分区在磁盘上的位置,因此系统在我们挂载磁盘之后可以通过分区表来找到每一个分区,并且通过文件系统的类型在加载每一个分区。

当然实际的分区表结构可能会更加复杂一些,比如会有扩展分区的类型,以此来支持多于四个分区的情况。另外Windows系统还支持动态磁盘的类型,有别于以上讨论的基本磁盘,动态磁盘将分区表的信息存放在磁盘尾部大约1MB的空间之上,这些我们会在以后慢慢讨论,本文将主要针对基本磁盘和少于四个分区的情况。

然后是需要给大家介绍一下分区恢复的工具dskprobe,该工具包含在Windows Support Tools当中,大家可以从微软官网上下载并解压:https://www.microsoft.com/en-us/download/details.aspx?id=18546。 该工具可以帮我们显示并修改磁盘扇区中的原始数据。当然也可以有一些简单的解析功能方便我们识别分区结构的信息。

接下去就是磁盘结构恢复的具体方法了,掌握这类问题处理方法的最好方式就是实战,因此我们来举一个实例案例,给大家一个直观印象。首先问题现象自然是:用户发现磁盘分区丢失,数据无法访问。我们的任务就是尝试将分区恢复回来。

我们首先来查看磁盘扇区0的信息,因为其中包含了分区表信息,是磁盘结构的关键信息。方法是打开dskprobe,选择Drives->Physical Drive,会列出所有的磁盘,双击出现问题的磁盘,选择Set Active单击OK即可打开对应的磁盘,注意此时我们可以保留Read Only的选项,因为在这个阶段我们需要首先查看磁盘的损坏情况,确定修复方案之后我们才会真正需要修改磁盘信息。

打开磁盘之后我们选择Sectors->Read,输出需要读取的扇区号和需要读取的长度即可,这里由于我们需要查看扇区0的信息,自然输入0和1(长度)即可。此时显示的是原数据,可以选择View->Partition Table,可以将分区表的信息解析出来:

我们可以观察一下这些信息,除了一些通用信息外,关键信息有如下几条:

  1. Relative Sector - 分区开始的位置
  2. Total Sector - 分区的长度,以扇区为单位
  3. System ID - 分区的文件系统类型

此时如果我们点击Relative Sector旁边的Go,dskprobe会帮助我们直接跳转到对应的扇区,这个扇区就是分区的第一个扇区,我们称之为分区的引导扇区(Boot Sector),其中会包含关于本分区的文件系统层面的类型,当然不同的文件系统引导扇区的结构也是不同的,所幸的是Windows系统上90%是NTFS,我们可以选择View->NTFS BootSector来解析NTFS的引导扇区,我们可以发现主要数据如下:

  1. Total Sectors - 分区长度,以扇区为单位
  2. Clusters to MFT - 文件系统元数据的存在位置
  3. Clusters to MFT mirr - 文件系统元数据镜像的存在位置
  4. Bytes per sector - 每个扇区的大小,以字节为单位
  5. Sectors per cluster - 每个簇的大小,以扇区为单位

我们发现这些关键性信息在这块磁盘上基本为0,因此可以判断该问题是由于引导扇区损坏导致的。那么怎样恢复引导扇区呢?理论上所有这些信息都是可以重构的,但是我们有一个相对简单的方法:在分区的底部一般会存有一个引导扇区的备份,因此我们可以利用这个备份来做恢复。方法如下:

注意:在做如下操作之前,强烈建议首先做一个磁盘快照,确保数据可以复原。

1. 首先我们搜索分区底部,寻找NTFS引导扇区:选择菜单Tools->Search Sectors,在offset里面填入3,在Enter characters to search for中填入NTFS进行搜索,这个动作的含义是在所有的扇区中判断是否在偏移量为3的位置有一个NTFS的字符串,如果是很有可能这个扇区就是引导扇区。当然大家也可以调整搜索的起始位置来提高搜索的效率。

2. 找到对应的扇区后就可以再次解析原始数据,再这个例子中我们可以看到备份的引导扇区在扇区是81922047,通过选择View->NTFS BootSector可以看所有的信息都在:

3. 此时我们需要选择File->Save As将其存成文件。

4. 选择Drives->Physical Drive,取消Read Only的勾选,点击Set Active,此时我们已经可以对磁盘进行写操作了。

5. 关键步骤: 我们选择File->Open打开刚才存取的文件,选择Sectors->Write,在Starting sector to write data输入2048 (就是损坏的引导扇区的位置),选择write it写入。注意在操作之前还是建议通过File->Save在备份一下被覆盖的扇区,以防万一。

此时我们回到磁盘管理器,可以发现分区已经恢复,如果分区其他部分没有损坏的话,我们就可以看到分区里的数据了。


这里我们需要注意:分区恢复的操作设计到数据,所以快照备份是必要的。另外操作时务必小心。

目录
相关文章
|
12天前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
97 4
|
3天前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
34 13
如何配置Windows主机MPIO多路径访问存储系统
|
12天前
|
Web App开发 Windows
Windows 记录一次磁盘相关的PC卡顿问题
【10月更文挑战第26天】本文记录了一次Windows系统中因磁盘问题导致的PC卡顿现象及其解决过程。通过查看任务管理器发现磁盘使用率高,经磁盘碎片整理、优化启动项与后台程序、更新磁盘驱动等步骤,最终解决了卡顿问题。建议定期进行磁盘维护,合理管理启动项,及时更新驱动以预防类似问题。
|
13天前
|
存储 Windows
Windows 记录一次磁盘相关的PC卡顿问题
【10月更文挑战第25天】本文记录了一次 Windows 10 电脑卡顿问题的排查与解决过程。通过资源监视器、事件查看器、SMART 信息检查、磁盘扫描、后台程序排查、驱动更新等步骤,最终通过磁盘碎片整理和调整虚拟内存设置解决了卡顿问题。文章还提供了定期磁盘维护、合理设置虚拟内存及关注硬件健康的预防措施。
|
16天前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
18天前
|
Windows
.NET 隐藏/自定义windows系统光标
【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。
|
18天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
18天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
19天前
|
Windows
安装Windows XP系统
安装Windows XP系统