June 20th, 2013

dil: (Default)
Thursday, June 20th, 2013 12:40 am

Для начала я решил на новых дисках сделать GPT вместо MBR. И только дойдя до этапа разбивки дисков, обнаружил, что дебиановский инсталлятор совершенно не даёт возможности выбрать, какую partition table сделать на чистых дисках. Видимо, если б там уже какая-то была, он бы её и использовал, а так — давайте какую-нибудь сделаем, а какую — вам даже и не скажут. И вручную тоже не сделать, там только fdisk есть, а parted’а нету.

Точнее, выбрать можно, но только в режиме Expert install. Пришлось перезагружаться в него и отвечать на уйму дополнительных вопросов. Но вот, наконец, GPT создана, разделы определены, собраны в md’шное зеркало, разбиты lvm’ом, система поставлена…

И тут внезапно следующие грабли: grub не ставится. Embedding is not possible, и всё тут. Причём это сообщение видно только на четвёртой консоли, куда пишется лог. Сам инсталлятор скромно говорит, что случилась фатальная ошибка при установке grub’а, а какая именно — сами угадайте.

При внимательном рассмотрении оказалось, что в целях совместимости GPT создаёт ещё и MBR, в котором присутствует ровно один раздел, занимающий весь диск целиком. А grub вторичный загрузчик обычно пишет в 1-62 сектора, находящиеся в промежутке между MBR и началом первого раздела, а тут раздел начинается сразу с первого сектора, и никакого промежутка нет..

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

Лечится это так: запускаем parted (которого на загрузочном DVD нет, но поскольку базовая система уже установлена на диск, можно запустить там shell и поставить parted из сети):
# parted /dev/sda
unit s
print free

С радостью обнаруживаем, что пространство с 34 по 2047 сектор свободно. Создаём там новый GPTшный раздел:
mkpart grub 128s 2047s
parted выдаёт предупреждение, что раздел не выровнен, но это можно проигнорировать. Далее запускаем
print
и смотрим, какой номер получился у нового раздела. У меня, например, 2. Указываем, что это раздел для загрузчика:
set 2 bios_grub on
Ещё раз смотрим, что получилось
print
должно получиться примерно так:

Number  Start        End          Size         File system  Name  Flags
        34s          127s         94s          Free Space
 2      128s         2047s        1920s                     grub  bios_grub
и далее остальные ранее созданные разделы

и выходим из parted’а:
quit

После этих манипуляций grub-install /dev/sda успешно установил grub, уже ни на что не ругаясь.
Типа, ура. Перезагрузка, grub успешно запустился, но… систему нифига не загрузил. File not found.

И тут до меня доходит, что поставил-то я его вручную, а инсталлятор об этом не знал и конфиг ему не сгенерировал. Пришлось опять грузиться с DVD, на этот раз в Rescue mode, запускать shell, монтировать вручную файловые системы, и запускать руками update-grub. И только после этого система начинает таки нормально грузиться..

Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.

dil: (Default)
Thursday, June 20th, 2013 09:05 pm

А зачем крутому джыпу решётка радиатора? Так даже лучше охлаждается!

Оригинал этой записи в личном блоге.