Автор Тема: Восстановление меню grub2 после некорректного обновления ядра. [решено]  (Прочитано 11169 раз)

sivakvale

  • Гость
Ясно.
Гляньте-ка в BIOS приоритеты загрузки ЖД, нужно на 120 Гб который, выставить первым.

На нём вроде и стоит. Так и загрузчик же стоит на этом же диске (sdc). Если бы с другого пытался бы загрузиться, то и консоли grub'а не было бы, разве не так!?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
Так и загрузчик же стоит на этом же диске (sdc).
Там не на диске, а на разделе установлено  :o

Короче, предлагаю сделать так:# sed -i -e 's:/dev/sdc:/dev/sdc2:g' /boot/grub/grub.cfgНо нужно быть готовым, на всякий случай, иметь диск с лайв сд!
Сноси Винду, переходи на Линукс ! :)

sivakvale

  • Гость
Так и загрузчик же стоит на этом же диске (sdc).
Там не на диске, а на разделе установлено  :o

Короче, предлагаю сделать так:# sed -i -e 's:/dev/sdc:/dev/sdc2:g' /boot/grub/grub.cfgНо нужно быть готовым, на всякий случай, иметь диск с лайв сд!

Сработало! А что сделала эта команда?
При установке grub ставил на sdc, а теперь он, получается, стоял на sdc2? Может это случилось когда я через alterator grub переустанавливал!? Хм. И как определить куда установлен загрузчик?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
Сработало! А что сделала эта команда?
Заменила /dev/sdc на /dev/sdc2 в файле /boot/grub/grub.cfg.
При установке grub ставил на sdc, а теперь он, получается, стоял на sdc2? Может это случилось когда я через alterator grub переустанавливал!?
Возможно.

Теперь догадываетесь что нужно сделать ? :-)
В файле /etc/sysconfig/grub2 заменить /dev/sdc на /dev/sdc2 (GRUB_AUTOUPDATE_DEVICE='/dev/sdc2 ') и пересобрать груб (grub-mkconfig -o /boot/grub/grub.cfg). После этого проверить /boot/grub/grub.cfg на наличие /dev/sdc2, а не /dev/sdc !
Иначе при следующем обновлении ядра, например, все вернется обратно.

И как определить куда установлен загрузчик?
*
/dev/sdc2   *     3952640   234491903   115269632   83  Linux
« Последнее редактирование: 22.07.2012 12:46:48 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
iZ01@0r, отпишитесь получилось или нет с изменением конфига и последующей пересборкой груба, а то я не уверен, что работать будет...
Сноси Винду, переходи на Линукс ! :)

sivakvale

  • Гость
iZ01@0r, отпишитесь получилось или нет с изменением конфига и последующей пересборкой груба, а то я не уверен, что работать будет...

Ну, я сделал так:
  • В /etc/sysconfig/grub2 везде к sdc дописал двойку.
  • grub-mkconfig -o /boot/grub/grub.cfg
  • grub-autoupdate

Но всё почему-то вернулось на старое место. Т.е. опять bash-like. Наверно, я что-то не так делаю.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
Ну, я сделал так:
  • В /etc/sysconfig/grub2 везде к sdc дописал двойку.
  • grub-mkconfig -o /boot/grub/grub.cfg
  • grub-autoupdate
Но всё почему-то вернулось на старое место. Т.е. опять bash-like. Наверно, я что-то не так делаю.
Я видимо поторопился просто... это несовсем верно...
Замените в /etc/sysconfig/grub2 (только это значение GRUB_AUTOUPDATE_DEVICE='/dev/sdc ') на hd2.
И заново пересоберите груб.

Вообще мне кажется, что это просто глюк груба... т.к. даже в конечном конфиге (/boot/grub/grub.cfg) должно быть set root='(hd2,msdos2), а не set root=(/dev/sdc,msdos2) — короче это неправильно (вторая запись). Где берет это значение, затрудняюсь сказать...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
> grub-autoupdate
Это не нужно делать, grub-mkconfig -o /boot/grub/grub.cfg достаточно.
Сноси Винду, переходи на Линукс ! :)

sivakvale

  • Гость
Ну, я сделал так:
  • В /etc/sysconfig/grub2 везде к sdc дописал двойку.
  • grub-mkconfig -o /boot/grub/grub.cfg
  • grub-autoupdate
Но всё почему-то вернулось на старое место. Т.е. опять bash-like. Наверно, я что-то не так делаю.
Я видимо поторопился просто... это несовсем верно...
Замените в /etc/sysconfig/grub2 (только это значение GRUB_AUTOUPDATE_DEVICE='/dev/sdc ') на hd2.
И заново пересоберите груб.

