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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Настройка меню GRUB2  (Прочитано 17318 раз)

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

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #30 : 24 Сентября 2018, 11:41:43 »
Перечитайте, пожалуйста, мой предыдущий комментарий. Предлолженные костыли вполне рабочие и для решения задачи вполне годны. Но мой последний вопрос был, зачем это все понадобилось? Зачем файл ядра носит разное название для каждой новой версии? Вот на это я спрашивал ответ.

Цитировать
Третий раз повторяю
Ок, давайте в третий раз разберем. Есть 2 системы, ну скажем, Ubuntu и Kubuntu. В Ubuntu используем grub, в Kubuntu загрузчик не устанавливаем. После установки grub формирует конфиг c ссылкой на ядро Kubuntu linux-4.18.9. Затем мы работаем только в Kubuntu, после обновления ядра, файл в Kubuntu будет называться linux-4.18.10. Но grub будет ссылаться на linux-4.18.9 и не сможет загрузить систему. Или я что-то путаю?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8035
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #31 : 24 Сентября 2018, 14:48:54 »
Цитировать
Зачем файл ядра носит разное название для каждой новой версии?
Загляните в каталог /boot. Сколько у вас там ядер? У меня два. То, с которым ставилась система и самое новое. Первое - потому что наверняка работает и для запуска живой системы.
У некоторых "одаренных" там все, что были с момента установки системы. Отсюда и генерация конфига по часу (не преувеличение, попадались жалобы на форуме).
Как их там помещать с одинаковым именем?
Цитировать
давайте в третий раз разберем...grub будет ссылаться на linux-4.18.9 и не сможет загрузить систему...
Даю.
src='fuj120_1' - Переменная содержащая метку тома корневого раздела. Для определенности: для Ubuntu - "ubu", для Kubuntu - "kubu". Какое значение задашь, та система и будет загружаться.
  Не нравится метка тома, можешь применить UUID.
key="$key root=LABEL=$src fastboot noresume nosplash quiet --" - параметры, передаваемые ядру. Параметр ядра root получает значение из переменной src, указывающее месторасположение корневого раздела.
  Вынесены в начало, чтобы не искать по всему коду и изменять в одном месте, для снижения вероятности ошибок.
search   -n -s -l ${src} - Команда ищет корневой раздел и если находит, то присваивает значение переменной root. Не путайте с параметром в предыдущей строке. Это совершенно разные вещи.
  Переменная груб получает значение вида: hd0,msdos1.
linux   /vmlinuz ${key} - На разделе, указанном в переменной root (из предыдущей строки), команда находит ядро vmlinuz и загружает, передав ема параметры в переменной key.
initrd   /initrd.img - Тоже самое для initrd.img.
/vmlinuz, /initrd.img - симлинки на новейшую версию ядра.
Ничего, что требует изменения при обновлении ядра или измененим местоположения груба. Не требует изменений для БИОС и УЕФИ-режима.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #32 : 24 Сентября 2018, 18:49:38 »
Цитировать
Загляните в каталог /boot. Сколько у вас там ядер? ... Как их там помещать с одинаковым именем?
У меня одно, и соответственно проблем с именами нет, но речь не об этом.

Цитировать
/vmlinuz, /initrd.img - симлинки на новейшую версию ядра.
Да, выше уже было такое предложение, но там писали, что это нужно делать, из коробки этого нет, или не так?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8035
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #33 : 25 Сентября 2018, 04:19:04 »
Цитировать
...уже было такое предложение, но там писали, что это нужно делать, из коробки этого нет, или не так?
А вы не удосужились посмотреть, хотя бы из любопытства.
Ничего делать не нужно. Все есть. И симлинки были с незапамятных времен, даже когда еще груба не было.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #34 : 25 Сентября 2018, 19:42:09 »
Цитировать
А вы не удосужились посмотреть, хотя бы из любопытства.
Удосужился, вот здесь https://help.ubuntu.ru/wiki/grub в конфигурации Grub все ссылки на ядра идут вида /boot/vmlinuz-2.6.32-020632rc6-generic, поэтому и появился вопрос. Кроме того, выше писали предложение использовать симлинки, из этого сделал вывод и задал уточняющий вопрос, как обстоят дела. Тогда мне казалось, что это простой вопрос, и любой кто пользуется Ubuntu сможет на него легко и быстро ответить. Но вместо ответа получил описание как вы, andytux, конфигурируете grub, сколько у вас ядер в /boot (у меня одно, это тоже не верно?)... Это все хорошо, но мне не очень интересны ваши познания элементарных основ системы, спрашивал я совсем иное.


Все таки, может кто-то ответить на вопрос?
1) Как все таки в Ubuntu создается конфигурация grub, идут ссылки на файлы ядер вида /boot/vmlinuz-2.6.32-020632rc6-generic, или на симлинк /boot/vmlinuz?
2) Если используются симлинки, то зачем каждый раз после обновления ядра выполняется переконфигурация Grub? Если файлы ядра каждый раз имеют разные имена, то зачем это вообще нужно?

