![]() |
學校地址:湖南省 長沙市 雨花區 車站南路紅花坡路口 |
![]() |
學校地址:湖南省 長沙市 雨花區 車站南路紅花坡路口 |
硬盤容量限制問題再現!各位打算用2T以上硬盤的朋友們請注意了!現在市場上單碟500G的硬盤也已經面市,2T、2.5T硬盤在2009年也已經面市。硬盤容量突飛猛進,現1T硬盤價格早已降至6個專業課程的學費歡迎查看左右,2T硬盤都已開始在用戶中普及。可是,2009年你想把舊硬盤換成2.5T硬盤或者更大的硬盤?
且慢!!
首先,先來看看下圖計算機管理功能中的磁盤管理出現未指派空間!
下面我們來回顧下過去并對硬盤容量限制情況做下技術分析:
其實,硬盤容量限制問題很早就出現了, 初是528MB、2.1GB,后來是3.2GB、4.2GB,但引起人們注意當屬8.4GB容量的硬盤。雖然LBA(Ligical Block Address)邏輯塊尋址模式突破了DOS系統下8.4GB容量的限制,但由于自身的限制,柱面的 大數是65536(216),磁頭的 大數是16(24),扇區的 大數是255(28-1),因此能尋址的 大扇區數是267,386,880 (6553616255),一扇區是512字節,也就是說如果以CHS尋址方式,IDE硬盤的 大容量為136.9GB,這就是137GB容量限制的由來。
超過137GB容量的硬盤,可能會在一些主板上遭遇所謂的28bit LBA限制,當然主要是指一些推出時間較早的主板,但NVIDIA nForce2卻仍然在使用28bit LBA IDE控制器。在這樣的主板上雖然可以使用大容量的硬盤,但超出137GB以外的空間將無法識別,換句話說也就是被浪費了。
Technical Committee T13組織為了解決28bit LBA尋址模式的限制,對于ATA/ATAPI-6標準進行了一些修改,通過48bit LBA來支持更多的扇區,從而突破這一限制,其實后來Compaq、Microsoft、Maxtor聯合推出的Big Drives規范就是T13組織提出的48bit方案為基礎的,這種規范的中心思想就是增加CHS的位數,而柱面寄存器不變,這樣就將原來LBA尋址中可用的寄存器空間從24bit提高到了48bit,可以尋址的扇區數就為281,474,976,710,655(655366553565536),這樣可支持的硬盤容量就達到了281,474,976,710,655512=144,115,188,075,855,872字節,大致相當于144PB(1PB=1000,000,000,000,000字節),在一定時間內應該是足夠使用了。
從這里來說,支持2T,應該不成問題才對的啊?但為什么又會出現這個限制的呢,這個要從MBR說起。
MBR,主引導記錄(Master Boot Record),也就是現有的硬盤分區模式。MBR分區的標準決定了MBR只支持在2TB以下的硬盤,超過2TB的硬盤只能管理2TB(參見后文MBR介紹)!為解決這個大問題,微軟和英特爾在EFI方案中開發了GPT分區模式。
GPT,全局唯一標識分區表(GUID Partition Table),GUID,全局唯一標識符 (Globally Unique Identifier) 。GPT是EFI方案的一部分,但并不依賴于EFI主板,在BIOS主板的PC中也可使用GPT分區。與MBR 大4個分區表項的限制相比,GPT對分區數量沒有限制,但Windows 大僅支持128個GPT分區。GPT可管理硬盤大小達到了18EB(1EB=1024PB=1,048,576TB),不過NTFS格式 大僅支持256TB。
對于使用2T以上硬盤的要求
由于MBR分區模式 大只能支持2TB硬盤,2.5T硬盤必須使用GPT分區模式!我們先未雨綢繆,看看Windows對GPT分區的支持情況:
1. Windows 95/98/ME、Windows NT 4、Windows 2000、Windows XP 32 位版本不支持GPT分區,只能查看GPT的保護分區,GPT不會被裝載或公開給應用軟件;
2. Windows XP x64 版本只能使用GPT磁盤進行數據操作,只有基于安騰處理器 (Itanium)的 Windows系統才能從 GPT 分區上啟動;
3. Windows Server 2003 32bit Server Pack 1 以后的所有Windows 2003版本都能使用GPT分區磁盤進行數據操作,只有基于安騰處理器(Itanium)的Windows系統才能從 GPT 分區上啟動;
4. Windows Vista 和 Windows Server 2008的所有版本都能使用GPT分區磁盤進行數據操作;但只有基于EFI主板的系統支持從GPT啟動。
看到這里,我們知道了要想用2.5T硬盤:
1、首先,你得放棄2K和XP 32位版,改成人見人不愛的Vista或是人見人愛的Win7;
2、你還得把基于BIOS的主板給扔了,換成EFI主板,否則即使換成Vista了,也只能把2.5T硬盤當從盤用。
MBR介紹
在傳統硬盤分區模式中,引導扇區是每個分區(Partition)的第一扇區,而主引導扇區是硬盤的第一扇區。它由三個部分組成,主引導記錄MBR、硬盤分區表DPT和硬盤有效標志。在總共512字節的主引導扇區里MBR占446個字節,第二部分是Partition table區(分區表),即DPT,占64個字節,硬盤中分區有多少以及每一分區的大小都記在其中。第三部分是magic number,占2個字節,固定為55AA。
MBR是不屬于任何一個操作系統,也不能用操作系統提供的磁盤操作命令來讀取它,但可以通過命令來修改和重寫,如在minix3里面,可以用命令:installboot -m /dev/c0d0 /usr/mdec/masterboot來把masterboot這個小程序寫到mbr里面,masterboot通常用匯編語言來編寫。我們也可以用ROM-BIOS中提供的INT13H的2號功能來讀出該扇區的內容,也可用軟件工具Norton8.0中的DISKEDIT.EXE來讀取。
用INT13H的讀磁盤扇區功能的調用參數如下:
入口參數:AH=2 (指定功能號)
AL=要讀取的扇區數
DL=磁盤號(0、1-軟盤;80、81-硬盤)
DH=磁頭號
CL高2位+CH=柱面號
CL低6位=扇區號
CS:BX=存放讀取數據的內存緩沖地址
出口參數:CS:BX=讀取數據存放地址
錯誤信息:如果出錯CF=1 AH=錯誤代碼
用DEBUG讀取位于硬盤0柱面、0磁頭、1扇區的操作如下:
ADEBUG
-A 100
XXXX:XXXX MOV AX,0201 (用功能號2讀1個扇區)
XXXX:XXXX MOV BX,1000 (把讀出的數據放入緩沖區的地址為CS:1000)
XXXX:XXXX MOV CX,0001 (讀0柱面,1扇區)
XXXX:XXXX MOV DX,0080 (指定第一物理盤的0磁頭)
XXXX:XXXX INT 13
XXXX:XXXX INT 3
XXXX:XXXX (按回車鍵)
-G=100 (執行以上程序段)
-D 1000 11FF (顯示512字節的MBR內容)
在windows操作系統下,例如xp,2003,Vista,windows7,有微軟提供的接口直接讀寫mbr;
FILE * fd=fopen(\\\\.\\PHYSICALDRIVE0,rb+);
char buffer[512];
fread(buffer,512,1,fd);
//then you can edit buffer[512] as your wish......
fseek(fd,0,SEEK_SET); //很重要
fwrite(buffer,512,1,fd); //把修改后的MBR寫入到你的機器
fclose(fd); //大功告成
MBR組成
一個扇區的硬盤主引導記錄MBR由如圖6-15所示的4個部分組成。
? 主引導程序(偏移地址0000H--0088H),它負責從活動分區中裝載,并運行系統引導程序。
? 出錯信息數據區,偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為0字節。
? 分區表(DPT,Disk Partition Table)含4個分區項,偏移地址01BEH--01FDH,每個分區表項長16個字節,共64字節為分區項1、分區項2、分區項3、分區項4。
? 結束標志字,偏移地址01FE--01FF的2個字節值為結束標志55AA,如果該標志錯誤系統就不能啟動。
GPT介紹
GPT(Globally Unique Identifier Partition Table Format)是一種由基于 Itanium 計算機中的可擴展固件接口 (EFI) 使用的磁盤分區架構。與主啟動記錄 (MBR) 分區方法相比,GPT 具有更多的優點,因為它允許每個磁盤有多達 128 個分區,支持高達 18 千兆兆字節的卷大小,允許將主磁盤分區表和備份磁盤分區表用于冗余,還支持唯一的磁盤和分區 ID (GUID)。
與支持 大卷為 2 TB (terabytes) 并且每個磁盤 多有 4 個主分區(或 3 個主分區,1 個擴展分區和無限制的邏輯驅動器)的主啟動記錄 (MBR) 磁盤分區的樣式相比,GUID 分區表 (GPT) 磁盤分區樣式支持 大卷為 18 EB (exabytes) 并且每磁盤 多有 128 個分區。與 MBR 分區的磁盤不同,至關重要的平臺操作數據位于分區,而不是位于非分區或隱藏扇區。另外,GPT 分區磁盤有多余的主要及備份分區表來提高分區數據結構的完整性。
在磁盤管理中的磁盤屬性對話框中的卷選項卡上,具有 GPT 分區樣式的磁盤顯示為 GUID 分區表 (GPT) 磁盤,而具有 MBR 分區樣式的磁盤顯示為主啟動記錄 (MBR) 磁盤。如果發生下列意外事件,可以在 GPT 磁盤上執行 MBR 磁盤支持的操作:
在運行帶有 Service Pack 1 (SP1) 的 Windows Server 2003 的基于 x86 的計算機和基于 x64 的計算機上,操作系統必須駐留在 MBR 磁盤上。其他的硬盤可以是 MBR 或 GPT。
在基于 Itanium 的計算機上,操作系統加載程序和啟動分區必須駐留在 GPT 磁盤上。其他的硬盤可以是 MBR 或 GPT。
不能將 GPT 移至運行 Windows NT 4.0、Windows 2000、Windows XP 或 Windows Server 2003 的基于 x86 的計算機上。不過,可以將 GPT 磁盤從運行帶有 SP1 的 Windows Server 2003 的基于 x86 的計算機或基于 x64 的計算機移至運行 Windows Server 2003 或 Windows XP 的基于 Itanium 的計算機上,反之亦然。
不能使用基于 Itanium 的 Windows 版本,將 GPT 磁盤從基于 Itanium 的計算機移至運行帶有 SP1 的 Windows Server 2003 的基于 x86 的計算機或基于 x64 的計算機,然后啟動該操作系統。在非基于 Itanium 的計算機上使用的 GPT 磁盤必須僅用于數據存儲。
在單個動態磁盤組中既可以有 MBR,也可以有 GPT 磁盤。也使用將基本 GPT 和 MBR 磁盤的混合,但它們不是磁盤組的一部分。可以同時使用 MBR 和 GPT 磁盤來創建鏡像卷、帶區卷、跨區卷和 RAID-5 卷,但是 MBR 的柱面對齊的限制可能會使得創建鏡像卷有困難。通常可以將 MBR 的磁盤鏡像到 GPT 磁盤上,從而避免柱面對齊的問題。
可以將 MBR 磁盤轉換為 GPT 磁盤,并且只有在磁盤為空的情況下,才可以將 GPT 磁盤轉換為 MBR 磁盤。
不支持 EFI 系統分區的鏡像。必須使用 bootcfg 命令克隆 EFI 系統分區。
不能在可移動媒體,或者在與群集服務使用的共享 SCSI 或 Fibre Channel 總線連接的群集磁盤上使用 GPT 分區樣式。
可以使用 DiskPart.exe 命令行實用程序或 EFI 固件實用程序 Diskpart.efi 在基本 GPT 磁盤上創建分區。有關 DiskPart.exe 的詳細信息,請參閱 DiskPart。有關磁盤管理管理單元的詳細信息,請參閱磁盤管理概述。有關 Diskpart.efi 的詳細信息,請參閱 Intel 網站。
在基于 Itanium 的計算機上的系統恢復方案中,請參閱計算機所附帶的制造商文檔來重新創建或恢復 GPT 磁盤。
有關管理 GPT 和 MBR 磁盤的詳細信息,請參閱可擴展固件接口 或 Microsoft Windows 資源工具網站上的Disk Management(磁盤管理)。
GPT的分區信息是在分區中,而不象MBR一樣在主引導扇區,為保護GPT不受MBR類磁盤管理軟件的危害,GPT在主引導扇區建立了一個保護分區(Protective MBR)的MBR分區表,這種分區的類型標識為0xEE,這個保護分區的大小在Windows下為128MB,Mac OS X下為200MB,在Window磁盤管理器里名為GPT保護分區,可讓MBR類磁盤管理軟件把GPT看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。
|