logo
background
 Home and Links
 Your PC and Security
 Server NAS
 Wargames
 Astronomy
 PhotoStory
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Using drives over 2TB with Windows XP

>2Tb Drives with XP
WARNING - almost all current hard drives use a 4kb sectors with 512b sector 'emulation'. Microsoft's moronic Windows XP Disk Manager creates Partition with a 63 (x512 = 3.9 x 4k) sector 'offset'. This will cripple your hard disk performance, since it results in everything 'starting' at a point 7/8th the way through a 4kb sector (so, every 'write' to the drive means an existing 4k sector has to be read and then the last 7/8th replaced with new data). The result is that NTFS formatting a 2TB partition will take about 14 hours and data transfers will be between 4x and 8x SLOWER than they should be :-). You can either use a 3rd party tool to get the 'correct' offset 64 (x512 = 4 x 4k) OR set a 'jumper' to 'tell the drive' to add an extra +1 (512byte) sector offset (not all drives have this jumper).

The MS Win2000 vintage 'diskpar' tool can be used to check the offset of an existing partitioned and formatted disk = see here (see also MS KB929491 and MS KB923076)

To align later, in theory you can use either the Hitachi Acronis Alignment Tool (which ignores the existence of 'dynamic' disks) or the WD Align Tool (only available to those who have registered their WD drive). I use the excellent MiniTool Partition Wizard Home Edition 8.1.1 which not only lets you re-align an existing partition but even copes with moving the data on an 'active' (bootable) partition). Expect it to take approx 10 Hr per Tb of data that needs re-aligning

XP hard drive capacity limit

The limit is imposed by Windows XP Disk Manager and how it uses the 'MBR' format to define partitions on the drive surface. The MBR partition table 'assumes' the disk sector size is 512 bytes, and uses 22 bit addressing. This gives us the maximum size of a single MBR partition of 2048Mb.

To handle larger drives, instead of 'fixing' MBR, Microsoft invented the 'GPT' partitioning scheme.

If the MBR on a drive is 'hacked' to use a 4K sector size (the size of actual sectors on high capacity / multi-TB drives), the limit becomes 16TB. Unfortunately, such a 'hack' then breaks both the boot sequence (and many other parts of Windows XP which also have this 512 byte 'assumption' built in), however a 4k sector MBR format works just fine if you are using LINUX

Actual drive limit

Historically, drive manufacturers state capacity in "kb's" of 1,000 bytes rather than the 'binary' kb of 1024 bytes = no doubt this 'convention' was adopted for the same reason that screen manufacturers advertise their diagonal size (so they can suggest their products are 'bigger' than they really are :-) )

The 'industry standard' for drive manufacturers is 1 kb = 1,000 (and memory (RAM) manufacturers 1kB = 1024). Thus the '2TB limit' = 2048 GB's and applies to drives of capacity exceeding '2.199 Tb' (or, as is more usually stated, '2.2Tb').

If you want absolute the maximum sized drive that XP can easily handle, you need one with a capacity of at least '2.2' Tb (i.e. 2.5Tb or 3Tb, whatever is cheaper).

Why can't I 'chop up' the drive into multiple 2TB MBR partitions ?

In theory (and in LINUX) you can ! The MBR partition table in the 'root' of the drive has to 'point' to the start of each actual partition - and whilst the 'pointers' are limited to 2Tb you can start a second MBR right on the 2Tb limit. This would allow access to a 4Tb drive as 2 separate 2047Gb partitions.

Note that the NTFS file system has NO '2TB' limit, nor is there any 'directory' or other limit within (32bit) Windows XP itself = it's just in the MBR partitioning scheme (which is why you have already seen XP handle multi-Tb RAID systems made up of multiple individual drives (each of less than 2.2Tb, of course)

Microsoft (who would rather you paid for a new operating system to support the larger drives) says XP offers 'no support' for this 'chopped up' MBR scheme. This is the usual MS 'double talk' = XP has 'no support' because that's what MS offers - but there is nothing to stop you using 3rd party tools to do the 'chopping up', after which XP works with the drive just fine.

