Действительно ли возможно установить некоторый диспетчер начальной загрузки на диске с необработанным физическим томом внутри (т.е. никакая таблица разделов)? Я попробовал LILO, и объемы LVM стали недоступными (из-за повреждения структур LVM). Режимом начальной загрузки является BIOS.
Основная проблема в том, что загрузчики сегодня немного сложны, и практически их тоже нужно загружать. Даже этот «загрузочный код загрузчика» слишком велик для примерно 300 байт кода в MBR (основная загрузочная запись).
Это связано с тем, что загрузчики обычно используют дополнительную область данных, около 10-30 кбайт, после основной загрузочной записи .
В большинстве конфигураций по умолчанию данные начинаются только с первой дорожки жесткого диска, которая по существу нумеруется с 0. На цилиндре 0, так что у нас есть примерно свободная дорожка данных, которые могут свободно использоваться загрузчиками. Почти во всех случаях я обнаружил, что это было 63 * 512 = 32256 байт.
Это так и с сегодняшними жесткими дисками, которые не показывают свою физическую структуру секторов, а только эмулируемую (которая обычно содержит 16 или 255 головок и 63 сектора на дорожку).
Так обстоит дело с дисками с разделами MBR. Если вы используете LVM, таблица разделов отсутствует. В мире профессионального системного администрирования существует множество мнений о том, что «на каждом диске должна быть таблица разделов», или «вы просто не можете использовать диск без разделов» или тому подобное. Мое мнение сильно отличается от них: надо признать, раздел MBR - вещь допотопная и в эпоху логического управления громкостью устарела, и по возможности ее следует ликвидировать. Я думаю, у вас, вероятно, было аналогичное соображение, чтобы не иметь таблицы разделов MBR только чистый макет LVM на вашем диске.
Итак, но есть проблема с LVM, и это то, что его первоначальный макет не содержит это 10-30 килобайт бесплатных данных в ваш загрузчик. Кроме того, это немного необычная конфигурация даже для разработчиков загрузочной системы. Но в любом случае это можно сделать.
Я предлагаю вместо вас использовать LILO. Lilo читает свой загрузчик второй ступени, ваше ядро и даже ваш initrd из списка секторов, и, следовательно, ему не нужно делать какие-либо сложные операции, такие как чтение секторов с ваших жестких дисков.
Если он выдает вам некоторые предупреждения или сообщения об ошибках, добавьте в свой вопрос новую проблему или даже откройте новый вопрос.