Seeking (somewhat) better explanations about supporting >2 TB hard drives

1172
irrational John

Today while Googling about I stumbled across posts claiming that Seagate plans to ship a 3TB drive sometime later in 2010. Unfortunately, the stuff I looked at all seemed to contain tidbits of info which I didn't think fit together properly. (I would link to some examples, but I'm only allowed 1 link per post at the moment).

Now I really don't have any "need" to better understand the underlying tedious details of this. I am just curious. And confused.

So ... some questions I'm hoping someone better informed than I might answer.

  1. The talk about a potential addressing problem in both the hardware and the software confused me. The assertion is that something called something called Long LBA addressing (LLBA) is needed in the Command Descriptor Block as a way to get around the current limits to access a hard drive bigger than 2 TB (1 TB=2⁴⁰ B).

    OK, fine. But I thought the last time this problem came up it was solved by extending the length of the LBA field from 28 to 48 bits. (Remember this website? www.48bitlba.com) A 6 byte LBA is clearly large enough, so what's up with this LLBA talk. I thought this was all fixed back by Win XP SP2, if not sooner? And certainly all the hardware should be up to the task, shouldn't it?

  2. The real problem as I understand it with drives much bigger than 2 TB are the 4 byte LBA fields in the Master Boot Record (MBR) used to partition just about all hard drives at the moment. The most likely solution is to migrate to Intel's GUID Partition Table (GPT). A GPT uses 8 byte fields for the LBA.

    What I don't understand in this context is what is the problem with booting say Windows from a 3TB drive that uses a GPT. Granted, the current PC BIOS wouldn't know how to recognize or work with a GPT. But every GPT comes with a so-called "Safety" or "Guarding" MBR in sector 0.

    Apple already uses a hybrid version of the MBR to allow them to boot Windows on their Intel Macs (aka Boot Camp). Couldn't something similar be done to allow the PC BIOS to recognize and boot from a partition within, say, the first 2 TB of a 3 TB or larger drive?

I've got more questions such as where do 4K sectors fit into all of this. But it's probably time I just shut up and posted this. ;-)

-irrational john

9

3 Antworten auf die Frage

6
Ken

The statements about "Long LBA" seem to originate from that one Seagate product manager. What she probably meant is that even though 48-bit LBA is the standard on hardware, 32-bit OSes and drivers may not support all 48 bits, since (a) they're 32-bit and that's more hassle, and (b) MBR only supports 32 bits for partitions anyway, so why bother.

When the 128GB barrier was broken by adopting 48-bit LBA, that was both on the hardware side, in the ATA specification, going up from 28 bits; and also on the OS/driver side, to make sure they didn't hard-code that old 28-bit limit. You can probably say that current well-written drivers actually conform to the actual 48-bit limit, but it's easy to see how somewhere along the chain, someone took the easy way out and only supports 32 bits in their 32-bit drivers. Given that 32-bit OSes are on the way out anyway, it may not be worth trying to make sure all of that works.

As you said, the real issue (for Windows at least) is booting a GPT disk from a BIOS-based (non-EFI) computer. The Protective MBR is designed to make the entire disk seem like a single unknown partition, so that a BIOS/MBR-aware computer won't even touch it. You can create a Hybrid disk, so that the MBR also contains other entries, for partitions below the 2TB barrier. But such Hybrid disks are fragile (easy to clobber with either MBR or GPT partition tools), and no longer officially GPT disks. You're also not booting any GPT partitions, you're booting MBR partitions. That might be OK if you just want to use the GPT partition as a data drive.

And why can't BIOS boot GPT? The short answer is that they haven't, and in order to add that capability, you'd need a smarter BIOS. And that's what EFI is for.

4KB sectors would give you 16TB disks with 32-bit LBA. (And fewer larger sectors means potentially less I/O overhead.) But all the OSes and drivers and even some apps would have to be written to support variable-sized sectors. All you need is one place where the sector size is hard-coded at 512 to break. So 4KB sectors is also not an "easy" solution because it would take a lot of work from many parties. But if you're going to write future software to support GPT (which is sector-size agnostic) and variable-size sectors, it might be adopted as the common practice at some point.

3
Milind R

Sie sicherlich kann von einem GPT - Datenträger auf einer BIOS - Maschine booten. Nur dieses Fenster behauptet, dass es nicht geht.

Auch das stimmt nicht wirklich. Sie können Windows von einem BIOS-Computer auf einem GPT-Datenträger starten: Sie benötigen lediglich einen kleinen MBR-Datenträger, um Bootdateien zu speichern. Eine Festplatte, die für ein anderes Betriebssystem mit einer (kleinen) Ersatzpartition, einer Diskette, einem USB-Laufwerk (vermutlich) verwendet wird.

Starten Sie die Windows-Installations- / Reparaturdiskette. Erstellen Sie das Systemlaufwerk auf dem Stick und bcdbootlegen Sie Ihre Startdateien auf dem Stick ab. Fügen Sie einen Bootssektor mit hinzu bootsect. Ändern Sie devicein boot. Booten Sie von Stick.

Schritte werden hier detailliert beschrieben .

0
plugwash

Was ich in diesem Zusammenhang nicht verstehe, ist das, was das Problem beim Starten von Windows von einem 3-TB-Laufwerk ist, das ein GPT verwendet.

Bei einem herkömmlichen BIOS-System lädt das BIOS den Bootsektor von der Festplatte und führt ihn im 16-Bit-Realmodus aus. Der vom Bootsektor geladene Code muss dann das richtige Betriebssystem finden und laden.

MS implementierte niemals GPT-Unterstützung in ihrem Real-Mode-Loader. Daher kann die GPT-Partitionstabelle nicht gelesen und der Rest des Betriebssystems gestartet werden. Um Windows von einer GPT-Diskette zu starten, müssen Sie entweder uEFI anstelle des herkömmlichen BIOS verwenden (was in Ordnung ist, wenn Ihr Motherboard dies unterstützt und Ihre Windows-Version neu genug ist) oder eine Art Workaround wie einen Fremdanbieter-Lader, a Hybridpartitionstyp oder eine separate Festplatte zum Booten.