一种分区信息处理方法及装置.pdf

上传人:00****42 文档编号:1002016 上传时间:2018-03-24 格式:PDF 页数:12 大小:395.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110298802.1

申请日:

2011.09.28

公开号:

CN102354290A

公开日:

2012.02.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20110928|||公开

IPC分类号:

G06F9/50; G06F12/16

主分类号:

G06F9/50

申请人:

奇智软件(北京)有限公司

发明人:

唐智; 陈耀攀; 于天佐; 刘科; 陆坡; 陈佃晓

地址:

100016 北京市朝阳区酒仙桥路14号兆维大厦4层东侧单元

优先权:

专利代理机构:

北京市德权律师事务所 11302

代理人:

刘丽君

PDF下载: PDF下载
内容摘要

本发明公开了一种分区信息处理方法及装置,其中,所述方法包括:获取磁盘当前分区以及其下一分区的分区信息;根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。通过本发明,能够将分区信息提示给用户,从而避免发生用户数据丢失的现象。

权利要求书

1: 一种分区信息处理方法, 其特征在于, 包括 : 获取磁盘当前分区以及其下一分区的分区信息 ; 根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区重叠 ; 如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠的提示信息。
2: 根据权利要求 1 所述的方法, 其特征在于, 当所述当前分区及其下一分区均为扩展 分区中的逻辑分区时, 所述获取磁盘当前分区以及其下一分区的分区信息包括 : 通过以下 方式获取第一逻辑分区以及第二逻辑分区的分区信息 : 根据所述第一逻辑分区的上一分区的分区表中标记的分区信息, 确定所述第一逻辑分 区的结束位置所在的物理扇区号 ; 根据所述第一逻辑分区的分区表中标记的分区信息, 确定所述第二逻辑分区的起始位 置所在的物理扇区号 ; 所述判断当前分区与其下一分区之间是否存在分区重叠包括 : 通过以下方式判断第一 逻辑分区与第二逻辑分区之间是否存在分区重叠 : 判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的 起始位置所在的物理扇区号, 如果是, 则所述第一逻辑分区与所述第二逻辑分区之间存在 分区重叠 ; 其中, 所述第二逻辑分区是所述第一逻辑分区的下一分区。
3: 根据权利要求 2 所述的方法, 其特征在于, 所述根据所述第一逻辑分区的上一分区 的分区表中记录的分区信息, 确定所述第一逻辑分区的结束位置所在的物理扇区号包括 : 查询所述第一逻辑分区的上一分区的分区表, 从中获取第一逻辑分区的起始扇区偏移 值以及占用的总扇区数 ; 根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数, 获取该第一 逻辑扇区的结束扇区偏移值 ; 根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分 区所在的结束位置所在的物理扇区号。
4: 根据权利要求 2 所述的方法, 其特征在于, 所述根据所述第一逻辑分区的分区表中 记录的分区信息, 确定所述第二逻辑分区的起始位置所在的物理扇区号包括 : 查询所述第一逻辑分区的分区表, 从中获取所述第二逻辑分区的起始扇区偏移值 ; 根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分 区的起始位置所在的物理扇区号。
5: 根据权利要求 1 所述的方法, 其特征在于, 当所述当前分区为主分区, 其下一分区为 主分区或扩展分区时, 所述获取磁盘当前分区以及其下一分区的分区信息包括 : 根据磁盘 0 磁道 0 扇区中的分区表中标记的分区信息, 确定所述当前分区的结束位置 所在的物理扇区号, 以及下一分区的起始位置所在的物理扇区号 ; 所述判断当前分区与其下一分区之间是否存在分区重叠包括 : 判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的起始位置 所在的物理扇区号, 如果是, 则所述当前分区与下一分区之间存在分区重叠。
6: 一种分区信息处理装置, 其特征在于, 包括 : 分区信息获取单元, 用于获取磁盘当前分区以及其下一分区的分区信息 ; 2 判断单元, 用于根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区重 叠; 提示单元, 用于如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠的 提示信息。
7: 根据权利要求 6 所述的装置, 其特征在于, 当所述当前分区及其下一分区均为扩展 分区中的逻辑分区时, 所述分区信息获取单元包括 : 结束位置确定子单元, 用于根据所述第一逻辑分区的上一分区的分区表中标记的分区 信息, 确定所述第一逻辑分区的结束位置所在的物理扇区号 ; 起始位置确定子单元, 用于根据第一逻辑分区的分区表中标记的分区信息, 确定所述 第二逻辑分区的起始位置所在的物理扇区号 ; 所述判断单元具体用于 : 判断所述第一逻辑分区的结束位置所在的物理扇区号是否大 于所述第二逻辑分区的起始位置所在的物理扇区号, 如果是, 则所述第一逻辑分区与所述 第二逻辑分区之间存在分区重叠 ; 其中, 所述第二逻辑分区是所述第一逻辑分区的下一分区。
8: 根据权利要求 7 所述的装置, 其特征在于, 所述结束位置确定子单元包括 : 第一查询子单元, 用于查询所述第一逻辑分区的上一分区的分区表, 从中获取第一逻 辑分区的起始扇区偏移值以及占用的总扇区数 ; 结束扇区偏移值确定子单元, 用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑 分区占用的总扇区数, 获取该第一逻辑扇区的结束扇区偏移值 ; 结束位置物理扇区号确定子单元, 用于根据该第一逻辑扇区的结束扇区偏移值以及扩 展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。
9: 根据权利要求 7 所述的装置, 其特征在于, 所述起始位置确定子单元包括 : 第二查询子单元, 用于查询所述第一逻辑分区的分区表, 从中获取所述第二逻辑分区 的数据段起始扇区偏移值 ; 起始位置确定子单元, 用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起 始地址获取该第二逻辑分区的起始位置所在的物理扇区号。
10: 根据权利要求 6 所述的装置, 其特征在于, 当所述当前分区为主分区, 其下一分区 为主分区或扩展分区时, 所述分区信息获取单元具体用于 : 根据磁盘 0 磁道 0 扇区中的分区表中标记的分区信 息, 确定所述当前分区的结束位置所在的物理扇区号, 以及下一分区的起始位置所在的物 理扇区号 ; 所述判断单元具体用于 : 判断所述当前分区的结束位置所在的物理扇区号是否大于所 述下一分区的起始位置所在的物理扇区号, 如果是, 则所述当前分区与下一分区之间存在 分区重叠。

说明书