Вообще мне кажется, что это просто глюк груба... т.к. даже в конечном конфиге (/boot/grub/grub.cfg) должно быть set root='(hd2,msdos2), а не set root=(/dev/sdc,msdos2) — короче это неправильно (вторая запись). Где берет это значение, затрудняюсь сказать...
Завтра вечером посмотрю, а сейчас спать. А так то да: grub диски по своей манере обозначает.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
Завтра вечером посмотрю, а сейчас спать. А так то да: grub диски по своей манере обозначает.
Ок.

PS
Могу предложить один костыль :-)
Вернуть в файле /etc/sysconfig/grub2 все как было, т.е. /dev/sdc. И выполнить  команду:# sed -i -e "312 i\\\nsed -i -e 's:/dev/sdc:hd2:g' /boot/grub/grub.cfg\n" /usr/sbin/grub-mkconfigТем самым, добавив в скрипт генерации груба, команду замены /dev/sdc на hd2 в файле /boot/grub/grub.cfg.
Но все же это костыли!  :-)
« Последнее редактирование: 22.07.2012 20:20:56 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

sivakvale

  • Гость
Завтра вечером посмотрю, а сейчас спать. А так то да: grub диски по своей манере обозначает.
Ок.

PS
Могу предложить один костыль :-)
Вернуть в файле /etc/sysconfig/grub2 все как было, т.е. /dev/sdc. И выполнить  команду:# sed -i -e "312 i\\\nsed -i -e 's:/dev/sdc:hd2:g' /boot/grub/grub.cfg\n" /usr/sbin/grub-mkconfigТем самым, добавив в скрипт генерации груба, команду замены /dev/sdc на hd2 в файле /boot/grub/grub.cfg.
Но все же это костыли!  :-)
Сделал так - работает. Только я пока не понимаю для чего все эти файлы. Могу только предположить, что /etc/sysconfig/grub2 - есть какой-то конфиг на основе которого генерируется конфиг загрузочного меню grub2 (/boot/grub/grub.cfg), а командой grub-mkconfig -o /boot/grub/grub.cfg последний и генерируем. А что тогда делает grub-autoupdate?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
Сделал так - работает. Только я пока не понимаю для чего все эти файлы. Могу только предположить, что /etc/sysconfig/grub2 - есть какой-то конфиг на основе которого генерируется конфиг загрузочного меню grub2 (/boot/grub/grub.cfg), а командой grub-mkconfig -o /boot/grub/grub.cfg последний и генерируем.
Все правильно думаете, /boot/grub/grub.cfg конечный конфиг, на основе которого происходит загрузка груба. А вот чтобы его сгенерировать используется несколько вспомогательных конфигов, например /etc/sysconfig/grub2 один из них. В каком-то из таких как раз и берется значение ващего /dev/sdc вместо hd2 и вставляется в /boot/grub/grub.cfg.
А что тогда делает grub-autoupdate?
Очевидно, обновляет груб на устройстве, на котором он уже установлен. Почти тоже самое, что grub-install, только в grub-autoupdate используется уже известное устройство, на котором уже стоит груб (по-крайней мере у системы такие сведения), а в grub-install можно указать другое устройство для загрузчика, т.е. перенести загрузчик на другое устройство (диск или раздел).
« Последнее редактирование: 24.07.2012 11:31:39 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн starikhatabjch

  • Давно тут
  • **
  • Сообщений: 92
  • MacOSX 10.6.8
Ну и так ещё:# grub-install /dev/sda(если у вас sda)

у меня пишет, grub-install комманда не найдена
загрузился с live диска (simply linux 6.0.1), команда даётся от root через su -
почему???

Всё, всем спасибо справился: при загрузке Лайв диска, выбрал пункт восстановление системы, затем в командной строке (как указано там) набрал fixmbr /dev/sda все восстановилось, ура :)
« Последнее редактирование: 24.07.2012 15:00:56 от starikhatabjch »

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i5/nVidia_Optimus AMD_a8/Radeon_8510g
Ну и так ещё:# grub-install /dev/sda(если у вас sda)

у меня пишет, grub-install комманда не найдена
загрузился с live диска (simply linux 6.0.1), команда даётся от root через su -
почему???
Читаем http://www.altlinux.org/Su
ALT KDesktop 7 x64, Xubuntu 14.04 arm

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 007
    • Email
у меня пишет, grub-install комманда не найдена
загрузился с live диска (simply linux 6.0.1), команда даётся от root через su -
почему???
http://forum.altlinux.org/index.php/topic,13133.msg155858.html#msg155858
Сноси Винду, переходи на Линукс ! :)