To maintain compatibility with XP Disk Manager, after 'chopping up' the drive it will appear as multiple separate physical drives. Disk Manager will be quite happy to format them to NTFS and assign each a drive letter or 'convert' them to 'dynamic' disks and 'span' them into a single 'virtual drive' etc. etc.

Acronis supply 'oem' versions of their software to Seagate as the DiscWizard v13. For Hitachi drives you can download the Paragon'HGST tool'. Both tools are intended to be used with raw unformatted drives and neither will even 'see' an existing 'dynamic' disk

EaseUS Partition Master Home Edition also allows you to 'chop up' a raw / non-partitioned disk

Note that EPM Home is intended for use on a raw, unformatted, drive. Whilst it can 'see' a drive already formatted to the 2TB MBR limit, and is even 'Dynamic disk aware', it won't show any 'unused' space above the 2TB limit (nor does it offer any MBR 'alignment' options) on a drive that has already been partitioned/formatted (eg by Windows Disk Manager). To get around this limitation, you have to 'hand edit' the 'mode' flag using a 3rd party tool (see at end of this page, how to hand edit from Dynamic to Basic)

Some RAID PCI/PCIe cards & Drivers have the capability of 'chopping up' a drive into multiple partitions 'built in'. Having used the card/driver to partition the drives, Windows can then 'span' them together (for example, see here)

Gigabyte offers a Driver that can be loaded during Windows install sequence (when it says 'Press F6 to load 3rd party driver') to access the whole capacity of drives >2TB. It ONLY works with specific motherboards / chip sets see here

ASUS offers the same sort of 'Unlocker' for ASUS motherboards

At a guess, both Gigabyte and ASUS use some variation on the 4kb sector MBR 'hack' that can be handled by the Gigabyte / ASUS motherboard BIOS (for booting), along with a 'custom' Disk Driver that later 'hides' the 4kb sector from Windows (and reports in 512 byte blocks as Windows expects)

Single partition exceeding 2TB ?

A1. Yes, if you have a RAID card or similar (for example, an external USB disk enclosure) that can 'hide' the actual disk partitions from Windows XP.
a) The disk has to be partitioned using GPT (GUID Partition Tables) = a non-MBR partitioning scheme that supports drives > 2.2Tb
b) This has to be 'hidden' from Windows by a RAID card or a 'custom' Driver
c) You won't be able to boot from it (unless your RAID card has it's own boot capable BIOS)
d) You can't format it with XP Disk Manager = XP's Disk Manager will only 'see' the 'dummy MBR' space (see below)

GPT and why XP can't see my new hard drive

Microsoft's GPT partitioning scheme includes a 'dummy' MBR record to prevent 'non-GPT aware' Operating Systems (such as XP) trashing a GPT disk (useful for those with dual boot a Win7 (GPT) and XP (MBR) system). Unfortunately, some drive manufacturers try to be 'helpful' by pre-partitioning their 'brand new' high capacity (>2Tb) drives as GPT !

As a result, when you plug such a drive into a Windows XP 32bit PC you may discover that not only has it 'shrunk' to 2.2Tb (or less) but, worse, it's 'write protected' = so the drive is 'unusable' as XP's Disk Manager refuses to re-partition it (but see at end of this page) !

Note that the Windows boot sequence is started by the motherboard BIOS which uses 512 byte sectors and 'native' Windows drivers. For Windows to boot from GPT drives - see later - your BIOS must be 'UEFI' capable. Of course, as usual, Microsoft's refusal to 'fix' problems (and thus impose limitations) just means that those with older motherboards are pushed into the Linux / FreeBSD 'camp' (can systems boot a GPT drive on a non-UEFI motherboard)

Using >2 Tb drives with XP

On Windows XP, using MBR partitioning, to get access to the space beyond the first 2.2Tb, you have to use a 3rd party Disk Driver and tool to do the partitioning & formatting. Some drive manufacturers (Hitachi 'HGST' drives = now Western Digital) supply this with the 'Retail' version of their high capacity drives (or you can download it here)

