Jump to content

2 TiB limit size in MBR hard drives


Cixert

Recommended Posts

2 hours ago, jaclaz said:

I don't buy - with all due respect - that Windows doesn't boot.

It is not booting, or the motherboard is not seeing the volume as being bootable, so it doesn't even attempt it. I have tried different images, my regular Win7 images are designed to have the recovery partition and do not normally boot on a single partition, or where the boot volume is on the first partition. However, my System Builder images are, but they do not boot either.

When using my normal process, on a 3+ TB disk (in the past) there would end up having a partially formatted disk, the OS would boot but there would be an unallocated portion "at the end" in Disk Management that wouldn't let you do anything. Currently, that is not even working because Diskpart is converting the disk to GPT automatically. This means the usual Win7 deployment will fail entirely. My DOS image fails to deploy also. It may be due to this version of PE being an issue. Have an older one I will try using for deployment instead.

Link to comment
Share on other sites


Well, of course if the disk is converted *automatically* to GPT, then it won't ever boot in BIOS.

You clearly need a PE (and a  diskpart) from Windows 7 or earlier (and as said earlier the whole point is about using a 32 bit OS).

Maybe it is not the diskpart (or whatever) that *automatically* converts to GPT but something else in your process.

If your "normal" process worked on a 3 Tb+ disk (in the past), by all means do that.

Once you have a single partition working (and booting) normally, and the unallocated portion at the end, all is needed is to create the second partition (it is possible that the first partition needs to be slightly shrinked in order to have the first LBA sector of the second partition within the 2.2 Tb limit.

More generally, the test is not about two partitions, it is about n partitions, with the ONLY requisite that the very last partition starts within the 2.2 Tb limit and does not extend for more than the same 2.2 Tb, i.e. the Start LBA of the LAST needs to be less than 2^32-1=4294967295 sectors and the amount of sectors in this last partition does not exceed 2^32-1=4294967295

In any case - re-thinking about this - all in all the experiment makes no real sense (making it with Windows 7 which already supports GPT), it makes sense for those OS's that know nothing about GPT. (we do have a few ways to boot a GPT disk on BIOS, if the OS supports GPT, like Windows 7 and later). 

jaclaz

 

Link to comment
Share on other sites

Diskpart in WinPE 4, 5 and 10 will automatically convert the 3TB disk to GPT if not initialized. It does this after just these commands:

sel disk 0
clean
create part pri size=300

Or any size, it doesn't matter. With a smaller disk, it does not convert to GPT. I have now used WinPE 3.0 x86. Diskpart there lets you create a partition without automatically converting the disk. I have also changed to an older motherboard, the Intel D410PT with 2GB RAM. Because you said this is for OS that doesn't support GPT, then I can test with Windows 7 Pro SP1 x86, which does not support GPT or EFI booting.

I cleaned the disk in diskpart in WinPE 3, then reboot into DOS and run the Grub commands from before. I then boot back into WinPE 3 and I check with diskpart and the two partitions are there and Part 1 is active. Format that part with NTFS and then apply the Windows 7 Pro SP1 32bit image onto it.

What I get is the flashing cursor. I have still not formatted the second partition. I will now repeat the test but leave out creating the second partition in grub to see if the OS will boot.

Link to comment
Share on other sites

15 hours ago, Tripredacus said:

What I get is the flashing cursor. I have still not formatted the second partition. I will now repeat the test but leave out creating the second partition in grub to see if the OS will boot.

Yes, it is entirely possible that *something* in the install (or apply phase) doesn't like that second partition,

15 hours ago, Tripredacus said:

Diskpart in WinPE 4, 5 and 10 will automatically convert the 3TB disk to GPT if not initialized. It does this after just these commands:

sel disk 0
clean
create part pri size=300

Or any size, it doesn't matter. With a smaller disk, it does not convert to GPT.

Sure, if you create a new partition in diskpart it automagically creates a GPT disk (because it detects the bigger than 2.2 Tb disk and "switches mode"), but just after the "clean" command the disk should be actually "clean" :unsure:.

The idea was that on a "clean" disk you create the partition(s) in DOS or grub4dos,

If you need to write the 55AA Magic Bytes, there should be no problems in initializing the disk in RPM, creating an arbitrary sized partition (without formatting it) and writing a MBR , then you write in grub4dos the new partition table.

Or one could use cat --hex or this little script:

http://reboot.pro/topic/18783-release-cateditg4b-script-to-write-hex-values/

I doubt that - outside diskpart - any PE, including the stupid Windows 10 derived one. will convert the disk to GPT if you only use the FORMAT command :dubbio:but of course when the good MS guys are involved everything is possible.

jaclaz

Link to comment
Share on other sites

Regular testing, without the use of grub or other tools. WinPE 3.0 x86 and Windows 7 Pro SP1 32-bit. Only using Diskpart for disk manipulation.

Example where I create 1 14GB partition for the OS, then "remainder" for data. The second partition still ends within the 2.2TB boundary. Unallocated space cannot be manipulated.

8C3i5wbl.jpg

The same instance, Diskpart cannot create a partition here, the reasons it gives do not match with the current situation:

4M2np3ll.jpg

Creating a smaller partition for the OS (or shrinking a 2.2TB partition) results in a divider between the usable Unallocated space and the not usable, in Disk Management. You can create a partition with Diskpart, only in the 195.31GB portion of the screenshot, or create new Simple volume with Diskmgmt, but the same issue with the 746.52GB Unallocated portion as before.

BA5uLXKl.jpg

However, there is this situation now with this testing environment. I can boot Windows 7 on a 2.2TB partition created with Diskpart, but not if created by Grub4DOS. I can work on this again next week starting Monday. If you want me to do any tests on the disk after being manipulated with Diskpart vs with Grub, I should be able to do that also.

Link to comment
Share on other sites

Well, it seems "normal enough to me that the good MS guys put some road blocks (in diskpart or in disk management).

Rest assured that there are no issues in the way the grub4dos created the partition entry, it is entirely possible that Windows 7 does not like a partition ending so near the "limit", however (the old XP disk manager had "steps" in around 8 Mb, i.e. one cylinder, 1x255x63x512=8225280 bytes, it is entirely possible that the 7 disk manager has a similar step at 1 Mb or so) :unsure:.

When you have some time, try to just create the new partition entry with grub4dos (the second one).

I.e. leave the disk "as is", with the first partition being the 1852,69 Gb one and the 195.31 Gb Unallocated and run only the;

partnew (hd1,1) 0x07 4294967294 1258291200

then try booting to the Windows 7 DO NOT run diskpart NOR disk management, just see if you have a new drive letter in Explorer or run MOUNTVOL.

It is perfectly possible that *some code* actually "sums" the extents of the partitions in a 32 bit integer, that would be the "show stopper" :(.

The other test is to enlarge as much as possible the first partition, then re-shrink it two steps below the max.

Then calculate the new LBA start to be used in grub4dos for the second partition as the last LBA in first partition + 1 (or post the data of cat --hex --skip=446 and I will calculate it).

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

14 minutes ago, jaclaz said:

I.e. leave the disk "as is", with the first partition being the 1852,69 Gb one and the 195.31 Gb Unallocated and run only the;

partnew (hd1,1) 0x07 4294967294 1258291200

then try booting to the Windows 7 DO NOT run diskpart NOR disk management, just see if you have a new drive letter in Explorer

I have a drive D:  in Explorer now. If I try to open it, it asks to format.

Link to comment
Share on other sites

Good :), can you copy files to it? (and read them back?)

Can you defragment it?

Can you CHKDSK it?

I.e. does it behave like a "normal" volume?

How does it show in diskpart?

As a side note, on second thought, maybe the "blinking cursor" you had before was only because in your procedure the MBR code wasn't "automatically" written to the MBR when installing/applying the wim (i.e. as an example one would need to run bootsect.exe /MBR),

jaclaz

 

Link to comment
Share on other sites

I am working to fill that partition with the same data also put onto the main partition so that I can do a diff on it for comparison reasons. It is taking a long time to copy the files. I've only got 170GB onto it so far. So it might be a couple of days before I can get to the other tests.

Link to comment
Share on other sites

2 hours ago, Tripredacus said:

I am working to fill that partition with the same data also put onto the main partition so that I can do a diff on it for comparison reasons. It is taking a long time to copy the files. I've only got 170GB onto it so far. So it might be a couple of days before I can get to the other tests.

No hurry whatever :).

