陳培德,吳建平,劉宏杰,白雪松,景文超
(云南大學(xué) 信息學(xué)院,云南 昆明 650223)
MBR的全稱是Master Boot Record(主引導(dǎo)記錄)[1],MBR早在1983年IBM PC DOS 2.0中就已經(jīng)提出。之所以叫“主引導(dǎo)記錄(MBR)[2]”,是因?yàn)樗谴嬖谟隍?qū)動(dòng)器開始部分的一個(gè)特殊的啟動(dòng)扇區(qū)[3]。這個(gè)扇區(qū)包含了已安裝的操作系統(tǒng)的啟動(dòng)加載器和驅(qū)動(dòng)器的邏輯分區(qū)信息。它最大支持2.2 TB的硬盤[4],和32位操作系統(tǒng)無法支持4 GB以上內(nèi)存一樣,超過此限制的硬盤容量MBR也是無法正確識(shí)別的。此外它只能分出4個(gè)主分區(qū)[5],再多的分區(qū)只能創(chuàng)建擴(kuò)展邏輯分區(qū),別無它法。
GPT是Globally Unique Identifier Partition Table的縮寫,其含義是“全局唯一標(biāo)識(shí)磁盤分區(qū)表”[5]。GPT的出現(xiàn)是為了替代舊式的MBR(Master Boot Record)[6],主要解決了MBR分區(qū)表不支持容量大于2.2 TB的分區(qū)[7]問題。
如果要將MBR磁盤轉(zhuǎn)換為GPT磁盤,通常做法是:在計(jì)算機(jī)管理中的磁盤管理中,先將MBR磁盤中的所有分區(qū)刪除后,才能將MBR磁盤轉(zhuǎn)換為GPT磁盤或者在DOS下通過CONVERT命令來完成,再重新建立GPT分區(qū),這樣做的結(jié)果是原來MBR分區(qū)中存儲(chǔ)的數(shù)據(jù)難以得到恢復(fù)。
針對(duì)這一這情況,對(duì)MBR磁盤轉(zhuǎn)換為GPT磁盤進(jìn)行了大量的實(shí)驗(yàn),結(jié)果發(fā)現(xiàn)將MBR磁盤轉(zhuǎn)換為GPT磁盤后,通過重新計(jì)算GPT頭中的CRC32校驗(yàn)和,通過重建GPT分區(qū)的形式就可以恢復(fù)GPT分區(qū)表,最后通過DBR備份恢復(fù)DBR。
(1)實(shí)驗(yàn)環(huán)境。
(i)操作系統(tǒng):Windows 10;
(ii硬盤:虛擬硬盤;
(iii)數(shù)據(jù)分析及恢復(fù)工具:WinHex 15.08。
(2)制作實(shí)驗(yàn)素材。
(i)制作MBR磁盤。
制作MBR磁盤的操作步驟如下:
步驟1:在Windows 10操作系統(tǒng)下,使用Windows 10的虛擬磁盤管理功能在D盤的根目錄上建立一個(gè)名為abcd1.vhd的文件,文件大小為1 GB。
步驟2:將abcd1.vhd文件附加為虛擬磁盤1,初始為MBR磁盤;在磁盤1上依次建立4個(gè)分區(qū),并分別對(duì)4個(gè)分區(qū)進(jìn)行(快速)格式化操作,文件系統(tǒng)選擇NTFS,磁盤1中4個(gè)MBR分區(qū)依次對(duì)應(yīng)4個(gè)邏輯盤情況如下:
H盤,文件系統(tǒng):NTFS,容量:100 MB;
I盤,文件系統(tǒng):NTFS,容量:200 MB;
J盤,文件系統(tǒng):NTFS,容量:300 MB;
K盤,文件系統(tǒng):NTFS,容量:422 MB。
步驟3:分別復(fù)制一定數(shù)量的文件夾和文件到這4個(gè)邏輯盤中。
至此,MBR磁盤素材文件制作完成。0號(hào)扇區(qū)4個(gè)MBR分區(qū)表的存儲(chǔ)形式如圖1所示。
圖1 0號(hào)扇區(qū)存儲(chǔ)的4個(gè)MBR分區(qū)表
步驟4:在計(jì)算機(jī)管理的磁盤管理中將4個(gè)MBR分區(qū)刪除,4個(gè)MBR分區(qū)刪除后,0號(hào)扇區(qū)偏移地址0X1BE~0X1FE處存儲(chǔ)的4個(gè)MBR分區(qū)表的值已經(jīng)變?yōu)?4個(gè)“00”。
(ii)制作GPT頭、GPT頭備份與GPT分區(qū)表模板。
制作GPT頭、GPT頭備份與GPT分區(qū)表模板操作步驟如下:
步驟1:在Windows 10操作系統(tǒng)下,使用Windows 10的虛擬磁盤管理功能在D盤的根目錄上建立一個(gè)名為abcd2.vhd的文件,文件大小為500 MB。
步驟2:將abcd2.vhd文件附加為虛擬磁盤2,初始為GPT磁盤;在磁盤2上依次建立4個(gè)分區(qū),并分別對(duì)4個(gè)分區(qū)進(jìn)行(快速)格式化操作,文件系統(tǒng)選擇NTFS,磁盤1中4個(gè)分區(qū)依次對(duì)應(yīng)4個(gè)邏輯盤情況如下:
L盤,文件系統(tǒng):NTFS,容量:100 MB;
M盤,文件系統(tǒng):NTFS,容量:100 MB;
N盤,文件系統(tǒng):NTFS,容量:100 MB;
O盤,文件系統(tǒng):NTFS,容量:100 MB。
步驟3:將該磁盤的0號(hào)扇區(qū)以文件的形式存儲(chǔ),文件名為0_sector.vhd;即保護(hù)的MBR模板已制作完成。
步驟4:將該磁盤的1號(hào)扇區(qū)以文件的形式存儲(chǔ),文件名為GPT_Head.vhd;即GPT頭模板已制作完成。
步驟5:將該磁盤的2號(hào)和3號(hào)扇區(qū)以文件的形式存儲(chǔ),文件名為GPT_Partition.vhd;即GPT分區(qū)表模板已制作完成。
步驟6:將該磁盤的倒數(shù)1號(hào)扇區(qū)以文件的形式存儲(chǔ),文件名為GPT_Head_back.vhd;即GPT頭備份模板已制作完成。
至此,GPT頭、GPT頭備份與GPT分區(qū)表素材文件制作完成。
由于4個(gè)MBR分區(qū)表均存儲(chǔ)在磁盤1的0號(hào)扇區(qū),分區(qū)表中的相對(duì)扇區(qū)也就是分區(qū)的開始扇區(qū)號(hào),從磁盤1的0號(hào)扇區(qū)可以知道,4個(gè)分區(qū)的開始扇區(qū)和總扇區(qū)數(shù),從而可以計(jì)算出4個(gè)分區(qū)的結(jié)束扇區(qū)號(hào),如下所示:
分區(qū)開始扇區(qū)號(hào)結(jié)束扇區(qū)號(hào)總扇區(qū)數(shù)容量分區(qū)1128204927204800100 MB分區(qū)2204928614527409600200 MB分區(qū)36145281228927614400300 MB分區(qū)412289282093183864256422 MB
根據(jù)4個(gè)分區(qū)的基本情況,可以畫出4個(gè)分區(qū)對(duì)應(yīng)4個(gè)邏輯盤在整個(gè)硬盤的分布結(jié)構(gòu),如圖2所示。
圖2 4個(gè)邏輯盤在整個(gè)硬盤中的分布
從整體來看,GPT磁盤主要由6大部分組成,即保護(hù)MBR、GPT頭、GPT分區(qū)表、GPT分區(qū)區(qū)域(即文件系統(tǒng)所在區(qū)域)、GPT分區(qū)表備份和GPT頭備份[8]。大致結(jié)構(gòu)如圖3所示(注:假設(shè)GPT磁盤的扇區(qū)號(hào)范圍為0 ~n-1,其中n為GPT磁盤的總扇區(qū)數(shù))。
圖3 GPT磁盤整體結(jié)構(gòu)
(1)保護(hù)MBR。
保護(hù)MBR位于GPT磁盤的0號(hào)扇區(qū),也是由主引導(dǎo)記錄、磁盤簽名、MBR分區(qū)表和結(jié)束標(biāo)志4個(gè)部分組成[7]。MBR分區(qū)表必須位于0號(hào)扇區(qū)偏移0X01BE~0X01CD處,分區(qū)標(biāo)志為0XEE。主要是用于與MBR磁盤的區(qū)別,即該磁盤為GPT磁盤。
(2)GPT頭。
GPT頭位于GPT磁盤的1號(hào)扇區(qū)[9],該扇區(qū)是在轉(zhuǎn)換成GPT磁盤后自動(dòng)生成的,GPT頭定義了GPT分區(qū)各參數(shù)的基本信息,GPT頭中定義的各參數(shù)如下:
字節(jié)偏移長度(字節(jié))內(nèi) 容0X008 簽名,固定為“EFI PART”0X084版本號(hào)0X0C4GPT頭總字節(jié)數(shù)0X104GPT頭CRC32校驗(yàn)和0X144保留,必須是000X18 8GPT頭所在扇區(qū)號(hào)0X208 GPT頭備份所在扇區(qū)號(hào)0X288GPT分區(qū)區(qū)域開始扇區(qū)號(hào)0X308GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)0X3816硬盤GUID0X488 GPT分區(qū)表開始扇區(qū)號(hào)0X504最多容納GPT分區(qū)表的數(shù)量0X544每個(gè)GPT分區(qū)表項(xiàng)字節(jié)數(shù)0X584分區(qū)表CRC32校驗(yàn)和0X5C420保留,一般為00
說明:
(i)GPT頭總字節(jié)數(shù):GPT頭位于GPT磁盤的1號(hào)扇區(qū),指GPT頭在1號(hào)扇區(qū)所占字節(jié)總數(shù),一般為92字節(jié),即;
(ii)GPT頭CRC32校驗(yàn)和:也就是將該處的值填為“00 00 00 00”后,GPT頭扇區(qū)偏移0X00~0X5B這92個(gè)字節(jié)的CRC32校驗(yàn)和;
(iii)分區(qū)表CRC32校驗(yàn)和:一般情況下,GPT分區(qū)表所占扇區(qū)號(hào)范圍為2~33,即2~33號(hào)扇區(qū)的CRC32校驗(yàn)和。
注:計(jì)算GPT分區(qū)表所占扇區(qū)數(shù)方法如下:
GPT分區(qū)表所占字節(jié)數(shù)=最多容納GPT分區(qū)表的數(shù)量×每個(gè)GPT分區(qū)表項(xiàng)字節(jié)數(shù)
GPT分區(qū)表所占扇區(qū)數(shù)=
GPT分區(qū)表所占字節(jié)數(shù)÷512
(3)GPT分區(qū)表。
在GPT分區(qū)中,一般情況下,最多容納GPT分區(qū)表的數(shù)量為128,而每個(gè)GPT分區(qū)表占128個(gè)字節(jié)。
GPT分區(qū)表所占字節(jié)數(shù)=最多容納GPT分區(qū)表的數(shù)量×每個(gè)GPT分區(qū)表項(xiàng)字節(jié)數(shù)
=128×128
=16 384
GPT分區(qū)表所占扇區(qū)數(shù)=
GPT分區(qū)表所占字節(jié)數(shù)÷512
=16 384÷512
=32
GPT分區(qū)表的開始扇區(qū)號(hào)為2,共占用32個(gè)扇區(qū)[10],所以GPT分區(qū)表位于GPT磁盤的2 ~ 33號(hào)扇區(qū),每個(gè)分區(qū)表占為128字節(jié),最多可以容納128個(gè)分區(qū)表,由于第1個(gè)分區(qū)表為系統(tǒng)保留,所以用戶在GPT磁盤上最多可以建立127個(gè)分區(qū),每個(gè)分區(qū)表管理一個(gè)分區(qū)[11]。GPT分區(qū)表各參數(shù)如下所示:
字節(jié)偏移長度(字節(jié))內(nèi) 容0X0016分區(qū)類型GUID0X1016分區(qū)GUID0X208該分區(qū)開始扇區(qū)號(hào)0X288該分區(qū)結(jié)束扇區(qū)號(hào)0X308屬性標(biāo)簽0X3872分區(qū)名(Unicode碼)
(4)分區(qū)區(qū)域。
GPT分區(qū)區(qū)域是整個(gè)GPT磁盤中最大的區(qū)域,位于GPT磁盤的中間位置[12],GPT分區(qū)區(qū)域的開始扇區(qū)和結(jié)束扇區(qū)由GPT頭定義,由于GPT分區(qū)表的結(jié)束扇區(qū)號(hào)為33,一般情況下,GPT分區(qū)區(qū)域開始扇區(qū)號(hào)為34,而結(jié)束扇區(qū)號(hào)為GPT磁盤總扇區(qū)數(shù)減去35。該區(qū)域由多個(gè)具體的分區(qū)組成,如:微軟保留分區(qū)、EFI系統(tǒng)分區(qū)、LDM元數(shù)據(jù)分區(qū)、LDM數(shù)據(jù)分區(qū)、OEM分區(qū)和主分區(qū)等。各分區(qū)的開始扇區(qū)和結(jié)束扇區(qū)在各分區(qū)表中均有定義。
(5)分區(qū)表備份。
GPT分區(qū)區(qū)域結(jié)束后的下一個(gè)扇區(qū)為GPT分區(qū)表備份的開始扇區(qū)[13],一般情況下,GPT分區(qū)表備份位于GPT磁盤的倒數(shù)33號(hào)扇區(qū)~倒數(shù)2號(hào)扇區(qū),也是占用32個(gè)扇區(qū),是GPT分區(qū)表位于GPT磁盤2~33號(hào)扇區(qū)的備份。
(6)GPT頭備份。
GPT頭備份位于GPT磁盤的倒數(shù)1號(hào)扇區(qū),該扇區(qū)也是在轉(zhuǎn)換成GPT磁盤后自動(dòng)生成的,GPT頭備份也是定義了GPT分區(qū)各參數(shù)的基本信息[14],但該扇區(qū)不是GPT頭的簡單備份,GPT頭備份對(duì)GPT分區(qū)各參數(shù)基本信息的定義與GPT頭對(duì)GPT分區(qū)各參數(shù)基本信息的定義稍有不同,GPT頭備份對(duì)分區(qū)各參數(shù)基本信息的定義如下:
字節(jié)偏移長度(字節(jié))內(nèi) 容0X008簽名,固定為“EFI PART”0X084版本號(hào)0X0C4GPT頭備份總字節(jié)數(shù)0X104GPT頭備份CRC32校驗(yàn)和0X144保留,必須是000X188GPT頭備份所在扇區(qū)號(hào)0X208GPT頭所在扇區(qū)號(hào)0X288GPT分區(qū)區(qū)域開始扇區(qū)號(hào)0X308GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)0X3816硬盤GUID0X488GPT分區(qū)表備份開始扇區(qū)號(hào)0X504最多容納分區(qū)表的數(shù)量0X544每個(gè)分區(qū)表項(xiàng)字節(jié)數(shù)0X584分區(qū)表備份CRC32校驗(yàn)和0X5C420保留,一般為00
說明:
(i)GPT頭備份總字節(jié)數(shù):指GPT頭備份所占字節(jié)總數(shù),一般為92字節(jié),即扇區(qū)偏移為0X00~0X5B;
(ii)GPT頭備份CRC32校驗(yàn)和:也就是將該處的值填為“00 00 00 00”后,GPT頭備份扇區(qū)偏移0X00~0X5B這92個(gè)字節(jié)的CRC32校驗(yàn)和;
(iii)分區(qū)表備份CRC32校驗(yàn)和:GPT分區(qū)表備份所占扇區(qū)號(hào)范圍為n-34~n-3,即n-34~n-3號(hào)扇區(qū)的CRC32校驗(yàn)和。與GPT分區(qū)表CRC32校驗(yàn)和相同。
從GPT磁盤的整體結(jié)構(gòu)可知,要將MBR磁盤轉(zhuǎn)換為GPT磁盤,基本思路如下:
(1)將0號(hào)扇區(qū)轉(zhuǎn)變?yōu)楸Wo(hù)MBR;
(2)將1號(hào)扇區(qū)轉(zhuǎn)變?yōu)镚PT頭;
(3)將GPT分區(qū)表存儲(chǔ)在2~33號(hào)扇區(qū);
(4)將GPT分區(qū)表備份存儲(chǔ)在n-34~n-3號(hào)扇區(qū);
(5)將GPT頭備份存儲(chǔ)在n-2號(hào)扇區(qū)。
將MBR磁盤轉(zhuǎn)換為GPT磁盤的基本方法如下:
(1)將0號(hào)扇區(qū)偏移0X01BE~0X01CD的MBR分區(qū)表用“00 00 02 00 EE FF FF FF 01 00 00 00 FF FF FF FF”來填充,將0號(hào)扇區(qū)偏移0X01CE~0X01FD存儲(chǔ)的3個(gè)MBR分區(qū)表的位置用48個(gè)“00”來填充,將0號(hào)扇區(qū)偏移0X01FE~0X01FF的用“55 AA”(存儲(chǔ)形式)來填充;即可將0號(hào)扇區(qū)轉(zhuǎn)變?yōu)楸Wo(hù)的MBR[15];
(2)計(jì)算GPT分區(qū)表中各分區(qū)的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào),將GPT分區(qū)表模板復(fù)制到GPT分區(qū)所在扇區(qū)號(hào),并修改各GPT分區(qū)表的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào);
(3)計(jì)算GPT頭中的GPT頭備份所在扇區(qū)號(hào)、GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)、GPT分區(qū)表CRC32校驗(yàn)和和GPT頭CRC32校驗(yàn)和這4個(gè)參數(shù);將GPT頭模板復(fù)制到GPT頭所在扇區(qū)號(hào),并修改這4個(gè)參數(shù);
(4)將GPT分區(qū)表復(fù)制到GPT分區(qū)表備份所在扇區(qū)號(hào);
(5)計(jì)算GPT頭備份中GPT頭備份所在扇區(qū)號(hào)、GPT頭備份CRC32校驗(yàn)和、GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)、GPT分區(qū)表備份開始扇區(qū)號(hào)和GPT分區(qū)表備份CRC32校驗(yàn)和這5個(gè)參數(shù)。將GPT頭備份模板復(fù)制到GPT頭備份所在扇區(qū)號(hào),并修改這5個(gè)參數(shù)。
MBR磁盤轉(zhuǎn)換為GPT磁盤的操作步驟如下:
步驟1:在Windows 10操作系統(tǒng)下,使用Windows 10的虛擬磁盤管理功能附加D盤根目錄的abcd1.vhd文件;成為磁盤1。
步驟2:啟動(dòng)WinHex,工具-->打開磁盤,在Edit Disk窗口的Physical Media下選擇“ HD1:Msft Virtual Disk(1.0 GB)”。
步驟3:工具-->磁盤工具-->掃描丟失分區(qū)后,如圖4所示。
圖4 4個(gè)分區(qū)的基本情況
從圖4可以得到,4個(gè)分區(qū)的開始扇區(qū)號(hào),由于4個(gè)MBR分區(qū)的劃分是尾首相連,可以計(jì)算出前3個(gè)GPT分區(qū)的結(jié)束扇區(qū)號(hào)分別是204927、614527和1228927,最后1個(gè)分區(qū)(即第4個(gè)分區(qū))的結(jié)束扇區(qū)號(hào),可以通過容量計(jì)算總扇區(qū)數(shù),再通過開始扇區(qū)號(hào)和總扇區(qū)數(shù)獲得:
總扇區(qū)數(shù)=容量×1 024×1 024÷512=
422×1 024×1 024 ÷512=
864 256
結(jié)束扇區(qū)號(hào)=開始扇區(qū)號(hào)+總扇區(qū)數(shù)-1=
1 228 928+864 256-1=
2 093 183
也可以依據(jù)NTFS_DBR備份的特征值,通過查找的方式獲得第4個(gè)GPT分區(qū)的結(jié)束扇區(qū)號(hào)為2093183。
4個(gè)GPT分區(qū)的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào)如下所示:
分區(qū)開始扇區(qū)號(hào)結(jié)束扇區(qū)號(hào)分區(qū)1128204927分區(qū)2204928614527分區(qū)36145281228927分區(qū)412289282093183
根據(jù)磁盤1的總扇區(qū)數(shù),可以計(jì)算出GPT分區(qū)表存儲(chǔ)在2~33號(hào)扇區(qū),而GPT分區(qū)表備份存儲(chǔ)在2097119 ~ 2097150號(hào)扇區(qū)。
步驟4:打開GPT_Partition.vhd文件,并選中第2個(gè)至第5個(gè)GPT分區(qū)表,單擊“復(fù)制”按鈕,將光標(biāo)移動(dòng)到磁盤1的2號(hào)扇區(qū)的開始位置處,單擊“粘貼”按鈕。
步驟5:將光標(biāo)移動(dòng)到2號(hào)扇區(qū),視圖—>模板管理器,在模板管理器窗口中依次輸入4個(gè)分區(qū)表的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào)。如圖5所示:單擊保存按鈕。至此,GPT分區(qū)表已成功恢復(fù)。
圖5 依次輸入4個(gè)分區(qū)的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào)
步驟6:將2號(hào)扇區(qū)復(fù)制到2097119號(hào)扇區(qū),至此,GPT分區(qū)表備份已經(jīng)成功恢復(fù)。
步驟7:將0號(hào)扇區(qū)偏移0X01BE~0X01CD的MBR分區(qū)表用“00 00 02 00 EE FF FF FF 01 00 00 00 FF FF FF FF”來填充,單擊“保存”按鈕。至此,保護(hù)的MBR已恢復(fù)。
步驟8:打開GPT_Head.vhd文件,全選,單擊“復(fù)制”按鈕,將光標(biāo)移動(dòng)到磁盤1的1號(hào)扇區(qū)開始位置,單擊“粘貼”按鈕,單擊“保存”按鈕。
通過計(jì)算得到GPT頭中參數(shù)如下:
GPT頭備份所在扇區(qū)號(hào)為2097151;在GPT頭中的存儲(chǔ)形式為“FF FF 1F 00”;
GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)在2097118;在GPT頭中的存儲(chǔ)形式為“DE FF 1F 00”;
GPT分區(qū)表CRC32校驗(yàn)和為348F57C2;在GPT頭中的存儲(chǔ)形式為“C2 57 8F 34”。
步驟9:修改GPT頭中的GPT頭備份所在扇區(qū)號(hào)、GPT分區(qū)區(qū)域結(jié)束扇區(qū)和GPT分區(qū)表CRC32校驗(yàn)和這三個(gè)參數(shù);然后存盤。
步驟10:將GPT頭中的GPT頭CRC32校驗(yàn)和存儲(chǔ)形式填充為“00 00 00 00”,然后選中扇區(qū)偏移地址0X00~0X05B處重新計(jì)算GPT頭的CRC32校驗(yàn)和。結(jié)果為“4EEFA08A”,存儲(chǔ)形式為“8A A0 EF 4E”。將GPT頭中的GPT頭CRC32校驗(yàn)和的存儲(chǔ)形式修改為“8A A0 EF 4E”;然后存盤;至此,GPT頭已轉(zhuǎn)換完成。
步驟11:打開GPT_Head_backup.vhd文件,全選,單擊“復(fù)制”按鈕,將光標(biāo)移動(dòng)到磁盤1的2097151號(hào)扇區(qū)開始位置,單擊“粘貼”按鈕,單擊“保存”按鈕。
通過計(jì)算得到GPT頭備份中參數(shù)如下:
GPT頭備份所在扇區(qū)號(hào)為2097151;在GPT頭備份中的存儲(chǔ)形式為“FF FF 1F 00”;
GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)在2097118;在GPT頭備份中的存儲(chǔ)形式為“DE FF 1F 00”;
GPT分區(qū)表備份CRC32校驗(yàn)和為348F57C2;在GPT頭備份中的存儲(chǔ)形式為“C2 57 8F 34”;注:GPT分區(qū)表備份與GPT分區(qū)表相同,所以,CRC32校驗(yàn)和也相同;
GPT分區(qū)表備份開始扇區(qū)號(hào)為2097119,在GPT頭備份中的存儲(chǔ)形式為“DF FF 1F 00”。
步驟12:修改GPT頭備份中的GPT頭備份所在扇區(qū)號(hào)、GPT分區(qū)區(qū)域結(jié)束扇區(qū)、GPT分區(qū)表備分CRC32校驗(yàn)和與GPT頭備份所在扇區(qū)號(hào)這三個(gè)參數(shù);然后存盤。
步驟13:將GPT頭備份中的GPT頭備份CRC32校驗(yàn)和存儲(chǔ)形式填充為“00 00 00 00”,然后選中扇區(qū)偏移地址0X00~0X05B處重新計(jì)算GPT頭備份的CRC32校驗(yàn)和。結(jié)果為“D615D156”,存儲(chǔ)形式為“56 D1 15 D6”。將GPT頭中的GPT頭CRC32校驗(yàn)和的存儲(chǔ)形式修改為“56 D1 15 C6”;然后存盤;至此,GPT頭備份已轉(zhuǎn)換完成。
將0號(hào)轉(zhuǎn)換為保護(hù)的MBR;將GPT分區(qū)模板復(fù)制到GPT分區(qū)表所在扇區(qū)號(hào),并修改各分區(qū)的開始扇區(qū)號(hào)和結(jié)束扇區(qū)號(hào),完成GPT分區(qū)表的恢復(fù);將GPT分區(qū)表復(fù)制到GPT分區(qū)表備份所在扇區(qū);重新計(jì)算GPT頭中的GPT頭CRC32校驗(yàn)和、GPT頭備份所在扇區(qū)號(hào)、GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)、GPT分區(qū)表CRC32校驗(yàn)和這4個(gè)參數(shù);重新計(jì)算GPT頭備份中的GPT頭備份CRC32校驗(yàn)和、GPT頭備份所在扇區(qū)號(hào)、GPT分區(qū)區(qū)域結(jié)束扇區(qū)號(hào)、GPT分區(qū)表備份開始扇區(qū)號(hào)和GPT分區(qū)表備份CRC32校驗(yàn)和這5個(gè)參數(shù)。通過這種方法成功實(shí)現(xiàn)MBR磁盤轉(zhuǎn)換為GPT磁盤。