一种分区信息处理方法及装置

    【技术领域】
     本发明涉及计算机技术领域, 特别是涉及一种分区信息处理方法及装置。背景技术 随着科技的飞速发展和时代的进步, 计算机设备已经成为几乎人人必备的工具, 人们可以通过计算机设备对文件进行保存、 查看、 修改、 删除等操作, 大大提高了文件管理 的效率。
     计算机中存放信息的主要的存储设备是硬盘, 但是硬盘不能直接使用, 必须对硬 盘进行分割, 分割成的一块一块的硬盘区域, 这种磁盘区域就称为磁盘分区。 在传统的磁盘 管理中, 将一个硬盘分为两大类分区 : 主分区和扩展分区。主分区是能够安装操作系统, 能 够进行计算机启动的分区。主分区是独立的, 也是硬盘的第一个分区, 实际应用中所见的 C 盘通常就是主分区。在一个硬盘中最多只能存在 4 个主分区。如果一个硬盘上需要超过 4 个以上的磁盘分块的话, 那么就需要使用扩展分区了。 如果使用扩展分区, 那么一个物理硬
     盘上最多只能 3 个主分区和 1 个扩展分区。扩展分区不能直接使用, 它必须经过第二次分 割成为一个一个的逻辑分区 (例如 D 盘、 E 盘、 F 盘等等) , 然后才可以使用, 也即, 可以将文件 存放到某逻辑分区, 当需要查看该文件时, 就到该逻辑分区对应的盘符下查找。
     但是在实际应用中, 可能会出现以下现象 : 某计算机本来具有多个主分区, 或者扩 展分区中具有多个逻辑分区, 但在某次开机之后发现, 有部分甚至全部主分区无法打开, 或 者部分甚至全部的逻辑分区已经不见了, 其中保存的数据也随之丢失。
     因此, 迫切需要本领域技术人员解决的技术问题就在于, 如何避免发生用户数据 丢失的现象。 发明内容 本发明提供一种分区信息处理方法及装置, 能够将分区信息提示给用户, 从而避 免发生磁盘的逻辑分区丢失的现象。
     本发明提供了如下方案 : 一种分区信息处理方法, 包括 : 获取磁盘当前分区以及其下一分区的分区信息 ; 根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区重叠 ; 如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠的提示信息。
     其中, 当所述当前分区及其下一分区均为扩展分区中的逻辑分区时, 所述获取磁 盘当前分区以及其下一分区的分区信息包括 : 通过以下方式获取第一逻辑分区以及第二逻 辑分区的分区信息 : 根据所述第一逻辑分区的上一分区的分区表中标记的分区信息, 确定所述第一逻辑分 区的结束位置所在的物理扇区号 ; 根据所述第一逻辑分区的分区表中标记的分区信息, 确定所述第二逻辑分区的起始位
     置所在的物理扇区号 ; 所述判断当前分区与其下一分区之间是否存在分区重叠包括 : 通过以下方式判断第一 逻辑分区与第二逻辑分区之间是否存在分区重叠 : 判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的 起始位置所在的物理扇区号, 如果是, 则所述第一逻辑分区与所述第二逻辑分区之间存在 分区重叠 ; 其中, 所述第二逻辑分区是所述第一逻辑分区的下一分区。
     其中, 所述根据所述第一逻辑分区的上一分区的分区表中记录的分区信息, 确定 所述第一逻辑分区的结束位置所在的物理扇区号包括 : 查询所述第一逻辑分区的上一分区的分区表, 从中获取第一逻辑分区的起始扇区偏移 值以及占用的总扇区数 ; 根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数, 获取该第一 逻辑扇区的结束扇区偏移值 ; 根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分 区所在的结束位置所在的物理扇区号。
     其中, 所述根据所述第一逻辑分区的分区表中记录的分区信息, 确定所述第二逻 辑分区的起始位置所在的物理扇区号包括 : 查询所述第一逻辑分区的分区表, 从中获取所述第二逻辑分区的起始扇区偏移值 ; 根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分 区的起始位置所在的物理扇区号。
     其中, 当所述当前分区为主分区, 其下一分区为主分区或扩展分区时, 所述获取磁 盘当前分区以及其下一分区的分区信息包括 : 根据磁盘 0 磁道 0 扇区中的分区表中标记的分区信息, 确定所述当前分区的结束位置 所在的物理扇区号, 以及下一分区的起始位置所在的物理扇区号 ; 所述判断当前分区与其下一分区之间是否存在分区重叠包括 : 判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的起始位置 所在的物理扇区号, 如果是, 则所述当前分区与下一分区之间存在分区重叠。
     一种分区信息处理装置, 包括 : 分区信息获取单元, 用于获取磁盘当前分区以及其下一分区的分区信息 ; 判断单元, 用于根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区重 叠; 提示单元, 用于如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠的 提示信息。
     其中, 当所述当前分区及其下一分区均为扩展分区中的逻辑分区时, 所述分区信 息获取单元包括 : 结束位置确定子单元, 用于根据所述第一逻辑分区的上一分区的分区表中标记的分区 信息, 确定所述第一逻辑分区的结束位置所在的物理扇区号 ; 起始位置确定子单元, 用于根据第一逻辑分区的分区表中标记的分区信息, 确定所述 第二逻辑分区的起始位置所在的物理扇区号 ;所述判断单元具体用于 : 判断所述第一逻辑分区的结束位置所在的物理扇区号是否大 于所述第二逻辑分区的起始位置所在的物理扇区号, 如果是, 则所述第一逻辑分区与所述 第二逻辑分区之间存在分区重叠 ; 其中, 所述第二逻辑分区是所述第一逻辑分区的下一分区。
     其中, 所述结束位置确定子单元包括 : 第一查询子单元, 用于查询所述第一逻辑分区的上一分区的分区表, 从中获取第一逻 辑分区的起始扇区偏移值以及占用的总扇区数 ; 结束扇区偏移值确定子单元, 用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑 分区占用的总扇区数, 获取该第一逻辑扇区的结束扇区偏移值 ; 结束位置物理扇区号确定子单元, 用于根据该第一逻辑扇区的结束扇区偏移值以及扩 展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。
     其中, 所述起始位置确定子单元包括 : 第二查询子单元, 用于查询所述第一逻辑分区的分区表, 从中获取所述第二逻辑分区 的数据段起始扇区偏移值 ; 起始位置确定子单元, 用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起 始地址获取该第二逻辑分区的起始位置所在的物理扇区号。 其中, 当所述当前分区为主分区, 其下一分区为主分区或扩展分区时, 所述分区信息获取单元具体用于 : 根据磁盘 0 磁道 0 扇区中的分区表中标记的分区信 息, 确定所述当前分区的结束位置所在的物理扇区号, 以及下一分区的起始位置所在的物 理扇区号 ; 所述判断单元具体用于 : 判断所述当前分区的结束位置所在的物理扇区号是否大于所 述下一分区的起始位置所在的物理扇区号, 如果是, 则所述当前分区与下一分区之间存在 分区重叠。
     根据本发明提供的具体实施例, 本发明公开了以下技术效果 : 在本发明实施例中, 由于能够判断出磁盘分区之间是否存在分区重叠的现象, 并且能 够在发现存在分区重叠现象之后, 及时地向用户发出提示信息, 因此, 当用户看到这样的提 示信息之后, 就可以在向分区中存储数据时, 尽量避免将分区占用得过满, 进而就可以从一 定程度上避免分区丢失的现象产生。
     附图说明
     为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例中所 需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施 例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获 得其他的附图。
     图 1 是本发明实施例提供的方法的流程图 ; 图 2 是本发明实施例提供的装置的示意图。 具体实施方式
     下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员所获得的所有其他实施例, 都属于本发明保护的 范围。
     首先需要说明的是, 在磁盘的 0 扇区 0 磁道中存在分区表, 该分区表中标记了各个 主分区的起始地址、 结束地址, 以及扩展分区的起始地址等分区信息。 每个主分区的起始位 置处都保存有 DBR(一般占用 63 个扇区, 当然也可能是其他数目) , 以及 MFT(Master File Table, 主文件表) 或者 FAT(File Allocation Table, 文件配置表) 文件表等, 如果这些数 据被破坏, 会导致对应的主分区无法打开。
     另外, 扩展分区的每个逻辑分区由分区信息段 (一般包括分区表以及主文件表等, 这部分占用的磁盘总扇区数通常是固定的, 例如在某种系统中共占用 63 个扇区) 和数据段 两部分组成, 其中, 分区表通常位于每个逻辑分区的起始位置, 用于保存当前逻辑分区的分 区信息以及下一分区的分区信息, 数据段用于保存具体的数据。逻辑分区是链表形式保存 在磁盘中, 倘若硬盘丢失了分区表, 数据就无法按顺序读取和写入, 导致无法操作。
     而本发明人在实现本发明的过程中发现, 之所以会出现主分区无法打开或者逻辑 分区丢失的现象, 一种可能的原因就在于 : 在电脑使用一段时间后, 系统越来越慢, 此时避 免不了要重装系统, 而限于电脑重装的复杂性和耗时, GHOST 做系统已经越来越普及。所谓 GHOST, 实际上是一种硬盘备份还原工具, 它采取镜象系统分区或者文件夹的方式备份和还 原数据。但是, 由于现在网上各种形式的 GHOST 软件和系统镜像文件, 很多不规范, 给用户 系统带来了风险。其中一种风险就是引起分区重叠的问题, 也即, GHOST 自带的分区信息和 原用户的分区信息之间存在冲突, 从而造成分区重叠。此外, 一些是使用了有 BUG 的分区软 件, 也可能造成分区的重叠。 分区重叠是指某分区与下一分区之间在占用的扇区上存在交叠的部分。 这种重叠 可能发生在不同主分区之间, 还有可能出现在主分区与扩展分区之间, 还可能出现在扩展 分区的不同逻辑分区之间。
     以逻辑分区之间的分区重叠为例, 如果某一逻辑分区 (例如为 B 分区) 的分区表, 写 入到前面逻辑分区 (例如为 A 分区) 的数据段中, 此时, 一旦 A 分区数据被写满, 则必然会把 B 分区的分区表给覆盖。如前文所述, 由于逻辑分区是链表形式保存在磁盘中, 当前面分区 丢失, 后面的分区将全部丢失, 因此, 这种分区重叠的现象会造成逻辑分区的丢失, 进而造 成用户数据的丢失。尤其是现在游戏和影音文件等的体积越来越大, 一个磁盘分区经常被 写满, 这样, 一旦发生分区重叠, 则分区丢失的情况就会越来越多。 例如, 第一个逻辑分区的 分区表保存在了其前面主分区中 (即第一个逻辑分区的起始位置小于最后一个主分区的结 束位置) , 这样分区就会重叠, 当最后一个主分区写满后, 第一个逻辑分区的分区表就会被 覆盖, 这样第一个逻辑分区就会丢失。而第一个逻辑分区的分区表中又记录了第二个逻辑 分区的起始信息, 因此, 第一个逻辑分区丢失之后, 第二个逻辑分区也随之丢失, 以此类推, 只要第一个逻辑分区丢失, 后面的逻辑分区将全部丢失。
     如果是主分区 C 与主分区 D 之间存在分区重叠, 则主分区 D 中的 DBR、 MFT 等数据 可能会被主分区 C 中的数据覆盖, 造成主分区 D 无法打开。
     在以上分析基础上, 本发明实施例提供了一种分区信息处理方法, 参见图 1, 该方 法包括以下步骤 :
     S101 : 获取磁盘当前分区以及其下一分区的分区信息 ; 获取磁盘的扩展分区的地址 ; S102 : 根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区重叠 ; 对于某物理磁盘而言, 在其 0 磁道 0 扇区保存了该物理磁盘的主分区以及扩展分区的 地址, 因此, 通过读取物理磁盘 0 磁道 0 扇区的信息, 即可获取到主分区的地址以及扩展分 区的地址。
     需要说明的是, 由于磁盘被划分为多个扇区, 并按照一定规则编号为 1、 2、 3……, 因此, 主分区及扩展分区的地址通常可以用所在扇区的物理扇区号来表示, 例如为 : 176715。该地址通常是一个绝对的值, 也就是说, 如果 0 磁道 0 扇区中记载的扩展分区的起 始扇区的物理扇区号是 176715, 则扩展分区就是从该扇区号为 176715 的扇区开始的。
     另外需要说明的是, 在实际应用中, 用户可能在自己的计算机中配备多块硬盘, 也 就是说存在多个物理磁盘, 此时, 可以每个物理磁盘都可能会发生逻辑分区重叠的现象, 因 此, 可以首先枚举所有物理磁盘, 获取所有物理磁盘的句柄, 并分别在各个物理磁盘的 0 磁 道 0 扇区中获取各自的扩展分区的地址的相关信息。
     而如果需要获取逻辑分区的分区信息, 则如前文所述, 由于每个逻辑分区都有自 己的分区表, 每个分区表中都保存有当前逻辑分区以及逻辑分区的分区信息 (包括分区的 起始位置以及占用的总扇区数等) , 因此, 逻辑分区的分区信息, 可以从逻辑分区的分区表 中。 需要说明的是, 在扩展分区的逻辑分区中, 在每个逻辑分区的开始位置扇区有 EBR (Extended Boot Record) 。EBR 和 MBR 不同, 它没有引导代码, 而是保存了两个分区表 : 第 一个分区表是当前分区除本分区 DBR(DBR 一般占用 63 扇区, 也有 2048 或者其他值) 之外 数据区的起始扇区和占用的扇区数 ; 第二个分区表是下一个分区的起始扇区数和占用的扇 区数 (包含 DBR 及数据区在内) 。
     在下一分区的起始位置又包含两个分区表 (如果有三个逻辑分区以上) : 第一个分 区表记录了除本分区 DBR 之外数据区的起始扇区和占用的扇区数, 第二个分区表中记录了 第三个扩展分区的起始扇区和占用的扇区数。
     依次类推, 逻辑分区中的分区表是以链表形式保存的。逻辑分区的起始地址实际 可以从其上一个逻辑分区的分区表中获取。
     例如, 第一个逻辑分区 A 的起始扇区取该逻辑分区所在扩展分区的起始扇区, 它 的结束位置为起始扇区加上它所占用的扇区数。第二个逻辑分区 B 的起始地址取逻辑分区 A 中的分区表中第二个分区表项记录的起始地址和占用的扇区数。后面的某逻辑分区 Y 占 用扇区的判断依据 : 以前面的逻辑分区 X 中的分区表中第二个分区表项记录的起始扇区和 占用的扇区数为准。
     当某一逻辑分区 A 的起始扇区所在位置加上它所占用的扇区数大于它后面逻辑 分区 B(A 与 B 在同一扩展分区中) 的起始扇区所在的位置, 就会造成分区重叠。
     例如 : A 逻辑分区起始扇区是 1000 扇区, 它占用 2000 个扇区, B 逻辑分区起始扇 区在 2920 扇区, 占用 1000 个扇区。这样 A 逻辑分区中结束扇区应该是 3000 扇区, 而逻辑 分区 B 起始扇区是 2920, A 的结束扇区大于 B 开始扇区, 他们共有 80 个扇区的重叠。这 80 个扇区中可能记录着 B 分区的分区表、 DBR 和一些其他数据 (NTFS 中可能会有 MFT, FAT 格 式中, 可能会有 FAT 表) 。当 A 逻辑分区写满后, 就会在这 80 个扇区写入数据, 然后, B 分区
     中的分区表、 DBR 和其他数据就会被破坏, 导致 B 分区及其后面的分区全部丢失, 从而造成 这些分区上的数据全部丢失, 以用户造成损失。
     因此, 具体在获取磁盘当前分区以及其下一分区的分区信息时, 可以获取当前分 区所在的结束扇区的物理扇区号, 以及下一分区所在的起始扇区的物理扇区号 ; 这样, 就可 以通过判断当前分区所在的结束扇区的物理扇区号是否大于其下一分区所在的起始扇区 的物理扇区号, 如果是, 则当前分区与其下一分区之间存在分区重叠。
     具体的, 如果当前分区及其下一分区均为扩展分区中的逻辑分区时, 所述获取磁 盘当前分区以及其下一分区的分区信息包括 : 通过以下方式获取第一逻辑分区以及第二逻 辑分区的分区信息 : 根据所述第一逻辑分区的上一分区的分区表中标记的分区信息, 确定 所述第一逻辑分区的结束位置所在的物理扇区号 ; 根据所述第一逻辑分区的分区表中标记 的分区信息, 确定所述第二逻辑分区的起始位置所在的物理扇区号 ; 然后, 判断所述第一逻 辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理 扇区号, 如果是, 则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠。
     其中, 根据第一逻辑分区的上一分区的分区表中记录的分区信息, 确定所述第一 逻辑分区的结束位置所在的物理扇区号时, 具体可以为 : 查询所述第一逻辑分区的上一分 区的分区表, 从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数 ; 根据该第一 逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数, 获取该第一逻辑扇区的结束 扇区偏移值 ; 根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一 逻辑分区所在的结束位置所在的物理扇区号。
     根据所述第一逻辑分区的分区表中记录的分区信息, 确定第二逻辑分区的起始位 置所在的物理扇区号时, 具体可以为 : 查询所述第一逻辑分区的分区表, 从中获取所述第二 逻辑分区的起始扇区偏移值 ; 根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始 地址获取该第二逻辑分区的起始位置所在的物理扇区号。
     如果当前分区为主分区, 其下一分区为主分区或扩展分区时, 则具体在获取磁盘 当前分区以及其下一分区的分区信息时, 可以是根据磁盘 0 磁道 0 扇区中的分区表中标记 的分区信息, 确定所述当前分区的结束位置所在的物理扇区号, 以及下一分区的起始位置 所在的物理扇区号 ; 进而, 通过判断当前分区的结束位置所在的物理扇区号是否大于下一 分区的起始位置所在的物理扇区号, 如果是, 则当前分区与下一分区之间存在分区重叠。
     需要说明的是, 具体实现时, 除了利用起始扇区的扇区号以及结束扇区的扇区号 来表示逻辑分区的起始位置及结束位置以外, 还可以利用其它的信息来表示, 例如, 起始字 节、 结束字节等等。或者, 由于分区表中记载的 “偏移量” 均是相对于扩展分区的起始地址 的, 因此。 如果不计算起始扇区及结束扇区的物理扇区号, 而是之间利用起始扇区及结束扇 区的 “偏移量” 来判断逻辑扇区之间是否存在分区重叠也是可以的, 这里不再赘述。
     S103 : 如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠的提示 信息。
     如果判断出逻辑分区之间存在分区重叠的现象, 则可以向用户发出提示信息, 用 以提示用户其计算机存在逻辑分区丢失或主分区无法打开乃至数据丢失的风险。这样, 当 用户看到这样的提示信息之后, 就可以在向逻辑分区或主分区中存储数据时, 尽量避免将 分区占用得过满, 进而就可以从一定程度上避免用户数据丢失的现象产生。当然, 在实际应用中, 由于分区可能有多个, 可能并不是所有相邻的分区之间都存 在分区重叠, 而是只有其中的某两个分区之间 (例如分区 A 与分区 B) 存在分区重叠的现象, 此时, 只有当分区 A 写的过满时, 才会引起分区丢失的问题, 而其他的分区即时被写满, 也 不会引起分区丢失。因此, 就可以将具体那两个分区之间存在分区重叠提示给用户, 例如, 提示用户 “分区 A 与分区 B 之间存在分区重叠” , 这样, 用户只要注意分区 A 中的数据不要写 的过满, 而其他的分区由于不存在重叠的问题, 因此, 可以不必注意。从而使得用户更加将 专注于可能会引起分区丢失问题的分区, 同时又可以使得其他不会引起分区丢失问题的分 区空间得到充分得利用。
     与本发明实施例提供的分区信息处理方法相对应, 本发明实施例还提供了一种分 区信息处理装置, 参见图 2, 该装置包括 : 分区信息获取单元 201, 用于获取磁盘当前分区以及其下一分区的分区信息 ; 判断单元 202, 用于根据所述分区信息, 判断当前分区与其下一分区之间是否存在分区 重叠 ; 提示单元 203, 用于如果存在分区重叠, 则向用户发出用以表示分区之间存在分区重叠 的提示信息。 具体实现时, 当所述当前分区及其下一分区均为扩展分区中的逻辑分区时, 分区 信息获取单元 201 可以包括 : 结束位置确定子单元, 用于根据所述第一逻辑分区的上一分 区的分区表中标记的分区信息, 确定所述第一逻辑分区的结束位置所在的物理扇区号 ; 起始位置确定子单元, 用于根据第一逻辑分区的分区表中标记的分区信息, 确定所述 第二逻辑分区的起始位置所在的物理扇区号 ; 判断单元 202 具体可以用于判断所述第一逻辑分区的结束位置所在的物理扇区号是 否大于所述第二逻辑分区的起始位置所在的物理扇区号, 如果是, 则所述第一逻辑分区与 所述第二逻辑分区之间存在分区重叠 ; 其中, 所述第二逻辑分区是所述第一逻辑分区的下一分区。
     其中, 所述结束位置确定子单元具体可以包括 : 第一查询子单元, 用于查询所述第一逻辑分区的上一分区的分区表, 从中获取第一逻 辑分区的起始扇区偏移值以及占用的总扇区数 ; 结束扇区偏移值确定子单元, 用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑 分区占用的总扇区数, 获取该第一逻辑扇区的结束扇区偏移值 ; 结束位置物理扇区号确定子单元, 用于根据该第一逻辑扇区的结束扇区偏移值以及扩 展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。
     所述起始位置确定子单元具体可以包括 : 第二查询子单元, 用于查询所述第一逻辑分区的分区表, 从中获取所述第二逻辑分区 的数据段起始扇区偏移值 ; 起始位置确定子单元, 用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起 始地址获取该第二逻辑分区的起始位置所在的物理扇区号。
     当所述当前分区为主分区, 其下一分区为主分区或扩展分区时, 分区信息获取单 元 201 具体用于 : 根据磁盘 0 磁道 0 扇区中的分区表中标记的分区信息, 确定所述当前分区 的结束位置所在的物理扇区号, 以及下一分区的起始位置所在的物理扇区号 ;
     判断单元 202 具体用于 : 判断所述当前分区的结束位置所在的物理扇区号是否大于所 述下一分区的起始位置所在的物理扇区号, 如果是, 则所述当前分区与下一分区之间存在 分区重叠。
     在本发明实施例提供的分区信息处理装置中, 由于能够判断出分区之间是否存在 分区重叠的现象, 并且能够在发现存在分区重叠现象之后, 及时地向用户发出提示信息, 因 此, 当用户看到这样的提示信息之后, 就可以在向分区中存储数据时, 尽量避免将分区占用 得过满, 进而就可以从一定程度上避免用户数据丢失的现象产生。
     需要说明的是, 本发明实施例提供的装置是与前述方法实施例对应的, 因此, 装置 实施例中未详述部分可参见方法实施例中的介绍, 这里不再赘述。
     以上对本发明所提供的一种分区信息处理方法及装置, 进行了详细介绍, 本文中 应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助 理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处。综上所述, 本说明书内容不应理解为对本 发明的限制。

