Обновление до openSUSE 12.2: преамбула

Случилось так, что в ходе экспериментов с декстопными BSD-системами у меня погиб загрузчик системы основной — то есть openSUSE. Дело так и осталось загадочным — openSUSE жила на SSD, эксперименты проводились на традиционном винчестере. Это имело два неожиданных следствия, о которых я сейчас и расскажу.

Первое касается восстановления загрузчика. Но сначала обрисую условия. Как уже сказано, openSUSE была установлена на SSD накопителе, размеченном в GPT стиле (детали можно посмотреть здесь). А в качестве загрузчика использовался GRUB Legacy — как по велению сердца, так и по объективным причинам . Именно он-то и погиб в результате происков десктопных демонов.

Алгоритм восстановления старого GRUB’а описан многократно (например, здесь), так что особо по этому поводу я не огорчался, а проделал все необходимые действия:

  • загрузился с носителя для сетевой установки openSUSE;
  • в начальном меню выбрал пункт восстановления системы;
  • в командной строке подмонтировал в /mnt разделы с SSD — корневой и /boot;
  • смонтировал /dev в /mnt/dev с опцией -o bind;
  • выполнил команду chroot;
  • запустил скрипт grub-install.

И получил сообщение об ошибке исполнения сценария. Можно предполагать, что grub-install не распознаёт Protected MBR GPT-разметки как настоящий MBR и отказывается записывать в него stage1. Хотя, как показывает опыт установки , сама по себе stage1 GRUB’а в этот Protected MBR прекрасно записывается.

Напрашивающийся путь — загрузиться с какого-либо LiveCD, использующего GRUB в качестве загрузчика, при старте перейти в интерактивный его режим и дать команду

grub > setup /dev/sda

Полагаю, что в данной ситуации это должно сработать.

Был и другой вариант — прибегнуть к Live CD, YaST и его редактору загрузки.

Но я пошёл другим путём, и использовал возникшую неурядицу для давно задуманного обновления системы до 12.2. Благо к тому времени она обрела статус первого кандидата в релизы, от которого можно было ждать нормальной работы.