Istnieją dwa różne sposoby dostępu do lokalizacji na dysku, jeden to schemat CHS, a drugi to schemat LBA.
CHS to skrót od Cylinder, Head, Sector i jest najbardziej niskopoziomową metodą określania miejsca odczytu lub zapisu z dysku. Mówisz, aby używał cylindra x, głowicy yi sektora z oraz odczytywał lub zapisywał zawartość tej lokalizacji do lub z adresu w pamięci (buforze). Wywodzi się z rzeczywistych fizycznych elementów (tradycyjnej wirującej rdzy) dysku twardego, na którym znajdują się fizyczne cylindry i głowice odczytu. Sektor jest najmniejszą jednostką adresowalną i tradycyjnie był ustalony na 512 bajtów.
LBA jest logicznym adresowaniem bajtów, w którym napęd odczytuje i zapisuje adres sektora poprzez jego przesunięcie, na przykład odczytuje sektor 123837 na dysku lub zapisuje go w sektorze 123734 na dysku (od zera).
Problem? Każda z tych wartości ma ograniczony zakres. W rzeczywistości, z powodu tego, jak poważnie ograniczone było CHS, konieczne było wprowadzenie LBA. W przypadku CHS możliwe wartości dla C (cylinder) to 1023, podczas gdy H (głowice) mogą mieć maksymalnie 255, a S (sektor) może wzrosnąć tylko do 63, co oznacza, że możesz mieć maksymalnie 1024 cylindry x 255 głowic x 64 sektory x 512 bajtów zmapowane w tradycyjnym formacie CHS, co daje w sumie mniej niż 8 GiB! Korzystając z CHS, po prostu nie można uzyskać dostępu do dysku większego niż 8 GiB!
Tak więc LBA został wprowadzony z limitem 32-bitowym, który daje 2 ^ 32 x 512 bajtów lub 2 TiB limit rozmiaru dysku - jest to powód, dla którego dysk MBR nie może przekroczyć 2TiB, ponieważ używa CHS i LBA do określania rozmiarów partycji i żaden z nich nie może obsługuje wszystko ponad 2TiB.
Wprowadzono nowsze, lepsze opcje, takie jak schemat partycjonowania GPT, który rozszerza LBA do 64 bitów, co zapewnia o wiele więcej niż potrzebujesz przy 2 ^ 64 x 512 bajtów - ale jest pewien haczyk: dużo dziedzictwa sprzętowe i starsze systemy operacyjne oraz starsze implementacje BIOS i starsze sterowniki nie obsługują UEFI ani GPT, a wiele osób chciałoby mieć coś, co można łatwiej zaktualizować, aby przekroczyć limit 2TiB bez konieczności przepisywania całego stosu od zera. Nareszcie osiągnęliśmy rozmiar sektora 4096.
Zobacz, przy wszystkich omówionych powyżej ograniczeniach jedno założenie było ustalone: wielkość sektora. Od pierwszego dnia ma 512 bajtów i tak już pozostało. Ale ostatnio producenci dysków twardych zdali sobie sprawę, że jest szansa na odrobinę magii: weź tradycyjny CHS lub 32-bitowy LBA i po prostu zastąp rozmiar sektora 4096 (4k) zamiast 512 bajtów. Kiedy system operacyjny mówi „daj mi drugi sektor na dysku”, prosząc o LBA 1 (ponieważ LBA 0 jest pierwszy), nie będziemy mu dawać bajtów 512–1023, ale raczej bajty 4096–8191.
Nagle nasz limit 2TiB został zaktualizowany do 2 ^ 32 x 4096 bajtów lub 16 TiB, bez konieczności porzucania MBR, przełączania na UEFI lub GPT, ani nic takiego!
Jedynym haczykiem jest to, że jeśli system operacyjny nie wie, że jest to magiczny dysk, który używa 4096 sektorów zamiast 512 bajtów, nastąpi niedopasowanie. Za każdym razem, gdy system operacyjny mówi „hej, ty, napisz mi te 512 bajtów, aby odsunąć xxx”, dysk zużyje 4096 bajtów do przechowywania tych 512 bajtów (reszta to zera lub niepotrzebne dane, zakładając, że nie skończysz z niedomiar pamięci), ponieważ nie komunikują się w bajtach, komunikują się w sektorach.
BIOSy zawierają teraz (czasami) opcję ręcznego określenia, że należy użyć rozmiaru sektora 512-bajtowego zamiast rodzimego rozmiaru sektora 4096 bajtów, z którego korzystają nowsze dyski - z zastrzeżeniem, że nie można go użyć, aby uzyskać dostęp do więcej niż 2 TB dysku w systemie MBR, tak jak w „starych dobrych czasach”. Ale współczesne systemy operacyjne, które są świadome 4k, mogą wykorzystać to wszystko, aby użyć tej magii do czytania i pisania w 4096-bajtowych fragmentach i voilà!
(Dodatkową zaletą jest to, że rzeczy są znacznie szybsze, ponieważ jeśli odczytujesz i zapisujesz 4096 bajtów jednocześnie, jest mniej operacji odczytu lub zapisu, powiedzmy 4GiB danych.)