首頁 > 硬體

XP不支援2TB以上硬碟?必須升級到Vista或Win7?

2020-10-11 06:48:24

硬碟容量限制問題再現!各位打算用2T以上硬碟的朋友們請注意了!
現在市場上單碟500G的硬碟也已經面市,2T、2.5T硬碟在2009年也已經面市。硬碟容量突飛猛進,現1T硬碟價格早已降至600元左右,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 (65536×16×255),一磁區是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(65536×65535×65536),這樣可支援的硬碟容量就達到了281,474,976,710,655×512=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磁碟分割表(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分割區的支援情況:

步驟/方法

  • 01

    Windows 95/98/ME、Windows NT 4、Windows 2000、Windows XP 32 位版本不支援GPT分割區,只能檢視GPT的保護分割區,GPT不會被裝載或公開給應用軟體;

  • 02

    Windows XP x64 版本只能使用GPT磁碟進行資料操作,只有基於安騰處理器 (Itanium)的 Windows系統才能從 GPT 分割區上啟動;

  • 03

    Windows Server 2003 32bit Server Pack 1 以後的所有Windows 2003版本都能使用GPT分割區磁碟進行資料操作,只有基於安騰處理器(Itanium)的Windows系統才能從 GPT 分割區上啟動;

  • 04

    Windows Vista 和 Windows Server 2008的所有版本都能使用GPT分割區磁碟進行資料操作;但只有基於EFI主機板的系統支援從GPT啟動。
    看到這裡,我們知道了要想用2.5T硬碟:
    1、首先,你得放棄2K和XP 32位元版,改成人見人不愛的Vista或是人見人愛的Win7;
    2、你還得把基於BIOS的主機板給扔了,換成EFI主機板,否則即使換成Vista了,也只能把2.5T硬碟當從盤用。
    否則,我們就只能對2.5T硬碟乾瞪眼,嘩嘩地流口水。。。

  • 05

    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磁區的操作如下:
    A>DEBUG
    -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,如果該標誌錯誤系統就不能啟動。

  • 06

    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看成一個未知格式的分割區,而不是錯誤地當成一個未分割區的磁碟。

  • End

IT145.com E-mail:sddin#qq.com