Another test (when/if you have time) is to artificially fragment a few files and then try on them wincontig and contig (besides running defrag on the whole volume).

To fragment, you can use myfragmenter, get it from mydefrag:

https://web.archive.org/web/20150811002116/http://www.mydefrag.com/Downloads/Download.php?File=MyDefrag-v4.3.1.exe

use UNIextract.

jaclaz

Link to comment
Share on other sites

I have copied some files and then did a compare to the same on C: and it is the same. There is one difference, a recycler is on the D: drive.

J3dVFL9l.jpg

If I should put more files on either, LMK. I was using a 167GB set. I am running Chkdsk now.

Link to comment
Share on other sites

Good. :)

The volume, even if it is partially "beyond the border" is to all effects a "normal" volume, the NTFS filesystem is exactly the same on MBR or GPT partitions/volumes, its size is well within NTFS capabilities (and actually it can be - at the very most and on 4 Tb disk - anyway smaller than the first volume which can be at the very most almost 2.2 Tb).

The possible issues are only connected to testing if any of the various tools that are "normal use" may have an hiccup with the volume location, technically the issue is with *anything* that may treat the "volume" as a "partition" AND have "artificial" checks/limitation (be them either intentional or not), but not with "normal" operations at the volume level.

I have very little doubts that Windows 7 may have any issues, since anyway it has GPT (and thus volume placed at large addresses) support.

I would be more suspicious of NT/2K/XP. :dubbio:

jaclaz

 

 

Link to comment
Share on other sites

I was wondering if behaviours would be different if there was more than 2.2TB data total on the disk, with the partitions/volumes laid out like it is. That is why I made the comment about adding more to C:

Would it be enough to just put this disk as a secondary on an XP system, or do you have the same requirement that the OS be booted from it?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...