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