rizloff
Linux

upgrade Fedora 15 до Fedora 16 (Verne): GRUB 2

2 мин чтения

Fedora 16 вышла еще 8 ноября, а у меня руки дошли только сейчас. Обновлялся, как и до пятнадцатой, через preupgrade. Главная перемена в шестнадцатой для меня — загрузчик: вместо старого GRUB теперь GRUB 2.

Перед обновлением

Сначала обновил сам preupgrade. На форумах жаловались, что старые версии при переходе на шестнадцатую оставляют загрузчик в непонятном состоянии, и машина после перезагрузки не грузится. Так что:

su -c 'yum update preupgrade'
su -c 'preupgrade'

Место в /boot проверил, как обычно. Скачивание шло часа полтора, потом перезагрузка и установка.

GRUB 2

После обновления меню загрузки выглядит иначе, и привычного файла /boot/grub/grub.conf больше нет. Конфиг теперь /boot/grub2/grub.cfg, и руками его править не надо: он собирается командой из настроек в /etc/default/grub и скриптов в /etc/grub.d/.

su -c 'grub2-mkconfig -o /boot/grub2/grub.cfg'

Команду надо запускать после каждой правки настроек. Ядра при обновлении добавляются в меню сами.

Windows рядом

У меня на этом диске еще Windows 7, ставил ее рядом с Fedora. Боялся, что пункт для нее пропадет, но grub2-mkconfig нашел ее сам: это делает os-prober. Если он у вас не стоит, Windows в меню не будет:

su -c 'yum install os-prober'
su -c 'grub2-mkconfig -o /boot/grub2/grub.cfg'

Время, сколько меню ждет выбора, и пункт по умолчанию — в /etc/default/grub, параметры GRUB_TIMEOUT и GRUB_DEFAULT. После правки снова grub2-mkconfig.

Если не грузится

Если после обновления вместо меню пусто или ругается на загрузчик, грузимся с установочного диска в режиме восстановления, делаем chroot /mnt/sysimage и ставим GRUB 2 заново:

grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

/dev/sda — диск, а не раздел. Мне не понадобилось, но записал, чтобы потом не искать.

Старый GRUB был проще: открыл файл, поправил строчку. Теперь между мной и меню еще одна команда, зато пункты для ядер и соседних систем больше не надо дописывать руками.

Что-то не сработало или нашли ошибку — напишите: rizloff@gmail.com или @rizloff в Telegram.