一种分区信息处理方法及装置.pdf_第1页
第1页 / 共12页
一种分区信息处理方法及装置.pdf_第2页
第2页 / 共12页
一种分区信息处理方法及装置.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种分区信息处理方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种分区信息处理方法及装置.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102354290A43申请公布日20120215CN102354290ACN102354290A21申请号201110298802122申请日20110928G06F9/50200601G06F12/1620060171申请人奇智软件(北京)有限公司地址100016北京市朝阳区酒仙桥路14号兆维大厦4层东侧单元72发明人唐智陈耀攀于天佐刘科陆坡陈佃晓74专利代理机构北京市德权律师事务所11302代理人刘丽君54发明名称一种分区信息处理方法及装置57摘要本发明公开了一种分区信息处理方法及装置,其中,所述方法包括获取磁盘当前分区以及其下一分区的分区信息;根据所述分区信息,判断当。

2、前分区与其下一分区之间是否存在分区重叠;如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。通过本发明,能够将分区信息提示给用户,从而避免发生用户数据丢失的现象。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图1页CN102354299A1/2页21一种分区信息处理方法,其特征在于,包括获取磁盘当前分区以及其下一分区的分区信息;根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。2根据权利要求1所述的方法,其特征在于,当所述当前分区及其下一分区均为扩展分。