The Hitachi HGST drivers bypass the built-in Windows disk drivers to provide 'basic disk' data read/write functionality only - i.e. they do not offer 'dynamic disk' functionality (such as RAID etc) nor do they support booting from the disk

Since Windows XP x64 Edition, Windows Server 2003 Service x64 Pack 1+, Windows Vista, Windows 7 & 8 all offer 'native' boot support for GPT disks there seems no real reason why XP Pro couldn't be 'made to work' with GPT (but note the MS requirement that your motherboard support UEFI).

Using >2 Tb drives with Windows 2000

Win 2000 has the same '63 sector offset' problem as XP, along with a Disk Manager that refuses to set MBR start offsets beyond the first 2.2Tb. However, for Win2000, Microsoft provides tools that can be used to address both issues

For drives up to 2.2Tb, use the 'diskpar.exe' utility from the original Win2000 reskit (or find it here)

Note that Microsoft offers the newer 'diskpart' for download as part of the updated Windows 2000 reskit, which allows you to 'set' a new offset but does not allow you to check the existing offset. DiskPart.exe supports both MBR and GPT partitions whilst diskpar.exe only creates MBR partitions (neither work on already partitioned (eg 'dynamic') disks).

diskpar -i {n} (where n= the disk 'number', as seen in disk manager (diskmgmt.msc)

eg:-
diskpar -i 2
---- Drive 2 Geometry Information ----
Cylinders = 13056
TracksPerCylinder = 255
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 107389255680 (Bytes) = 102414 (MB)
---- Drive Partition 0 Information ----
StartingOffset = 32256
PartitionLength = 107380998144
HiddenSectors = 63
PartitionNumber = 1
PartitionType = 7

Before you can set a new starting offset with diskpar, you have to remove any existing partition(s) using Disk Manager (if it lets you = see below re GPT partitions)

Then type :-
diskpar -s {n} (where n = disk number)

You will then get the 'are you sure ?' followed by 'specify starting offset (sectors)' (64) and 'specify partition length in Mb' (2048x1024-1 = 2097151 for 2Tb) dialogue. You can only set the first partition in this way.

You can then return to disk manager, 'convert to dynamic' (for RAID) and format the new partition

How do I re-partition a drive with GPT partition tables ?

The Windows XP Disk Manager will refuse to 'delete' GPT partitions, insisting that the drive is 'write protected'. Instead you will have to use a 3rd party tool, such as 'fixparts'.

What else do I have to watch out for ?

In order to use a disk as part of a RAID 1 'mirror' it has to be 'converted' to 'Dynamic'. However this is only possible of AT LEAST 1Mb of 'unpartitioned' space exists on an MBR partitioned drive (i.e. within the 2048Gb limit). If Disk Manager can't 'see' the free space, the 'Convert to Dynamic' option will be greyed out.

Windows Disk Manager is also unable to convert a Dynamic disk back to Basic = it insists you delete all the partitions (and thus loose all your data) first. To get around this stupid restriction & recover a 'broken' Mirror, you can 'patch' the 'Dynamic' flag in the MBR record by hand

NB. you can't make a Dynamic disk drive letter (such as 'D:') 'shared', although you can, of course, make individual folders (such as 'D:/data') 'shared'

How to hand edit a Dynamic drive back to Basic


To revert a disk to Basic, without wiping the data, you have to manually edit 1 byte in the disk 'boot' sector.
 
Right click and 'Save link as' to download the freeware HxD disk hex editor from here.
 
Launch the utility and open the 'offending' disk. In sector 0, location 1C2, the value should read "42" = this means 'Dynamic' disk.
 
Change the value to "07" (= Basic Disk), save the changes and reboot. If the first reboot fails to find the disk, a second often does.
 
Needless to say, this ONLY works with single drives (i.e. so long as you avoided the temptation of 'expanding' your 'Dynamic disk' onto another drive)

Next subject :- Backup - (and Synchronisation)

[top]