Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [HOWTO] Настройка и редактирование GRUB 2  (Прочитано 991199 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #150 : 04 Декабря 2009, 23:18:53 »
Цитировать
Проходит загрузка grub, список систем. Выбираю Ubuntu, возникает ошибка "error: out of disk     press any key to continue"
жмём любую клавишу, снова окно выбора системы. Жмём клавишу "e", вылезает экран редактирования загрузочной записи. Второй строкой проверка условия "if [ -n <что-то> ] <ещё что-то>" Там меняем одинарные скобочки на двойные, "crtl+x", загрузка пошла нормально.
Если нужно, что конкретно проверяется в условии, могу написать через пару часов, как дома буду.
понятно... речь идет о строке
if [ -n ${have_grubenv} ]; then save_env recordfail; fiесли честно, не в курсе, что он там проверяет, и как это работает, но знаю, что есть такой файлик "/boot/grub/grubenv" по этому поводу. попробуй не скобки насиловать, а просто убрать напрочь эту строку. если поможет - будем ковырять 10_linux, там хоть и чеерз sed хитро как-то прогоняется, но попробовать разобраться можно. и посмотри вышеупомянутый файлик, что в нем?
Цитировать
нет это статья для grub2, он без особых препятствий прочитает menu.lst как на харде так и на сиди, отличие в том, что на харде он тут же себя обновит используя настройки файла grub.cfg или комманду grub-update (точно не знаю) а на сиди его попытки успехом не увенчаюца (думаю не нужно объяснять почему). Также у меня есть догадки по этому поводу, я думаю что stage файлы предназначенные для загрузки с флопи и сиди, не считывают настройки grub.cfg.
очень интересно... если статья про гроб2, где тогда автор предлагает взять ентот самый menu.lst? написать? весьма странно все это. требуемого файла у меня в груб2 нет. более того, в первом грубе его тоже нет (сейчас поставил на флжшку федору 12, там первый груб, вот и глянул). в первом, правда, нашел некий "iso9660_stage1" или как-то так. уже намекает...
Цитировать
в котором будет только граб2, который передает загрузку грабу на основном разделе флэшки.
а вот это не так просто, как кажется. во всяком случае в груб2. простой "chainloader +1" в данном случае уже не катит. после долгих попыток удалось загрузить какой-то из файлов *.img, но дальше надписи "grub loading" и черного экрана я не продвинулся. и через chainloader пробовал, и через linux/initrd. уж и не знаю, как его запущать-то. а мб, я просто криворукий, и все гораздо проще... но надо знать.
лучше на "ты"

Оффлайн ;tyz

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #151 : 04 Декабря 2009, 23:47:58 »
хм... груб при установке ставится на тот же диск, куда ставишь Ubuntu. впрочем, это с alternate-диска. если же ты ставил впервые, то скорее всего скачал desktop-версию. с десктоп-диска не ставил, не знаю. но коли так уж вышло - переставляй с лайвцд. ежели у тебя десктоп-диск - запускай в лайв-режиме и переставляй груб на первый диск, как описано в разделе "восстановление grub2 с livecd (без chroot)".
можно, конечно, поиграться с консолью, но, думаю, для новичка это не самый приятный вариант
Да, у меня декстоп. Поставил и на первый диск, то же самое, черный экран при выборе Ubuntu. После очередной попытки восстановления, случайно примонтировал вместо корневого раздела, домашний раздел. Теперь, если поставить в биосе загрузку с диска, на котором стоит система, появляется меню граб, но при выборе Ubuntu черный экран, а если ставить диск, на который при установке поставился граб, то появляется не меню, а консоль. Воспользовавшись способом "загрузка системы при частичной неработоспособности граб2" система запустилась, делаю в терминале "update-grub", но после перезагрузки меню нету, появляется опять консоль. Что делать?

Оффлайн komix

  • Новичок
  • *
  • Сообщений: 15
  • ubuntu 9.10
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #152 : 05 Декабря 2009, 00:29:37 »
очень интересно... если статья про гроб2, где тогда автор предлагает взять ентот самый menu.lst? написать? весьма странно все это. требуемого файла у меня в груб2 нет. более того, в первом грубе его тоже нет (сейчас поставил на флжшку федору 12, там первый груб, вот и глянул). в первом, правда, нашел некий "iso9660_stage1" или как-то так. уже намекает...
угу тут я переборщил, menu.lst никакого отношения к грабу не имеет... привык просто вещи своими именами называть... глянул статью речь действительно о меню лист идет...

а вот это не так просто, как кажется. во всяком случае в груб2. простой "chainloader +1" в данном случае уже не катит. после долгих попыток удалось загрузить какой-то из файлов *.img, но дальше надписи "grub loading" и черного экрана я не продвинулся. и через chainloader пробовал, и через linux/initrd. уж и не знаю, как его запущать-то. а мб, я просто криворукий, и все гораздо проще... но надо знать.
есть у меня мыслишки на этот счет завтра попробую, я думаю что даже не прийдется передавать загрузку второму грабу...

делаю в терминале "update-grub", но после перезагрузки меню нету, появляется опять консоль. Что делать?
я думаю что тебе всего лишь нужно в консоли написать "sudo grub-mkconfig" граб должен запустить скрипты автоматического добавления ос в grub.cfg

З.Ы. Вроде как разобрался как сделать бутовый сиди с грабом на борту, завтра напишу в теме небольшой мануал, если мои попытки увенчаются успехом
« Последнее редактирование: 05 Декабря 2009, 01:07:03 от komix »

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #153 : 05 Декабря 2009, 01:28:46 »
Цитировать
есть у меня мыслишки на этот счет завтра попробую, я думаю что даже не прийдется передавать загрузку второму грабу...
что ж, поковыряй... ежели удастся запустить один гроб через другой - отпишись, будет полезно...
Цитировать
З.Ы. Вроде как разобрался как сделать бутовый сиди с грабом на борту, завтра напишу в теме небольшой мануал, если мои попытки увенчаются успехом
угу... гуд...
Цитировать
я думаю что тебе всего лишь нужно в консоли написать "sudo grub-mkconfig" граб должен запустить скрипты автоматического добавления ос в grub.cfg
читаем:
Цитировать
update-grub  is a stub for running grub-mkconfig -o /boot/grub/grub.cfg
одна фигня по сути.
Да, у меня декстоп. Поставил и на первый диск, то же самое, черный экран при выборе Ubuntu. После очередной попытки восстановления, случайно примонтировал вместо корневого раздела, домашний раздел. Теперь, если поставить в биосе загрузку с диска, на котором стоит система, появляется меню граб, но при выборе Ubuntu черный экран, а если ставить диск, на который при установке поставился граб, то появляется не меню, а консоль. Воспользовавшись способом "загрузка системы при частичной неработоспособности граб2" система запустилась, делаю в терминале "update-grub", но после перезагрузки меню нету, появляется опять консоль. Что делать?
консоль сразу появляется? что говорит? с ошибками появляется или просто консоль и "welcome" всякие?
что в "/etc/default/grub"? параметр "GRUB_TERMINAL=console" (или как там его) по дефолту закомментирован, но мало ли чудес. update-grub что говорит? должен быть список найденных систем и поздравления, дескать, все нормально

Цитировать
ubuntu@ubuntu:~$ sudo mount /dev/sdb2 /mnt
ubuntu@ubuntu:~$ sudo grub-install --root-directory=/mnt /dev/sda
это ты сознательно ставишь груб на один хард, а mbr пишешь в другой? такое, в принципе, возможно, но чревато глубоким (около минуты) впадением груба в задумчивость при загрузке (и хз чем еще по вкусу).
лучше на "ты"

Оффлайн levine

  • Активист
  • *
  • Сообщений: 256
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #154 : 05 Декабря 2009, 12:30:10 »
С такой проблемой столкнулся. Пытаюсь добавить в груб загрузку Клонзиллы с жесткого диска как здесь описывается, добавляю в /etc/grub.d/40_custom , дальше  update-grub, строчки автоматически добавляются в /boot/grub/grub.cfg , но при перезагрузке в меню груба Клонзиллы нет. Добавил вручную в /boot/grub/grub.cfg туда, где ядра и мемтесты и сразу все появилось в меню груба и спокойно запустилось, так что дело похоже не в тексте того что я вставляю в /etc/grub.d/40_custom и с разделами я разобрался правильно . Но когда создается grub.cfg во время update-grub ничего не пишет, что обнаружил образ Клонзиллы.

 
(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Декабря 2009, 20:45:51 от levine »

Оффлайн ;tyz

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #155 : 05 Декабря 2009, 15:01:49 »
консоль сразу появляется? что говорит? с ошибками появляется или просто консоль и "welcome" всякие?
что в "/etc/default/grub"? параметр "GRUB_TERMINAL=console" (или как там его) по дефолту закомментирован, но мало ли чудес. update-grub что говорит? должен быть список найденных систем и поздравления, дескать, все нормально

Пишет граб лодинг и вместо меню появляется следующее:
(Нажмите, чтобы показать/скрыть)

/etc/default/grub
(Нажмите, чтобы показать/скрыть)

update-grub говорит:
(Нажмите, чтобы показать/скрыть)

Еще когда поставить винт где стоит система первым загружаться, меню граб загружается, при выборе Ubuntu черный экран, и если нажать на какую либо клавишу появляется следующее:
(Нажмите, чтобы показать/скрыть)

Оффлайн Poc

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #156 : 05 Декабря 2009, 15:30:06 »
понятно... речь идет о строке
if [ -n ${have_grubenv} ]; then save_env recordfail; fiесли честно, не в курсе, что он там проверяет, и как это работает, но знаю, что есть такой файлик "/boot/grub/grubenv" по этому поводу. попробуй не скобки насиловать, а просто убрать напрочь эту строку. если поможет - будем ковырять 10_linux, там хоть и чеерз sed хитро как-то прогоняется, но попробовать разобраться можно. и посмотри вышеупомянутый файлик, что в нем?
Да, она. При удалении строки загружается также вроде. Проблем не было.
В grubenv ничего интересного:
"# GRUB Environment Block
##########################################<и ещё много #>"
« Последнее редактирование: 06 Декабря 2009, 13:51:04 от Poc »

Оффлайн komix

  • Новичок
  • *
  • Сообщений: 15
  • ubuntu 9.10
    • Просмотр профиля
GRUB2 установка на CD
« Ответ #157 : 05 Декабря 2009, 17:41:51 »
Для того, чтобы установить GRUB2 на CD диск нам необходимо создать iso-образ для этого:

1) сделаем вложенность папок в домашней директории:
mkdir -p ~/iso/boot/grub
2) я в своем примере создам диск с дистрибутивом SliTaz, для этого выполним следующую команду
sudo mount -o loop ~/slitaz-2.0.iso /media/loop/
mkdir ~/iso/slitaz
cp /media/loop/boot/* ~/iso/slitaz/

3) теперь откроем текстовый редактор и создаем в папке grub файл grub.cfg следующей коммандой
nano ~/iso/boot/grub/grub.cfgдля загрузки SliTaz я добавлю необходимый минимум
(Нажмите, чтобы показать/скрыть)
сохраняем результаты (ctrl+o) и закрываем nano (ctrl+x)

4) теперь приступим непосредственно к созданию iso образа, для этого выполним:
grub-mkrescue --overlay=./iso/ --image-type=cdrom ~/slitaz.isoпосле того как процесс создания iso образа закончится в домашней дирректории появится файл slitaz.iso, его то нам и нужно записать на диск

5) ну и собственно запись
cdrecord -v -eject speed=4 slitaz.iso

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #158 : 05 Декабря 2009, 20:29:09 »
Цитировать
menuentry "Clonezilla" {
   set root=(hd0,11)
   linux    /live-hd/vmlinuz1 boot=live union=aufs vga=788 ip=frommedia live-media-path=/live-hd bootfrom=/dev/sda11 toram=filesystem.squashfs
   initrd    /live-hd/initrd1.img
ну да... если не опечатка, то ошибка в том, что закрывающей-то скобочки не хватает!
Цитировать
Но когда создается grub.cfg во время update-grub ничего не пишет, что обнаружил образ Клонзиллы.
а он и не должен ничего говорить. вот ежели добавишь в 40-й скрипт строчку вида "echo что-нибудь" - тогда и будет

Цитировать
Да, она. При удалении строки загружается также вроде. Проблем не было.
В grubenv ничего интересного:
ага, grubenv правильный. тогда вот что: ежели без этой строки все грузится хорошо, можем попробовать убрать ее из 10-го скрипта. для чего открой файл "/etc/grub.d/10_lnux" и найди в нем ту самую строку (хотя бы и поиском по слову recordfail). выглядит она идентично. закомментируй ее и update-grub. после этого должна подаваться в grub.cfg в закомментированном виде или исчезнуть вовсе.
да, поправь свой пост последний, а то куча решеток растягивает страницу темы до неприличности

Цитировать
Для того, чтобы установить GRUB2 на CD диск нам необходимо создать iso-образ для этого:
ага, спасибо... интересная возможность изнасиловать исошник дистрибутива)))
на досуге попробую поиграться с чистым grub-mkrescue. по крайней мере, ман по этой штуке не повергает в ужас))
« Последнее редактирование: 05 Декабря 2009, 22:29:08 от dimas000 »
лучше на "ты"

Оффлайн komix

  • Новичок
  • *
  • Сообщений: 15
  • ubuntu 9.10
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #159 : 05 Декабря 2009, 20:54:23 »
интересная возможность изнасиловать исошник дистрибутива)))
угу, сам ужаснулся когда прочитал то что делал... но под рукой были только исо образы выбирать не приходилось...

и не знаю, написано в этой теме или нет но упомяну, что граб умеет грузить еще и исо образы... это очень удобно когда граб стоит на флэшке...
« Последнее редактирование: 05 Декабря 2009, 21:07:03 от komix »

Оффлайн levine

  • Активист
  • *
  • Сообщений: 256
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #160 : 05 Декабря 2009, 20:55:54 »
Цитировать
menuentry "Clonezilla" {
   set root=(hd0,11)
   linux    /live-hd/vmlinuz1 boot=live union=aufs vga=788 ip=frommedia live-media-path=/live-hd bootfrom=/dev/sda11 toram=filesystem.squashfs
   initrd    /live-hd/initrd1.img
ну да... если не опечатка, то ошибка в том, что закрывающей-то скобочки не хватает!

Нет, это мой косячок, скопировал не полностью, сейчас исправил, чтобы недоразумений больше не возникало. Скобка есть там.

а он и не должен ничего говорить. вот ежели добавишь в 40-й скрипт строчку вида "echo что-нибудь" - тогда и будет

А что значит  "echo что-нибудь" ? Или это про ту скобку?

Есть вот очень похожий случай и вроде решенный, но у меня ничего не получилось.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #161 : 05 Декабря 2009, 22:23:07 »
и не знаю, написано в этой теме или нет но упомяну, что граб умеет грузить еще и исо образы... это очень удобно когда граб стоит на флэшке...угу, командой loopback... все собирался об этом расписать... у меня с помощью него загрузился инсталлявщик убунты даже, правда все равно стал в привод глядеть и ничего там не нашел... но это может быть и кривостью /dev/hands. не так монтровал мб...
как доберусь - распишу вкратце по основным командам груба
Цитировать
А что значит  "echo что-нибудь" ? Или это про ту скобку?
ну вроде добавления перед строкой "menuentry бла-бла-бла" команды
echo "adding bla-bla-bla entries"то, что не показывает добалвенную менюшку - это, по ходу, косяк груба. хотя хз. попробуй добавить менюэнтрай из одной строчки:
menuentry "test me" {
hello
}
и посмотри результат. если покажется, при выборе должен выдать "hello, world!" (ага, убийственный прикол от разработчиков! самая ценная функция в grub2)
лучше на "ты"

Оффлайн levine

  • Активист
  • *
  • Сообщений: 256
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #162 : 06 Декабря 2009, 00:12:36 »
Во получилось, я вот так сделал:

(Нажмите, чтобы показать/скрыть)

Подсмотрел здесь, но вы мне подсказали тоже. Только понять бы еще, а почему тогда на оффсайте Клонзиллы этого нет, или это у меня Груб нестандартный? А вообще, для более трушного познавания, что ли, что это значит:
"echo бла-бала-бла  >&2
cat << EOF"?
« Последнее редактирование: 06 Декабря 2009, 00:24:36 от levine »

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #163 : 06 Декабря 2009, 13:47:46 »
Цитировать
А вообще, для более трушного познавания, что ли, что это значит:
"echo бла-бала-бла  >&2
cat << EOF"?
строка с echo выведет в консоль заданное сообщение. это нужно лишь для того, чтобы при выполнении update-grub ты видел, что кастомэнтрай твой обнаружен и добавляется.
насчет "cat << EOF" могу ошибаться, но принцип понимаю примерно так: EOF - это end of file. cat << EOF - это типа выводить содержимое до тех пор, пока команда не натолкнется на этот самый EOF. и далее мы этот EOF видим в конце, что говорит о том, что нижеследующее уже не надо пихать в груб.кфг, а стоит обработать как продолжение скрипта. как-то так...
лучше на "ты"

Оффлайн levine

  • Активист
  • *
  • Сообщений: 256
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #164 : 06 Декабря 2009, 17:07:09 »
Оказывается вот так достаточно
(Нажмите, чтобы показать/скрыть)

и EOF не нужны, во всяком случае в меню без них добавляется. Я еще test me добавил, чтобы проверить добавится ли что-нибудь еще, вдруг систему другую запускать придется, "Hello World" мелькает, причем, очень быстро. Я вот сейчас думаю, а может в этом файле по-умолчанию было уже что-то вроде "echo "Boot entry" >&2", а я случайно стер? Должна там быть эта строчка по-умолчанию?

 

Страница сгенерирована за 0.025 секунд. Запросов: 21.