Yes, it IS possible to have MBR partitions, Windows XP (32) and partitions larger than 3TB in size and boot off the dirves.
I have Windows XP32 and +3TB partitions here at work on a single RAID 5 Disk set with 2 Arrays defined in a total of 4TB
I also backup our server (Win32XP) to external 3TB drives via SATA internal connection.
I did this because the original 1.5TB array failed and I needed to make a new one and my work wanted to upgrade the size of the backup storage array at the same time as restore. The computer used to boot XP from yet another hard disk so, I just pulled it out to clone the data to a .raw image, I then just dumped this to the new Array once I worked out how to make an Array NTFS and XP 32 complient.
They way I did it was, I created a 110GB Boot partition (512 sector) on a 4+TB Array RAID 5 card ( Highpoint Rocket Raid $60 ) and a secondary 3.7TB (64k sector) Data array. This is done in the BIOS of the HighPoint prior to loading windows. I made sure it used 512byte sector sizes (mandatory for XP boot partition it seems)
I also had to fool the OS in to thinking it was Windows 2003 Server for the boot off RAID 5 to work but that was modifying 3 files to do it and hey, presto, I have the ability to use more that 4TB partitions and drives and I can boot from them etc etc all from Windows XP 32.
Name----------------Type------Capacity-------Cache Policy-----BlockSize--SectorSize --OS Name----------Status
Array-01R5_OS-----RAID 5----112.39 GB-----Write Back------64k---------512B---------HPT DISK 0_0----Normal
Array-02R5_DATA--RAID 5----3.89 TB--------Write Back------64k---------4K------------HPT DISK 0_1----Normal
My Work notes are below. I just pasted them from my job entries so they are a little long-winded however, what you actually need to do is seriously NOT THAT MUCH. You replace 3 disk loading files with slightly modified versions so XP thinks it's server 2003 to access disks (IT'STHE SAME BLOODY OS ANYWAY!, yet another reaosn to hate Micro$$$oft) Sometimes, you don't NEED server, dont WANT server and all its features and just need 1 function like memory or disk space and keep it simple.
Here's what you need to do to get it working like I did.
- Create the Array using BIOS mode (Ctrl+A as the computer boots to setup the array) of HighPoint RAID card as XP won't recognise the Array.
- A few things have cropped up after creating a new Array under RAID 5 3 x 2TB drives.
- Booting off the Array ends up with only a blinking cursor and no OS.
1.) XP has a severe limitation of 2TB limit on any drive. Array is not seen by OS.http://support.microsoft.com/kb/2581408
2.) XP has a limitation that prvents it from booting with RAID5
3.) Disk Set Array is 4 TB in size 3x2TB drives in RAID 5. There is no "Auto Carve" 2TB feature on the RocketRaid Raid Card so smaller Partitions are not made, not that XP will even see the Array to allow me to create smaller partitions anyway.http://www.ghacks.net/2010/11/04/how-to ... indows-xp/
A1.) This limit is because of address space in 32bit addressing at 512 block size using MBR format. GPT does get around this but, is not supported by XP 32bit natively.http://msdn.microsoft.com/en-us/library ... 85%29.aspx
- The first thing to keep in mind here is the bytes and bits termanology.
Why are there 8 bits in 1 byte and not 10?
Well, that's a good question, it was once explained to me at Uni that the absolutle minimum bits to communicate/represent a letter of the alphabet or number in the computer domain of binary (Base 2) was 8 So if you had 8 dots to play with, you could communicate a letter like A for example, just made out of 8 values. Any less than 8 made it far less easy to communicated different letters, like on an 8 segment display as an example.
The above is a just a representaion of either a 1 or a 0 in Computer Binary form or on/off. Because memory was very expensive back then, each bit count. Anyway, space is calculated on disk storage this way and NOT like speed of network/ADSL/Ethernet etc.
8 bits = 1 byte
1024 bytes = 1 kilobyte
1024 kilobytes = 1 megabyte
1024 megabyte = 1 gigabyte
1024 gigabyte = 1 terabyte
- Info on an MBR (Master Boot Record) disk.
MBR location is where the partition sizes are stored etc.
Apparently, as a standard, is only 4 bytes long and is also stored in hexadecimal.
The largest value of HEX in byte format is FF and so the bigest value in there would be 4 x bytes of FF (Decimal 255)
So, the max value would be 4,294,967,295 in decimal.
To confuse things even further, the maximum partition size is not in bytes but in sectors.
XP sectors are limited to 512 bytes by default. Anyway, the maximum size ends up being 2 TB.
Byte being = FF
Looking at 4 Bytes space for MBR then, FF FF FF FFh = 4294967295 sectors
4,294,967,295 sectors * 512 bytes/sectors = 2,199,023,255,040 bytes or 2TB.
The second issue is another severe limitation, this time of the Microsoft NTFS standard.
NTFS is limited to (2^32 -1) clusters.
The smallest cluster size possible is 512 bytes (1 sector). The size of the defualt sector size is roughly calculated automatically by the drive size.
From memory, anything over the 250GB mark gets a 4k size.
Anyway, the math leaves us at 2,199,023,255,040 or 2TB using the 512b cluster.
(2^32)-1 = (4,294,967,296)-1 = 4,294,967,295 clusters
4,294,967,295 clusters * 512 bytes/cluster = = 2,199,023,255,040 bytes or 2TB
So, the simple solution seems to be not to use the 512b cluster\sector size but to use 4k or above.
- Yet another limitation of NTFS is exposed.
If you want to use disk based compression or security hashing, you can't use over 4k clusters/sectors.
I have re-booted the Server in to the HighPoint RAID card BIOS and re created a 2 Part Array. The Disk Set now consists of 2 Arrays in RAID 5.
The First Array of RAID 5 Disk Set is 110GB in size and uses the a 4k sector with 64k stripe.
The Second Array of RAID 5 Disk Set is the Data part and uses the remaing space in 4k sector format 64k stripe. It is around 3.6 TB in size.
- I have cloned the OS of the original RAID 1 Mirror OS partition to the new OS Array of 110GB using my old boot XP hdd and a sata to usb converter
- Amazing, XP now finds the Array drives and will access them.
- Made the 1st 110GB array Bootable, Primary.
- Restart with only the Array being the boot device in the BIOS
- The system still will not boot and gives the blinking cursor, it will not boot.
- So how do I get around it????
Well, all of the above should work! it did not.
Firstly and simply, I changed the sector size to 4k on format to get the OS to see an array that went over the 2TB size. (fixed size issue)
That one change has made the Array, viewable by XP once I boot off the original external OS drive.
The thorn in doing this is that, you betchya, XP doesn't support it, the 4k sectors as a boot device. (still needs to be fixed)
Just out of interest, 4k ends up at around 16TB in size limit.
4,294,967,295 sectors * 4096 bytes/sectors = 17,592,186,040,320
This wasn't the end however, as I just mentioned, XP doesn't support booting off anything over 512byte sectors, it just doesn't, that's a Server/Vista/7 upgrade :-\
That being said, if there are 3rd party drivers, these can intervene between the OS disk I/O driver and the Array. The HighPoint solution seems to support this so.... Maybe it will trick 4k clusters in to XP 512b or better still, just enable the 512b cluster and be done with it all.
- Flashed RocketRaid 3010 to latest Firmware.
- Updated RocketRaid to latest drivers.
- Re-created 2 RAID 5 partitions off the 1 4TB RAID 5 Array using 3rd party solution.
- 1 x 110 GB x 512b cluster as the OS Boot drive
- 1 x 3.6 TB x 4096 cluster as the Data storage partition.
- Re-image and make bootable on the 110GB Array, I have double checked it is complient with 512 sectors and NTFS and it is.
- I have booted in to the BIOS of the HighPoint RAID card Ctrl-H at boot time and made sure the selected smaller 110 GB, 512 sector partition is still the boot partition.
- Motherboard BIOS is set to load off the External RAID card Array first in the list of boot devices as well, so, nothing has changed which is good.
- XP gives warnings when searching for the Array in XP's Disk Management however, it sees it. Not only does it now see the Array, it reads and writes to both the 4k and 512b patitions without loss. Good times? Not quite.
2.) XP has another limitation. It apparently won't boot from a RAID 5 disk Array. No matter what partitions are on it, it's a flat out no, k thnkz bai.
There are numerous sources pointing to this issue on Google HOWEVER, and yes it's a big one, Server 2003, doesn't have this limitation!
Here's the thing, Server 2003 IS XP, just in server form so, there is the ability or chance to HACK it, trick XP to use this Server mode driver yet be XP.http://www.tomshardware.com/reviews/win ... 925-2.html
- This is currently where I am at. More to follow!!!!
- Hex Editiing the following files.
- I have made copies to have ".srv.xxx" extensions just incase Windows does a restore of some description, there are also the original pre-edits under the ".bak" extension :-\
All files are in the same locations as below.
- Files obtained from the below areas for editing.
- Modified Files are replaced and stored to the above directory locations and then a copy of ALL the modified files also to the below dllcache directory so they reside in two places.
By copying to the dllcache, hopefully XP will not try to restore the un-modifed version of files, as it matches the cache backup copy.
- So, how to modify the files? I installed a free Hex Editor and hand edited each of the files below. As I was booting of an extranal copy of the OS, it was easy for me to modify the Boot Partition on the RAID 5 Array and simply replace them. Obviously once done, I will remove the extranl boot and try boot again from the Array.
- Modify files as per below using a Hex Editor like HxD.
74 00 54 00 79 00 70 00 65 00 00 00 57 49 4E 4E ; t.T.y.p.e...WINN
54 00 00 00 53 45 52 56 45 52 4E 54 00 00 00 00 ; T...SERVERNT....
74 00 54 00 79 00 70 00 65 00 00 00 53 45 52 56 ; t.T.y.p.e...SERV
45 52 4E 54 57 49 4E 4E 54 00 00 00 00 00 00 00 ; ERNTWINNT......
4C 41 4E 4D 41 4E 4E 54 00 00 00 00 53 45 52 56 ; LANMANNT....SERV
45 52 4E 54 00 00 00 00 57 49 4E 4E 54 00 00 00 ; ERNT....WINNT...
4C 41 4E 4D 41 4E 4E 54 00 00 00 00 57 49 4E 4E ; LANMANNT....WINN
54 00 00 00 00 00 00 00 53 45 52 56 45 52 4E 54 ; T.......SERVERNT
73 65 72 76 65 72 6E 74 00 00 00 00 6C 61 6E 6D ; servernt....lanm
61 6E 6E 74 00 00 00 00 50 72 6F 64 75 63 74 54 ; annt....ProductT
77 69 6E 6E 74 00 00 00 00 00 00 00 6C 61 6E 6D ; winnt.......lanm
61 6E 6E 74 00 00 00 00 50 72 6F 64 75 63 74 54 ; annt....ProductT
Files are now modified and replaced and I am ready to re-test. I will remove the Motherboard SATA external Boot OS drive, it was copied earlier using the "snapshot" program and restored using the same program to a OS partition I have created on the RAID 5 Array. I have made the OS partition compliant with 512 sector size and only 110 GB is space. This has not booted sucessfully previously giving the "blinking cursor" black screen on restart so this aught to be interesting.
Well, that's fixed the boot issue! It now works.
XP now loads off the RAID 5 Array (Using a 512 sector boot partition) and I am ready to try a backup. I intend to copy what data is remianing from the old bad Array and see if it will do a recover on it.
In closing off this post and re-cap my above job notes, you modify 3 files to trick XP in to thinking it's server for the disk access, you get to boot off a RAID 5 setup and can use 3TB + partition sizes as long as :
1. You modify the 3 disk binaries as listed above and you BIOS supports large disks!
2. You have a partition set on the drive that will be in the size limit of 512b MBR teritory to boot XP from. (mine was a 110 GB size boot partition)
3. Any Data partition over the 2 TB mark uses 4k or above sector/cluster sizes. (Keep in mind 4k has a limit of 16TB)
Just out of interest, I am using 3TB disks in a single partition hanging off the internal motherboard AMD SATA controller and not the highpoint Rocket Raid card for my Off-Site backups. Of course, I am still using the 4k cluster size but it's more proof that it can be done.
I hope this helps someone else, it took me a while to work through the issues and M$ do not seem interested in letting anyone know, probably more so now that XP is end of life.