3、区中的逻辑分区时,所述获取磁盘当前分区以及其下一分区的分区信息包括通过以下方式获取第一逻辑分区以及第二逻辑分区的分区信息根据所述第一逻辑分区的上一分区的分区表中标记的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;根据所述第一逻辑分区的分区表中标记的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号;所述判断当前分区与其下一分区之间是否存在分区重叠包括通过以下方式判断第一逻辑分区与第二逻辑分区之间是否存在分区重叠判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理扇区号,如果是,则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠;其中,所。

4、述第二逻辑分区是所述第一逻辑分区的下一分区。3根据权利要求2所述的方法,其特征在于,所述根据所述第一逻辑分区的上一分区的分区表中记录的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号包括查询所述第一逻辑分区的上一分区的分区表,从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。4根据权利要求2所述的方法,其特征在于,所述根据所述第一逻辑分区的分区表中记录的分区信息,确定所述第二逻。

5、辑分区的起始位置所在的物理扇区号包括查询所述第一逻辑分区的分区表,从中获取所述第二逻辑分区的起始扇区偏移值;根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。5根据权利要求1所述的方法,其特征在于,当所述当前分区为主分区,其下一分区为主分区或扩展分区时,所述获取磁盘当前分区以及其下一分区的分区信息包括根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在的物理扇区号;所述判断当前分区与其下一分区之间是否存在分区重叠包括判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区。

