Существует два разных способа доступа к местоположению на диске: один - схема CHS, а другой - схема LBA.
CHS расшифровывается как Цилиндр, Голова, Сектор и является наиболее низкоуровневым методом определения места чтения или записи с диска. Вы говорите ему использовать цилиндр x, головку y и сектор z и читать или записывать содержимое этого местоположения в или из адреса в памяти (буфере). Он получен из реальных физических компонентов жесткого диска (традиционная вращающаяся ржавчина), где у вас есть физические цилиндры и считывающие головки. Сектор является наименьшей адресуемой единицей, и он традиционно был установлен в 512 байт.
LBA - это логическая байтовая адресация, при которой привод считывает и записывает адрес сектора по его смещению, например, читает 123837-й сектор на диске или записывает его в 123734-й сектор на диске (начиная с нуля).
Проблема? Каждое из этих значений ограничено в диапазоне. Фактически, из-за того, насколько сильно был ограничен CHS, пришлось ввести LBA. Для CHS возможные значения C (цилиндр) - 1023, в то время как H (головки) - максимум 255, а S (сектор) - только до 63, что означает, что вы можете иметь максимум 1024 цилиндра x 255 голов x 64 секторы x 512 байт, отображенные в традиционном формате CHS, что дает общую сумму менее 8 ГиБ! Используя CHS, просто невозможно получить доступ к диску размером более 8 ГиБ!
Таким образом, LBA был введен с 32-разрядным ограничением, дающим вам 2 ^ 32 x 512 байт или ограничение 2 ТБ на размер диска - по этой причине MBR-диск не может превышать 2 ТБ, поскольку он использует CHS и LBA для указания размеров разделов, и ни один из них не может поддерживать что-нибудь более 2TiB.
Более новые и лучшие опции были введены, например, схема разбиения GPT, которая расширяет LBA до 64 бит, что дает вам намного больше, чем вам когда-либо понадобится при 2 ^ 64 x 512 байт - но есть одна загвоздка: много наследства аппаратные средства и устаревшие операционные системы и устаревшие реализации BIOS и устаревшие драйверы не поддерживают UEFI или GPT, и многие люди хотели бы иметь что-то, что может быть более легко модернизировано, чтобы преодолеть ограничение 2TiB без необходимости переписывать весь стек с нуля. И, наконец, мы достигли размера сектора 4096.
Смотрите, во всех ограничениях, обсужденных выше, одно предположение было фиксированным: размер сектора. С первого дня было 512 байт, и с тех пор так и осталось. Но недавно производители жестких дисков осознали, что есть возможность творить чудеса: взять традиционный CHS или 32-разрядный LBA и просто заменить размер сектора на 4096 (4 КБ) вместо 512 байт. Когда операционная система говорит «дай мне второй сектор на диске», запрашивая LBA 1 (потому что LBA 0 является первым), мы не собираемся давать ей байты 512–1023, а байты 4096–8191.
Внезапно наш лимит 2TiB был увеличен до 2 ^ 32 x 4096 байт или 16 TiB без необходимости отбрасывать MBR, переключаться на UEFI или GPT, или что-то еще!
Единственный улов в том, что если ОС не знает, что это волшебный диск, который использует 4096 секторов вместо 512-байтовых секторов, это может привести к несоответствию. Каждый раз, когда операционная система говорит: «Эй, ты, диск, напиши мне эти 512 байтов, чтобы сместить xxx», диск будет использовать 4096 байтов для хранения этих 512 байтов (остальные - нули или ненужные данные, при условии, что вы не получите переполнение памяти), потому что они не общаются в байтах, они общаются в секторах.
Таким образом, BIOS теперь (иногда) включают опцию, позволяющую вручную указывать, что размер сектора 512 байт должен использоваться вместо собственного размера сектора 4096 байт, который используют более новые диски - с оговоркой, что вы не можете использовать его для доступа к более чем 2TiB диска в системе MBR, как это было в «старые добрые времена». Но современные ОС, поддерживающие 4k, могут воспользоваться всем этим, чтобы использовать эту магию для чтения и записи в 4096-байтовых чанках и вуаля!
(Дополнительным преимуществом является то, что все происходит намного быстрее, потому что если вы читаете и записываете 4096 байт за раз, это меньше операций чтения или записи, скажем, 4 ГБ данных.)