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


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

Автор Тема: GRUB2: мусор в /etc/grub.d/ Как почистить? (30_os-prober bug и др.)  (Прочитано 3996 раз)

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

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #15 : 22 Марта 2018, 23:37:21 »
из основной системы, то есть та, которая грузится по умолчанию

Да, я обратил внимание.
А где она задается?
И как переключить систему, загружаемую по умолчанию (чей grub.cfg используется по умолчанию)?

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #16 : 23 Марта 2018, 00:11:57 »
из основной системы, то есть та, которая грузится по
умолчанию

чей grub.cfg используется по умолчанию?

Вижу ты ничего не понял.
Ты скрипт update-grub посмотрел? По умолчанию используется  grub.cfg той системы, в которой ты запускал "update-grub".

Это справедливо, если системы установлены на одном диске, на разных разделах.
Если на разных дисках, там просто два своих загрузчика и в биосе меняется приоритет загрузки дисков.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7969
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #17 : 23 Марта 2018, 05:52:15 »
Цитировать
где задается, из какого раздела/boot из  будет использоваться /boot/grub/grub.cfg при загрузке?
Пример команды установки груба:
grub-install --root-directory=/mnt/sda4 /dev/sdbв данном случае
/dev/sdb - первая часть загрузчика установится в MBR диска sdb.
/mnt/sda4 - здесь будет создан каталог /boot/grub и здесь первая часть загрузчика будет искать свои файлы.
Есть еще способ, указать какой grub.cfg использовать.
Команда:
configfile (hd1,2)/boot/grub/grub.cfgбудет использовать файл grub.cfg со второго раздела диска sdb.
Цитировать
Неясно, почему нет memtest, несмотря на то, что memtest+ установил.
А скрипт /etc/grub.d/20_memtest86+ существует?
Цитировать
Посмотрел внимательно - почему-то /etc/grub.d/30_os-probe подставил раздел
Код: [Выделить]
linux /vmlinuz-4.13.0-37-generic root=/dev/sda2
Не очень хорошая идея в переменной root использовать /dev/sda2. Особенно если у вас больше одного диска.
При загрузке любой из них может стать sda и система может не загрузится.
Проверте, возможно в файле /etc/default/grub расомментирована строка
GRUB_DISABLE_LINUX_UUID=trueНадежней использовать UUID.
Я использую метку тома.

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #18 : 23 Марта 2018, 12:47:10 »
из основной системы, то есть та, которая грузится по
умолчанию

чей grub.cfg используется по умолчанию?

Вижу ты ничего не понял.
Ты скрипт update-grub посмотрел? По умолчанию используется  grub.cfg той системы, в которой ты запускал "update-grub".

Это справедливо, если системы установлены на одном диске, на разных разделах.
Если на разных дисках, там просто два своих загрузчика и в биосе меняется приоритет загрузки дисков.

Да, я это представляю и понимаю. Вопрос в другом.

У меня две системы на 1 диске и 2 раздела /boot для каждой.
Я заметил по внешнему виду, что при штатном обновлении системы иногда меняется меню загрузки, начальная загрузка идет с 1-го /boot или со 2-го /boot

Поэтому необходимо быть готовым, что порядок загрузки изменится.
И мой вопрос, где и как это прописывается.
Думаю в MBR (или гдееще для GPT?))
Я менял брутально: загружался в 1 или 2 систему и там переустанавливал GRUB2
Наверное, правильнее было запускать grub-install  /dev/sda



Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #19 : 23 Марта 2018, 13:10:00 »
У меня две системы на 1 диске и 2 раздела /boot для каждой.

То есть как это? Всего четыре boot раздела на две системы?

По моему вам нужно больше гулять на свежем воздухе.
Но если всё таки жизнь сломается, если будет меньше четырёх загрузчиков Grub, тогда что бы они (загрузчики) не сходили с ума, укажите загрузку одной главной системы по умолчанию, а остальные способы загрузки пропишите вручную в файле

/etc/grub.d/40_custom
Пример синтаксиса я приводил ранее, подробнее в википедии и в гугле.

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #20 : 23 Марта 2018, 13:48:47 »

По моему вам нужно больше гулять на свежем воздухе.

Согласен. Что-то глюки замучили. Lubuntu[/size]
Не ожидаешь глюков от священной Ubuntu. :-)

Цитата: TeleScope от Сегодня в 13:47:10

    У меня две системы на 1 диске и 2 раздела /boot для каждой.
То есть как это? Всего четыре boot раздела на две системы?

Нет, 1 диск, 2 ОС (Lubuntu и Ubuntu) и в каждой по одному /boot, всего 2.


Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #21 : 23 Марта 2018, 14:02:24 »
Нет, 1 диск, 2 ОС (Lubuntu и Ubuntu) и в каждой по одному /boot, всего 2.

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

sudo grub-install /dev/sda && sudo update-grub
Вторую прописывайте в

/etc/grub.d/40_custom
Какие могут быть глюки? 

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #22 : 24 Марта 2018, 00:53:03 »
Memtest нет в меню GRUB ? Системы установлены в UEFI? Если да - забудьте
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #23 : 24 Марта 2018, 20:13:35 »
Memtest нет в меню GRUB ? Системы установлены в UEFI? Если да - забудьте

Нет, не UEFI.

Хотел переустановить memtest - memtest потянул за собой удаление lubuntu-desktop.
Не стал рисковать, просто скопировал с другого 20_memtest86+ /etc/grub.d/, задал права +x, запустил update-grub, секция memtest


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

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

Какие могут быть глюки? 

Сценарий
/etc/grub.d/30_os-prober циклится.