6、的起始位置所在的物理扇区号,如果是,则所述当前分区与下一分区之间存在分区重叠。6一种分区信息处理装置,其特征在于,包括分区信息获取单元,用于获取磁盘当前分区以及其下一分区的分区信息;权利要求书CN102354290ACN102354299A2/2页3判断单元,用于根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;提示单元,用于如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。7根据权利要求6所述的装置,其特征在于,当所述当前分区及其下一分区均为扩展分区中的逻辑分区时,所述分区信息获取单元包括结束位置确定子单元,用于根据所述第一逻辑分区的上一分区的分区表中标记的。

7、分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;起始位置确定子单元,用于根据第一逻辑分区的分区表中标记的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号;所述判断单元具体用于判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理扇区号,如果是,则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠;其中,所述第二逻辑分区是所述第一逻辑分区的下一分区。8根据权利要求7所述的装置,其特征在于,所述结束位置确定子单元包括第一查询子单元,用于查询所述第一逻辑分区的上一分区的分区表,从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;结束扇区偏移值。

8、确定子单元,用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;结束位置物理扇区号确定子单元,用于根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。9根据权利要求7所述的装置,其特征在于,所述起始位置确定子单元包括第二查询子单元,用于查询所述第一逻辑分区的分区表,从中获取所述第二逻辑分区的数据段起始扇区偏移值;起始位置确定子单元,用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。10根据权利要求6所述的装置,其特征在于,当所述当前分。

