怎么判断分区表是MBR还是GPT?
本帖最后由 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。
楼下附我目前在使用的一段函数代码。 #include <Array.au3>
#Include <WinAPIEx.au3>
_GetPartSecInfo()
Func _GetPartSecInfo()
Local Const $N=3
Local $a_PartSecInfo[$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]=$Drive
$a_PartSecInfo[$p]=($a_DriveInfo+1) & ':' & $a_DriveInfo
$p+=1
EndIf
EndIf
Next
_ArrayDisplay($a_PartSecInfo,'$a_PartSecInfo')
Return $a_PartSecInfo
EndFunc 以关键字‘ site:autoitscript.com mbr autoit’ 使用谷歌搜索下看看 硬盘上的东东很难哦顶起来 本帖最后由 lindafu 于 2013-2-20 09:26 编辑
回复 2# skyfree
你的这种方法只支持基本磁盘GPT,动态的GPT就无能为力了,要获得的GPT分区号减1有个简单的方法就是读磁盘MBR,得到“EE”就是GPT磁盘,如当MBR的$PartTable = "EE"分区号全部减一
页:
[1]