Спасибо вам огромное за участие и помощь, за шаблон для
/etc/grub.d/30_os-prober
Я понял (из /boot/grub/grub.cfg и blkid), что там нужно указать первым UUID раздела /boot, вторым - /root




Пользователь добавил сообщение 24 Марта 2018, 20:28:28:
Результат работы

/etc/grub.d/30_os-prober
menuentry 'Ubuntu 17.10 (17.10) (на /dev/sda2) (на /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-4.13.0-37-generic--dbccc8de-aed5-4782-8617-f3f7af981cf2' {
Откуда это (на /dev/sda2) (на /dev/sda5)может возникнуть - указаны два раздела /root двух разных систем?

Пользователь добавил сообщение 24 Марта 2018, 20:32:48:
Поискал 30_os-prober bug



Bug #1737604 “30_os_prober: LINUXPROBED embedded spaces in kerne...” : Bugs : os-prober package : Ubuntu
https://bugs.launchpad.net/ubuntu/+source/os-prober/+bug/1737604
30_os_prober: LINUXPROBED embedded spaces in kernel parameters generates false menuentry's

Bug 1108296 – 30_os-prober generates incorrect menuentry definitions
https://bugzilla.redhat.com/show_bug.cgi?id=1108296
« Последнее редактирование: 24 Марта 2018, 20:32:48 от TeleScope »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #24 : 24 Марта 2018, 20:42:39 »
При обновлении системы может обновиться пакет GRUB, и тогда сменится загрузчик по умолчанию.

Если всё сделать вручную, с использованием настройки 40_custom, то обновлять груб во второй системе я не вижу необходимости.
Она всё время загружается из "другого груба", поэтому ей он не нужен.

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

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #25 : 24 Марта 2018, 22:10:05 »
configfile (hd1,2)/boot/grub/grub.cfg

А что это за команда configfile (hd1,2)/boot/grub/grub.cfg ?

apropos configfile
configfile: ничего подходящего не найдено.


Пользователь добавил сообщение 24 Марта 2018, 22:14:05:

ecc83,

Если всё сделать вручную, с использованием настройки 40_custom

Спасибо!

Но почему же все-таки  /etc/grub.d/30_os-prober создает мусор
(см. http://pastebin.ru/Udb0ZhbN/ )



В ответ на мой вопрос в первом посте о файлах proxy
/etc/grub.d/40_custom_proxy
/etc/grub.d/41_linux_proxy

где-то читал, что их создает grub-customizer
« Последнее редактирование: 24 Марта 2018, 22:14:05 от TeleScope »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7969
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #26 : 25 Марта 2018, 08:23:29 »
Цитировать
Результат работы

Код: [Выделить]
/etc/grub.d/30_os-prober

Код: [Выделить]
   menuentry 'Ubuntu 17.10 (17.10) (на /dev/sda2) (на /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-4.13.0-37-generic--dbccc8de-aed5-4782-8617-f3f7af981cf2' {

Откуда это
Недочетов в работе 30_os-prober более чем достаточно.
Поэтому отключаю его. Для этого в файл /etc/default/grub добавьте строку:
GRUB_DISABLE_OS_PROBER="true"После этого выполнить update-grub.
Цитировать
В ответ на мой вопрос в первом посте о файлах proxy
Код: [Выделить]
/etc/grub.d/40_custom_proxy
/etc/grub.d/41_linux_proxy

где-то читал, что их создает grub-customizer
Поэтому не пользуюсь grub-customizer и прочими boot-repair-ами.
Приходилось видеть файл grub.cfg мегабайтных размеров, созданный такими программами.
Который всеравно не работал.
Цитировать
Хотел переустановить memtest...
Если очень нужен мемтест, то сам файл memtest (можно взять например из исо-образа) копируем в /boot.
В файл /etc/grub.d/40_custom добавляем следующий код:
(Нажмите, чтобы показать/скрыть)
Пояснения.
В переменной src название файла, который будем искать/запускать.
Далее проверка, в каком режиме запущен груб: efi или обычный.
Режим efi возможно не работает. Не было возможности протестировать.
Файл для него (memtest.efi) предполагается брать из образа Windows 10.
Далее, если файл не найден, то присходит возврат в меню груб.
then msg="$src not exist!"; avload='configfile'; src="${prefix}/grub.cfg"Как раз используется команда configfile.
Если файл найден, выводится сообщение на каком диске-разделе он находится и производится его запуск.
Цитировать
У меня две системы на 1 диске и 2 раздела /boot...
У вас действительно два раздела боот? Или вы оговорились.
Считаю, что от раздела boot больше проблем, чем пользы.
Если система установлена в один раздел, то вот почти универсальный вариант.
В файл /etc/grub.d/40_custom добавляем следующий код:
(Нажмите, чтобы показать/скрыть)
Пояснения.
В переменной src - где находится корневой раздел.
Сначала скрипт считает, что в этой переменной метка тома.
Если находит раздел с такой меткой, то пытается загрузить линукс с этого раздела.
Если не находит, то считает что это UUID и ищет раздел с таким UUID-ом.
Если находит раздел с таким UUID-ом, то пытается загрузить линукс с этого раздела.
Если не находит, то считает что это имя устройства (например sda2).
Если находит такое имя раздела, то пытается загрузить линукс с этого раздела.
Этот вариант менее надежен.
Если нужно указать конкретную версию ядра и его расположение то раскомментировать строку:
#version='-4.8.0-36-generic.efi.signed'; avload='/boot'Данные в этой строке приведены в качестве шаблона.
Изменить их на свои.
« Последнее редактирование: 25 Марта 2018, 13:54:20 от andytux »

 

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