9、区为主分区,其下一分区为主分区或扩展分区时,所述分区信息获取单元具体用于根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在的物理扇区号;所述判断单元具体用于判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的起始位置所在的物理扇区号,如果是,则所述当前分区与下一分区之间存在分区重叠。权利要求书CN102354290ACN102354299A1/8页4一种分区信息处理方法及装置技术领域0001本发明涉及计算机技术领域,特别是涉及一种分区信息处理方法及装置。背景技术0002随着科技的飞速发展和时代的进步,计算机设备已经。

10、成为几乎人人必备的工具,人们可以通过计算机设备对文件进行保存、查看、修改、删除等操作,大大提高了文件管理的效率。0003计算机中存放信息的主要的存储设备是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域,这种磁盘区域就称为磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区主分区和扩展分区。主分区是能够安装操作系统,能够进行计算机启动的分区。主分区是独立的,也是硬盘的第一个分区,实际应用中所见的C盘通常就是主分区。在一个硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。如果使用扩展分区,那么一个物理硬盘上最多只能3。

11、个主分区和1个扩展分区。扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区(例如D盘、E盘、F盘等等),然后才可以使用,也即,可以将文件存放到某逻辑分区,当需要查看该文件时,就到该逻辑分区对应的盘符下查找。0004但是在实际应用中,可能会出现以下现象某计算机本来具有多个主分区,或者扩展分区中具有多个逻辑分区,但在某次开机之后发现,有部分甚至全部主分区无法打开,或者部分甚至全部的逻辑分区已经不见了,其中保存的数据也随之丢失。0005因此,迫切需要本领域技术人员解决的技术问题就在于,如何避免发生用户数据丢失的现象。发明内容0006本发明提供一种分区信息处理方法及装置,能够将分区信息提。

12、示给用户,从而避免发生磁盘的逻辑分区丢失的现象。0007本发明提供了如下方案一种分区信息处理方法,包括获取磁盘当前分区以及其下一分区的分区信息;根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。0008其中,当所述当前分区及其下一分区均为扩展分区中的逻辑分区时,所述获取磁盘当前分区以及其下一分区的分区信息包括通过以下方式获取第一逻辑分区以及第二逻辑分区的分区信息根据所述第一逻辑分区的上一分区的分区表中标记的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;根据所述第一逻辑分区的分区表中标记的分区信息,确。

13、定所述第二逻辑分区的起始位说明书CN102354290ACN102354299A2/8页5置所在的物理扇区号;所述判断当前分区与其下一分区之间是否存在分区重叠包括通过以下方式判断第一逻辑分区与第二逻辑分区之间是否存在分区重叠判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理扇区号,如果是,则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠;其中,所述第二逻辑分区是所述第一逻辑分区的下一分区。0009其中,所述根据所述第一逻辑分区的上一分区的分区表中记录的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号包括查询所述第一逻辑分区的上一分区的分区表,。

14、从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。0010其中,所述根据所述第一逻辑分区的分区表中记录的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号包括查询所述第一逻辑分区的分区表,从中获取所述第二逻辑分区的起始扇区偏移值;根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。0011其中,当所述当前分区为主分区,其下一分区为。

15、主分区或扩展分区时,所述获取磁盘当前分区以及其下一分区的分区信息包括根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在的物理扇区号;所述判断当前分区与其下一分区之间是否存在分区重叠包括判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的起始位置所在的物理扇区号,如果是,则所述当前分区与下一分区之间存在分区重叠。0012一种分区信息处理装置,包括分区信息获取单元,用于获取磁盘当前分区以及其下一分区的分区信息;判断单元,用于根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;提示单元,用于如果存在分区重叠,。

16、则向用户发出用以表示分区之间存在分区重叠的提示信息。0013其中,当所述当前分区及其下一分区均为扩展分区中的逻辑分区时,所述分区信息获取单元包括结束位置确定子单元,用于根据所述第一逻辑分区的上一分区的分区表中标记的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;起始位置确定子单元,用于根据第一逻辑分区的分区表中标记的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号;说明书CN102354290ACN102354299A3/8页6所述判断单元具体用于判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理扇区号,如果是,则所述第一逻辑分区与所述。

17、第二逻辑分区之间存在分区重叠;其中,所述第二逻辑分区是所述第一逻辑分区的下一分区。0014其中,所述结束位置确定子单元包括第一查询子单元,用于查询所述第一逻辑分区的上一分区的分区表,从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;结束扇区偏移值确定子单元,用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;结束位置物理扇区号确定子单元,用于根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。0015其中,所述起始位置确定子单元包括第二查询子单元,用于查询所述第一逻辑分区的分区表,从。

18、中获取所述第二逻辑分区的数据段起始扇区偏移值;起始位置确定子单元,用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。0016其中,当所述当前分区为主分区,其下一分区为主分区或扩展分区时,所述分区信息获取单元具体用于根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在的物理扇区号;所述判断单元具体用于判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的起始位置所在的物理扇区号,如果是,则所述当前分区与下一分区之间存在分区重叠。0017根据本发明提供的具体实施例,本。

19、发明公开了以下技术效果在本发明实施例中,由于能够判断出磁盘分区之间是否存在分区重叠的现象,并且能够在发现存在分区重叠现象之后,及时地向用户发出提示信息,因此,当用户看到这样的提示信息之后,就可以在向分区中存储数据时,尽量避免将分区占用得过满,进而就可以从一定程度上避免分区丢失的现象产生。附图说明0018为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0019图1是本发明实施例提供的方法的流程图;图2是本。

20、发明实施例提供的装置的示意图。具体实施方式0020下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完说明书CN102354290ACN102354299A4/8页7整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。0021首先需要说明的是,在磁盘的0扇区0磁道中存在分区表,该分区表中标记了各个主分区的起始地址、结束地址,以及扩展分区的起始地址等分区信息。每个主分区的起始位置处都保存有DBR(一般占用63个扇区,当然也可能是其他数目),以及MFT(MASTERFI。

21、LETABLE,主文件表)或者FAT(FILEALLOCATIONTABLE,文件配置表)文件表等,如果这些数据被破坏,会导致对应的主分区无法打开。0022另外,扩展分区的每个逻辑分区由分区信息段(一般包括分区表以及主文件表等,这部分占用的磁盘总扇区数通常是固定的,例如在某种系统中共占用63个扇区)和数据段两部分组成,其中,分区表通常位于每个逻辑分区的起始位置,用于保存当前逻辑分区的分区信息以及下一分区的分区信息,数据段用于保存具体的数据。逻辑分区是链表形式保存在磁盘中,倘若硬盘丢失了分区表,数据就无法按顺序读取和写入,导致无法操作。0023而本发明人在实现本发明的过程中发现,之所以会出现主分。