Что-то мне кажется, что проще поставить Ubuntu и самому посмотреть, чем получить ответ от заносчивых "старожилов".

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3512
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #35 : 25 Сентября 2018, 20:08:32 »
Vitsliputsli, прописываются имена файлов. Симлинки по-умолчанию не используются, хотя создаются. Думаю, сделано ради некоей обратной совместимости. Во-первых, не все файловые системы поддерживают симлинки. Во-вторых, не все дистрибутивы на основе linux создают симлинки на применяемые ядра (стоит slackware второй системой - там их нет). Наверное поэтому grub ведет себя именно так.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8035
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #36 : 26 Сентября 2018, 05:09:58 »
Цитировать
простой вопрос, и любой кто пользуется Ubuntu сможет на него легко и быстро ответить.
Легко уже ответили:
Цитировать
Многие не знают о его существовании. По-умолчанию, при одной системе оно скрыто. Вторая половина норовит его скрыть, когда оно появляется.
Цитировать
Как все таки в Ubuntu создается конфигурация grub...
Так, как нужно владельцу системы.
Цитировать
зачем каждый раз после обновления ядра выполняется переконфигурация Grub?
Чтобы создать пункт загрузки с новым ядром.
Цитировать
Если файлы ядра каждый раз имеют разные имена, то зачем это вообще нужно?
В каталоге не может быть двух файлов с одним именем. Чтобы можно было загрузить систему с разными ядрами.
Цитировать
...спрашивал я совсем иное.
Вы спрашивали про сферического коня в вакууме. А об этой картине можно рассуждать вечно.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #37 : 26 Сентября 2018, 14:24:17 »
aandytux, такой легкий ответ, сродни вечным ответам на форумах: "а мне не мешает", "а так даже лучше", "а это вообще не используйте", но такие "ответы" никак не помогают вопрошающему. И конфигурация grub в Ubuntu создается как задумано разработчиками Canonical, а не владельцем системы, это потом уже он может привести ее к какому-то иному состоянию, но вопрос то был, как работает из коробки, а это вполне конкретное состояние, а не сферический конь в вакууме.

zg_nico, спасибо большое за ответ, то что нужно было, уже и сам посмотрел. Если кому-то интересно
(Нажмите, чтобы показать/скрыть)
Похоже Ubuntu именование ядер унаследовал от Debian. Почему нельзя использовать названия vmlinuz, vmlinuz.old, vmlinuz-fallback или как-то еще для основного и запасного ядра не очень понятно, в манах Debian ничего не нашел, везде преподносится как данность. Из-за этого, понятное дело, нужно проводить переконфигурацию grub, после обновления ядра. Плюс добавлены скрипты создающие симлинки на используемое и запасное ядро (vmlinuz,vmlinuz.old). Симлинки лежат в корне, т.к. для /boot больше шансов использования фс не поддерживающей симлинки. Но дальше стало интереснее, Debian создавала конфиг grub с ядрами вида vmlinuz-4.9.0-8-amd64, но только для системы, где grub установлен, для внешних систем полученных через os-prober она ссылалась на ядра по симлинку /vmlinuz. А вот Ubuntu во всех случаях использовала ссылки первого типа. Поведение Debian понятно, для своей системы все будет ок, т.к. grub обновляется после установки ядра, а вот для других лучше использовать симлинк. Тогда решил проверить как Ubuntu отреагирует, если во второй системе обновить ядро без обновления grub. Подход Canonical оказался "очень интересным"... Ubuntu всегда ставит загрузчик, если не grub, то lilo. Если загрузчик снести, то он все равно будет установлен с ближайшим обновлением ядра, т.к. ядро зависит от загрузчика (!). Понятно, что можно не устанавливать зависимости, но очевидно к чему это приведет.
Вот примерно так это работает.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #38 : 26 Сентября 2018, 17:20:10 »
Похоже Ubuntu именование ядер унаследовал от Debian.

Гениально. Как вам удалось это заметить? :)

В файле /etc/default/grub дописываете параметр:

GRUB_DISABLE_OS_PROBER="true"
Всё, больше система не будет сканировать и искать другие установленные системы.
Будет только единственный пункт загрузки основной системы, который редактируется через /etc/default/grub
Если установили ещё одну систему, то в файле /etc/grub.d/40_custom руками прописываете её запуск и никакой "update-grub" никогда не изменит вам название и порядок пунктов меню.
Уважаемый andytux, уже вторую страницу пытается вам это объяснить...

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #39 : 26 Сентября 2018, 18:30:32 »
ecc83, если обиделись на мои замечания в другой теме, то оправдывайтесь там. А если по делу хотите, то не надо отвечать на свои собственные вопросы, а просто перечитайте мои.
Хотите поерничать над моими замечаниями очевидного? Ну что ж, тогда может ответите и на другие "легкие" вопросы. Ну серьезно, не нужно мне доказывать, что ваш оранжевый велосипед лучше зеленого яблока, мне сейчас неинтересно ни первое, ни второе. Поэтому, если у вас опять появится зуд попытаться что-то мне объяснить, не надо, пожалуйста, мне нужны только ответы на мои вопросы. К тому же остался только один (часть ответил zg_nico, часть уже сам нашел): в чем плюсы существующего именования файлов с ядрами, из-за которого пришлось городить огород с постоянными переконфигурациями, симлинками и вездесущим загрузчиком?
Если ответа нет, просто пройдите мимо.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #40 : 26 Сентября 2018, 19:47:10 »
ecc83, если обиделись на мои замечания в другой теме

Глупости какие. Обижаться это удел горничных. Вы плохо себе меня представляете.

не надо отвечать на свои собственные вопросы, а просто перечитайте мои.

Давайте вместе перечитаем:

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

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

Оффлайн Xvedor

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #41 : 27 Сентября 2018, 08:27:59 »
Если на компе разделы UEFI - поставь rEFInd и забудь о проблемах.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8035
    • Просмотр профиля
Re: Настройка меню GRUB2
« Ответ #42 : 27 Сентября 2018, 11:08:17 »
Цитировать
Если на компе разделы UEFI - поставь rEFInd и забудь о проблемах...
В твоем предложении все, от первой буквы и до последней, говорит о проблемах.
Рефинд надо где-то взять. Поставить. Работает только с УЕФИ. Как быть с флешкой, осваивать еще один загрузчик.
Груб уже есть. Работает и с УЕФИ и с БИОС. Единый загрузчик везде - hdd, flash, cd/dvd . Единое меню.

 

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