找回密码
 加入
搜索
查看: 8228|回复: 4

[系统综合] 怎么判断分区表是MBR还是GPT?

[复制链接]
发表于 2013-2-19 15:28:21 | 显示全部楼层 |阅读模式
本帖最后由 skyfree 于 2013-2-19 15:30 编辑

怎么判断分区表类型是MBR还是GPT?如果可判定的话,怎么判定GPT分区有没有MSR保留分区?

另外,MBR分区表下获取分区与扇区的对应关系还是比较简单的,GPT分区表下怎么获取分区与扇区的对应关系?例如C:为1:1,D为1:2。GPT分区表下,如果MSR分区存在,获取到的分区扇区关系与GHOST中的差1。例如如果有MSR分区则C:被判定为1:2,而不是Ghost认为的1:1。

楼下附我目前在使用的一段函数代码。
 楼主| 发表于 2013-2-19 15:30:10 | 显示全部楼层
#include <Array.au3>
#Include <WinAPIEx.au3>

_GetPartSecInfo()

Func _GetPartSecInfo()
        Local Const $N=3
        Local $a_PartSecInfo[1][$N],$p=1
        
        Local $i,$Drive,$a_DriveInfo
        For $i=65 To 90
                $Drive=''
                $Drive=Chr($i) & ':'
                If DriveStatus($Drive)='READY' And _ 
                                (DriveGetType($Drive)='Fixed' Or _ 
                                DriveGetType($Drive)='Removable' Or _ 
                                DriveGetType($Drive)='Network') Then
                        $a_DriveInfo=''
                        $a_DriveInfo=_WinAPI_GetDriveNumber($Drive)
                        If IsArray($a_DriveInfo) Then
                                ReDim $a_PartSecInfo[$p+1][$N]
                                $a_PartSecInfo[$p][1]=$Drive
                                $a_PartSecInfo[$p][2]=($a_DriveInfo[1]+1) & ':' & $a_DriveInfo[2]
                                $p+=1
                        EndIf
                EndIf
        Next
        
        _ArrayDisplay($a_PartSecInfo,'$a_PartSecInfo')
        Return $a_PartSecInfo
EndFunc
发表于 2013-2-19 16:43:34 | 显示全部楼层
以关键字  ‘ site:autoitscript.com mbr autoit’ 使用谷歌搜索下看看
发表于 2013-2-19 21:28:28 | 显示全部楼层
硬盘上的东东很难哦顶起来
发表于 2013-2-20 09:15:11 | 显示全部楼层
本帖最后由 lindafu 于 2013-2-20 09:26 编辑

回复 2# skyfree

你的这种方法只支持基本磁盘GPT,动态的GPT就无能为力了,要获得的GPT分区号减1有个简单的方法就是读磁盘MBR,得到“EE”就是GPT磁盘,如当MBR的$PartTable[1] = "EE"分区号全部减一
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 17:05 , Processed in 0.074333 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表