В поисках (несколько) лучших объяснений о поддержке жестких дисков объемом более 2 ТБ

9

Сегодня, пока Гуглил, я наткнулся на сообщения, утверждая, что Seagate планирует выпустить диск объемом 3 ТБ чуть позже в 2010 году. К сожалению, все, что я посмотрел, казалось, содержало кусочки информации, которые я не считал подходящими друг другу. (Я бы дал ссылку на некоторые примеры, но в настоящее время мне разрешено только 1 ссылку на пост).

Теперь у меня действительно нет никакой «потребности», чтобы лучше понять основные нудные детали этого. Мне просто интересно. И в замешательстве.

Итак ... некоторые вопросы, я надеюсь, кто-то лучше информирован, чем я мог бы ответить.

  1. Разговор о потенциальной проблеме с аппаратным и программным обеспечением меня смутил. Утверждение состоит в том, что нечто, называемое так называемым Long LBA addressing (LLBA), необходимо Command Descriptor Blockдля того, чтобы обойти текущие ограничения для доступа к жесткому диску объемом более 2 ТБ (1 ТБ = 2⁴⁰ B).

    Хорошо. Но я думал, что в последний раз, когда эта проблема возникла, она была решена путем увеличения длины поля LBA с 28 до 48 бит. (Помните этот сайт? Www.48bitlba.com ) 6-байтовый LBA явно достаточно большой, так что же с этим разговором о LLBA. Я думал, что все это было исправлено Win XP SP2, если не раньше? И, конечно же, все оборудование должно соответствовать поставленной задаче, не так ли?

  2. Насколько я понимаю, настоящая проблема с дисками, размер которых превышает 2 ТБ, - это 4-байтовые поля LBA в основной загрузочной записи (MBR), используемые в настоящее время для разбиения практически всех жестких дисков. Наиболее вероятным решением является переход на таблицу разделов GUID Intel (GPT). GPT использует 8-байтовые поля для LBA.

    В этом контексте я не понимаю, в чем проблема с загрузкой, скажем, Windows с диска объемом 3 ТБ, использующего GPT. Конечно, текущий BIOS ПК не знает, как распознавать или работать с GPT. Но каждый GPT поставляется с так называемым «безопасным» или «защитным» MBR в секторе 0.

    Apple уже использует гибридную версию MBR, чтобы позволить им загружать Windows на своих Intel Mac (также известный как Boot Camp). Разве нельзя сделать что-то подобное, чтобы позволить BIOS компьютера распознавать и загружаться из раздела, скажем, в первые 2 ТБ диска емкостью 3 ТБ или более?

У меня есть еще вопросы, например, где сектора 4K вписываются во все это. Но, наверное, пришло время просто заткнуться и опубликовать это. ;-)

иррациональный Джон

иррациональный Джон
источник

Ответы:

6

Заявления о «Long LBA», похоже, происходят от одного менеджера по продукту Seagate. Вероятно, она имела в виду, что, хотя 48-битный LBA является стандартом аппаратного обеспечения, 32-битные ОС и драйверы могут не поддерживать все 48 бит, так как (а) они 32-битные, и это более хлопотно, и (б) В любом случае MBR поддерживает только 32 бита для разделов, так что зачем?

Когда барьер 128 ГБ был преодолен путем принятия 48-битного LBA, это было как на стороне аппаратного обеспечения, в спецификации ATA, поднявшись с 28 бит; а также со стороны ОС / драйвера, чтобы убедиться, что они не жестко запрограммировали этот старый 28-битный лимит. Вы, вероятно, можете сказать, что современные хорошо написанные драйверы фактически соответствуют фактическому 48-битному пределу, но легко увидеть, как где-то в цепочке кто-то выбрал легкий путь и поддерживает только 32-битные в своих 32-битных драйверах. В любом случае, учитывая, что 32-разрядные ОС находятся в стадии выхода, не стоит пытаться убедиться, что все это работает.

Как вы сказали, реальная проблема (по крайней мере, для Windows) - это загрузка GPT-диска с компьютера, основанного на BIOS (не EFI). Защитная MBR предназначена для того, чтобы весь диск выглядел как один неизвестный раздел, так что компьютер с поддержкой BIOS / MBR даже не коснется его. Вы можете создать гибридный диск, чтобы MBR также содержал другие записи для разделов ниже 2 ТБ барьера. Но такие гибридные диски являются хрупкими (их можно легко использовать с помощью инструментов разделов MBR или GPT), и они больше не являются официально GPT-дисками. Вы также не загружаете какие-либо GPT-разделы, вы загружаете MBR-разделы. Это может быть хорошо, если вы просто хотите использовать раздел GPT в качестве диска данных.

И почему BIOS не может загрузить GPT? Короткий ответ: они этого не сделали, и для того, чтобы добавить эту возможность, вам понадобится более умный BIOS. И для этого EFI.

Секторы 4 КБ дадут вам диски по 16 ТБ с 32-разрядным LBA. (И меньшее количество более крупных секторов означает потенциально меньшие накладные расходы ввода / вывода.) Но все операционные системы и драйверы и даже некоторые приложения должны были бы быть написаны для поддержки секторов переменного размера. Все, что вам нужно, это одно место, где размер сектора жестко запрограммирован на 512, чтобы сломаться. Таким образом, секторы 4KB также не являются «легким» решением, потому что это займет много работы у многих сторон. Но если вы собираетесь писать будущее программное обеспечение для поддержки GPT (который не зависит от размера сектора) и секторов переменного размера, в какой-то момент оно может быть принято в качестве обычной практики.

кругозор
источник
3

Вы, безусловно, можете загрузиться с GPT-диска на компьютере с BIOS. Только что Windows утверждает, что не может.

Даже это не совсем верно; Вы можете загрузить Windows с компьютера BIOS на GPT-диске: вам нужен только один крошечный дополнительный MBR-диск для хранения загрузочных файлов. Жесткий диск, используемый для некоторых других ОС с запасным (маленьким) разделом, дискетой, USB-накопителем (предполагается) ...

Загрузитесь с установочного / восстановительного диска Windows. Создайте системный диск на флешке и используйте, bcdbootчтобы поместить свои загрузочные файлы на флешку. Добавьте загрузочный сектор с bootsect. Изменение {bootmgr} deviceTo boot. Загрузиться с флешки.

Шаги подробно здесь .

Milind R
источник
0

В этом контексте я не понимаю, в чем проблема с загрузкой, скажем, Windows с диска объемом 3 ТБ, использующего GPT.

В традиционной системе BIOS BIOS загружает загрузочный сектор с диска и запускает его в 16-битном реальном режиме. Затем код, загруженный из загрузочного сектора, должен найти и загрузить соответствующую ОС.

MS никогда не реализовывал поддержку GPT в своем загрузчике реального режима. Поэтому он не может прочитать таблицу разделов GPT и загрузить остальную часть ОС. Таким образом, для загрузки Windows с GPT-диска вы должны либо использовать uEFI вместо традиционного BIOS (что хорошо, если ваша материнская плата поддерживает его, и ваша версия Windows достаточно новая), либо использовать какой-либо способ обхода, такой как сторонний загрузчик, тип гибридного раздела или отдельный диск для загрузки.

plugwash
источник