22、区无法打开或者逻辑分区丢失的现象,一种可能的原因就在于在电脑使用一段时间后,系统越来越慢,此时避免不了要重装系统,而限于电脑重装的复杂性和耗时,GHOST做系统已经越来越普及。所谓GHOST,实际上是一种硬盘备份还原工具,它采取镜象系统分区或者文件夹的方式备份和还原数据。但是,由于现在网上各种形式的GHOST软件和系统镜像文件,很多不规范,给用户系统带来了风险。其中一种风险就是引起分区重叠的问题,也即,GHOST自带的分区信息和原用户的分区信息之间存在冲突,从而造成分区重叠。此外,一些是使用了有BUG的分区软件,也可能造成分区的重叠。0024分区重叠是指某分区与下一分区之间在占用的扇区上存在交。

23、叠的部分。这种重叠可能发生在不同主分区之间,还有可能出现在主分区与扩展分区之间,还可能出现在扩展分区的不同逻辑分区之间。0025以逻辑分区之间的分区重叠为例,如果某一逻辑分区(例如为B分区)的分区表,写入到前面逻辑分区(例如为A分区)的数据段中,此时,一旦A分区数据被写满,则必然会把B分区的分区表给覆盖。如前文所述,由于逻辑分区是链表形式保存在磁盘中,当前面分区丢失,后面的分区将全部丢失,因此,这种分区重叠的现象会造成逻辑分区的丢失,进而造成用户数据的丢失。尤其是现在游戏和影音文件等的体积越来越大,一个磁盘分区经常被写满,这样,一旦发生分区重叠,则分区丢失的情况就会越来越多。例如,第一个逻辑分。

24、区的分区表保存在了其前面主分区中(即第一个逻辑分区的起始位置小于最后一个主分区的结束位置),这样分区就会重叠,当最后一个主分区写满后,第一个逻辑分区的分区表就会被覆盖,这样第一个逻辑分区就会丢失。而第一个逻辑分区的分区表中又记录了第二个逻辑分区的起始信息,因此,第一个逻辑分区丢失之后,第二个逻辑分区也随之丢失,以此类推,只要第一个逻辑分区丢失,后面的逻辑分区将全部丢失。0026如果是主分区C与主分区D之间存在分区重叠,则主分区D中的DBR、MFT等数据可能会被主分区C中的数据覆盖,造成主分区D无法打开。0027在以上分析基础上,本发明实施例提供了一种分区信息处理方法,参见图1,该方法包括以下步。

25、骤说明书CN102354290ACN102354299A5/8页8S101获取磁盘当前分区以及其下一分区的分区信息;获取磁盘的扩展分区的地址;S102根据所述分区信息,判断当前分区与其下一分区之间是否存在分区重叠;对于某物理磁盘而言,在其0磁道0扇区保存了该物理磁盘的主分区以及扩展分区的地址,因此,通过读取物理磁盘0磁道0扇区的信息,即可获取到主分区的地址以及扩展分区的地址。0028需要说明的是,由于磁盘被划分为多个扇区,并按照一定规则编号为1、2、3,因此,主分区及扩展分区的地址通常可以用所在扇区的物理扇区号来表示,例如为176715。该地址通常是一个绝对的值,也就是说,如果0磁道0扇区中记。

26、载的扩展分区的起始扇区的物理扇区号是176715,则扩展分区就是从该扇区号为176715的扇区开始的。0029另外需要说明的是,在实际应用中,用户可能在自己的计算机中配备多块硬盘,也就是说存在多个物理磁盘,此时,可以每个物理磁盘都可能会发生逻辑分区重叠的现象,因此,可以首先枚举所有物理磁盘,获取所有物理磁盘的句柄,并分别在各个物理磁盘的0磁道0扇区中获取各自的扩展分区的地址的相关信息。0030而如果需要获取逻辑分区的分区信息,则如前文所述,由于每个逻辑分区都有自己的分区表,每个分区表中都保存有当前逻辑分区以及逻辑分区的分区信息(包括分区的起始位置以及占用的总扇区数等),因此,逻辑分区的分区信息。

27、,可以从逻辑分区的分区表中。0031需要说明的是,在扩展分区的逻辑分区中,在每个逻辑分区的开始位置扇区有EBR(EXTENDEDBOOTRECORD)。EBR和MBR不同,它没有引导代码,而是保存了两个分区表第一个分区表是当前分区除本分区DBR(DBR一般占用63扇区,也有2048或者其他值)之外数据区的起始扇区和占用的扇区数;第二个分区表是下一个分区的起始扇区数和占用的扇区数(包含DBR及数据区在内)。0032在下一分区的起始位置又包含两个分区表(如果有三个逻辑分区以上)第一个分区表记录了除本分区DBR之外数据区的起始扇区和占用的扇区数,第二个分区表中记录了第三个扩展分区的起始扇区和占用的扇。

28、区数。0033依次类推,逻辑分区中的分区表是以链表形式保存的。逻辑分区的起始地址实际可以从其上一个逻辑分区的分区表中获取。0034例如,第一个逻辑分区A的起始扇区取该逻辑分区所在扩展分区的起始扇区,它的结束位置为起始扇区加上它所占用的扇区数。第二个逻辑分区B的起始地址取逻辑分区A中的分区表中第二个分区表项记录的起始地址和占用的扇区数。后面的某逻辑分区Y占用扇区的判断依据以前面的逻辑分区X中的分区表中第二个分区表项记录的起始扇区和占用的扇区数为准。0035当某一逻辑分区A的起始扇区所在位置加上它所占用的扇区数大于它后面逻辑分区B(A与B在同一扩展分区中)的起始扇区所在的位置,就会造成分区重叠。0。

29、036例如A逻辑分区起始扇区是1000扇区,它占用2000个扇区,B逻辑分区起始扇区在2920扇区,占用1000个扇区。这样A逻辑分区中结束扇区应该是3000扇区,而逻辑分区B起始扇区是2920,A的结束扇区大于B开始扇区,他们共有80个扇区的重叠。这80个扇区中可能记录着B分区的分区表、DBR和一些其他数据(NTFS中可能会有MFT,FAT格式中,可能会有FAT表)。当A逻辑分区写满后,就会在这80个扇区写入数据,然后,B分区说明书CN102354290ACN102354299A6/8页9中的分区表、DBR和其他数据就会被破坏,导致B分区及其后面的分区全部丢失,从而造成这些分区上的数据全部丢。

