Hmm, er zitten wel het een en ander aan onnauwkeurigheden in het artikel...
LBA is een manier van addresseren van de sectoren (de opvolger van de
CHS methode), waar de sectoren simpelweg oplopend genummerd zijn (0, 1, 2, 3, etc).
Sectoren op harddisks zijn tegenwoordig altijd 512 bytes (er zijn - imho terechte - pogingen om naar 4KB te gaan, maar dat terzijde). Rond de tijd dat het CHS/LBA een hot issue werd was 28-bit LBA (doorgaans LBA28 genoemd) gangbaar, wat 2
28 * 512 = 128GiB (de welbekende 137GB grens, voor wie het zich herinnert) aan addresseerbare ruimte oplevert. Later is LBA48 geintroduceerd, goed voor 128PiB.
LBA is vooral een hardware issue; LBA is onderdeel van het IDE en SATA protocol en moet door de schijven en controllers geimplementeerd worden. Maar OSsen moeten het ook ondersteunen en gebruiken natuurlijk.
Onder andere fabrikanten als Western Digital en Seagate leveren harde schijven van 3,5 inch met opslagcapaciteiten van 2,5 en 3TB. Wanneer een 32bit-OS wordt gebruikt, kan het besturingssysteem als gevolg van beperkingen aan het 32bit-lba-adresseringssysteem niet meer dan 2,2TB aanspreken.
"32bit-lba" is dus een beetje een ongelukkige term, want er is geen 32-bit LBA standaard (alleen 22, 28, en 48 bit). Wel is het mogelijk dat software (en hardware) LBA48 ondersteunt, maar slechts de eerste 32 bits daadwerkelijk goed doet. Dat is dan omdat de makers geen zin hadden om de volledige 48 bits te ondersteunen.
Puntje twee is de conclusie dat 32-bit OSsen beperkt zouden zijn tot 32-bits LBA addressering; er is niets dat een 32-bit OS tegenhoudt om de volledige 48 bits van LBA48 te ondersteunen, simpelweg door een groot genoeg datatype te gebruiken. Zo ondersteunt Linux op 32-bit CPUs gewoon de volledige 48 bits van LBA48 (door een 64-bit integer te gebruiken voor sectoraddressen).
De 64bit-uitvoeringen van Windows 7 en Vista kunnen wel overweg met de opvolger van lba, guided partition tables.
Nee.
GPT (de G staat overigens voor GUID, niet voor "guided") is niet de opvolger van LBA, het zijn twee totaal verschillende dingen. Waar LBA voornamelijk een hardware-iets is, is GPT juist totaal een software-ding.
We beginnen bij het begin. Sectoren kunnen addresseren op een schijf (door LBA) is leuk, maar je moet natuurlijk ook afspreken hoe je informatie opslaat op een schijf. Daar heb je filesystems (VFAT, NTFS, EXT3, ZFS, HPFS, etc) voor. Maar mensen vonden het ook handig om een schijf onder te kunnen verdelen in partities waarbij iedere partitie op zich gebruikt kan worden. Daar hebben we op PCs de
MBR voor; de eerste sector op een harddisk die beschrijft hoe de harddisk gepartitioneerd is. Het is belangrijk om hierbij op te merken dat dit 100% een software-afspraak is van hoe we de eerste sector van een harddisk interpreteren. Harde schijven en controllers hebben geen enkele weet van wat een MBR is!
En vervolgens komt de ellende. In de MBR is afgesproken om 32 bits te gebruiken voor de startsector en de lengte van een partitie (overigens ondersteunt de MBR ook adresspecificatie in CHS-vorm, maar dat wordt niet meer gebruikt). Daardoor kunnen MBR partities niet groter zijn dan 2
32 * 512 = 2TiB.
Dat is te klein, dus er is een nieuwe afspraak verzonnen voor het begin van de harddisk: de
GPT! GPT is eigenlijk een opgeschoonde en verbeterde variant op de MBR, met 64-bit sectoraddressering, wat (bij 512-byte sectoren) partities tot 8ZiB (8 miljard TiB) toelaat. Prima. Maar software (met name de BIOS/whatever en het OS) moet het wel ondersteunen en gebruiken natuurlijk.
Een probleem is echter dat de huidige biossen niet overweg kunnen met schijven die via de gpt-indeling zijn gepartitioneerd; ze kennen alleen de mbr-methode. Hierdoor kan niet van een gpt-volume worden gestart. Alleen moederborden die met een efi zijn uitgerust, kunnen gpt-partities volledig adresseren en dus een OS van een 2,2TB+-schijf laten starten.
De conclusie dat EFI nodig is is ook kort door de bocht. Er is niets wat BIOS-makers tegenhoudt om GPT-support te introduceren, en er zijn voorzover ik weet ook wel BIOSsen met GPT-support, al zijn ze relatief schaars. Het is wel zo dat EFI GPT-support voorschijft, dus EFI implementaties zullen GPT altijd ondersteunen. Maar EFI is niet noodzakelijk.
Moederborden met efi's zijn echter nog schaars. Een andere beperking is dat niet alle sata-controllers met 64bit-gpt-adressering overweg kunnen.
Zoals ik eerder al beschreef: GPT is puur een software-iets; SATA controllers hebben geen benul wat GPT is. Het probleem is dat sommige SATA controllers LBA48-ondersteuning claimen maar slechts 32 bits daadwerkelijk implementeren. De redenering daarvoor is denk ik iets van "Hej, de MBR gebruikt maximaal 32 bits, waarom zouden we moeite doen die laatste 16 bit van LBA48 te implementeren..."
Wat mij betreft is dit gewoon reden tot een garantieclaim als de controller geadverteerd is met LBA48-support. Als je adverteert met LBA48-support dan implementeer je verdomme ook alle 48 bits. </rant>
Nouja, veel te lang verhaal weer. De kern van het verhaal is dat je aan de hardware-addressering kant CHS -> LBA22 -> LBA28 -> LBA48 hebt, en aan de software-indeling kant MBR(32) -> GPT(64). En dat dat verschillende dingen zijn.