30、失,以用户造成损失。0037因此,具体在获取磁盘当前分区以及其下一分区的分区信息时,可以获取当前分区所在的结束扇区的物理扇区号,以及下一分区所在的起始扇区的物理扇区号;这样,就可以通过判断当前分区所在的结束扇区的物理扇区号是否大于其下一分区所在的起始扇区的物理扇区号,如果是,则当前分区与其下一分区之间存在分区重叠。0038具体的,如果当前分区及其下一分区均为扩展分区中的逻辑分区时,所述获取磁盘当前分区以及其下一分区的分区信息包括通过以下方式获取第一逻辑分区以及第二逻辑分区的分区信息根据所述第一逻辑分区的上一分区的分区表中标记的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;根据所述第。

31、一逻辑分区的分区表中标记的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号;然后,判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理扇区号,如果是,则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠。0039其中,根据第一逻辑分区的上一分区的分区表中记录的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号时,具体可以为查询所述第一逻辑分区的上一分区的分区表,从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;根据该第一逻辑扇区的结束扇区。

32、偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。0040根据所述第一逻辑分区的分区表中记录的分区信息,确定第二逻辑分区的起始位置所在的物理扇区号时,具体可以为查询所述第一逻辑分区的分区表,从中获取所述第二逻辑分区的起始扇区偏移值;根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。0041如果当前分区为主分区,其下一分区为主分区或扩展分区时,则具体在获取磁盘当前分区以及其下一分区的分区信息时,可以是根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在。

33、的物理扇区号;进而,通过判断当前分区的结束位置所在的物理扇区号是否大于下一分区的起始位置所在的物理扇区号,如果是,则当前分区与下一分区之间存在分区重叠。0042需要说明的是,具体实现时,除了利用起始扇区的扇区号以及结束扇区的扇区号来表示逻辑分区的起始位置及结束位置以外,还可以利用其它的信息来表示,例如,起始字节、结束字节等等。或者,由于分区表中记载的“偏移量”均是相对于扩展分区的起始地址的,因此。如果不计算起始扇区及结束扇区的物理扇区号,而是之间利用起始扇区及结束扇区的“偏移量”来判断逻辑扇区之间是否存在分区重叠也是可以的,这里不再赘述。0043S103如果存在分区重叠,则向用户发出用以表示分。

34、区之间存在分区重叠的提示信息。0044如果判断出逻辑分区之间存在分区重叠的现象,则可以向用户发出提示信息,用以提示用户其计算机存在逻辑分区丢失或主分区无法打开乃至数据丢失的风险。这样,当用户看到这样的提示信息之后,就可以在向逻辑分区或主分区中存储数据时,尽量避免将分区占用得过满,进而就可以从一定程度上避免用户数据丢失的现象产生。说明书CN102354290ACN102354299A7/8页100045当然,在实际应用中,由于分区可能有多个,可能并不是所有相邻的分区之间都存在分区重叠,而是只有其中的某两个分区之间(例如分区A与分区B)存在分区重叠的现象,此时,只有当分区A写的过满时,才会引起分区。

35、丢失的问题,而其他的分区即时被写满,也不会引起分区丢失。因此,就可以将具体那两个分区之间存在分区重叠提示给用户,例如,提示用户“分区A与分区B之间存在分区重叠”,这样,用户只要注意分区A中的数据不要写的过满,而其他的分区由于不存在重叠的问题,因此,可以不必注意。从而使得用户更加将专注于可能会引起分区丢失问题的分区,同时又可以使得其他不会引起分区丢失问题的分区空间得到充分得利用。0046与本发明实施例提供的分区信息处理方法相对应,本发明实施例还提供了一种分区信息处理装置,参见图2,该装置包括分区信息获取单元201,用于获取磁盘当前分区以及其下一分区的分区信息;判断单元202,用于根据所述分区信息。

36、,判断当前分区与其下一分区之间是否存在分区重叠;提示单元203,用于如果存在分区重叠,则向用户发出用以表示分区之间存在分区重叠的提示信息。0047具体实现时,当所述当前分区及其下一分区均为扩展分区中的逻辑分区时,分区信息获取单元201可以包括结束位置确定子单元,用于根据所述第一逻辑分区的上一分区的分区表中标记的分区信息,确定所述第一逻辑分区的结束位置所在的物理扇区号;起始位置确定子单元,用于根据第一逻辑分区的分区表中标记的分区信息,确定所述第二逻辑分区的起始位置所在的物理扇区号;判断单元202具体可以用于判断所述第一逻辑分区的结束位置所在的物理扇区号是否大于所述第二逻辑分区的起始位置所在的物理。

37、扇区号,如果是,则所述第一逻辑分区与所述第二逻辑分区之间存在分区重叠;其中,所述第二逻辑分区是所述第一逻辑分区的下一分区。0048其中,所述结束位置确定子单元具体可以包括第一查询子单元,用于查询所述第一逻辑分区的上一分区的分区表,从中获取第一逻辑分区的起始扇区偏移值以及占用的总扇区数;结束扇区偏移值确定子单元,用于根据该第一逻辑分区的起始扇区偏移值以及该逻辑分区占用的总扇区数,获取该第一逻辑扇区的结束扇区偏移值;结束位置物理扇区号确定子单元,用于根据该第一逻辑扇区的结束扇区偏移值以及扩展分区的起始地址获取该第一逻辑分区所在的结束位置所在的物理扇区号。0049所述起始位置确定子单元具体可以包括第。

38、二查询子单元,用于查询所述第一逻辑分区的分区表,从中获取所述第二逻辑分区的数据段起始扇区偏移值;起始位置确定子单元,用于根据该第二逻辑扇区的起始扇区偏移值以及扩展分区的起始地址获取该第二逻辑分区的起始位置所在的物理扇区号。0050当所述当前分区为主分区,其下一分区为主分区或扩展分区时,分区信息获取单元201具体用于根据磁盘0磁道0扇区中的分区表中标记的分区信息,确定所述当前分区的结束位置所在的物理扇区号,以及下一分区的起始位置所在的物理扇区号;说明书CN102354290ACN102354299A8/8页11判断单元202具体用于判断所述当前分区的结束位置所在的物理扇区号是否大于所述下一分区的。

39、起始位置所在的物理扇区号,如果是,则所述当前分区与下一分区之间存在分区重叠。0051在本发明实施例提供的分区信息处理装置中,由于能够判断出分区之间是否存在分区重叠的现象,并且能够在发现存在分区重叠现象之后,及时地向用户发出提示信息,因此,当用户看到这样的提示信息之后,就可以在向分区中存储数据时,尽量避免将分区占用得过满,进而就可以从一定程度上避免用户数据丢失的现象产生。0052需要说明的是,本发明实施例提供的装置是与前述方法实施例对应的,因此,装置实施例中未详述部分可参见方法实施例中的介绍,这里不再赘述。0053以上对本发明所提供的一种分区信息处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。说明书CN102354290ACN102354299A1/1页12图1图2说明书附图CN102354290A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1