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


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

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

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

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Добрый день!

По время обновления GRUB2 на вопрос об установке скриптов дал ответ "Показать различия".
В результате в /etc/grub.d какой-то мусор, файлы *proxy и т.д.
Меню загрузки GRUB2 содержит множество лишних пунктов.
В /etc/grub.d/41_linux_proxy и других эти пункты, похоже и задаются.

Пробовал почистить с помощью Grub Customizer, но он, кажется, не влияет на скрипты в /etc/grub.d.
Пробовал удалять часть скриптов из /etc/grub.d, которые в доках не описаны, как системные, редактировать добавочные, результата не достиг.

Подскажите, как правильно привести в исходное состояние скрипты /etc/grub.d и упорядочить меню загрузки GRUB2?
На /dev/sda Lubuntu и Ubuntu, у каждой свой раздел /boot

Копирую исходные файлы скриптов из /etc/grub.d/backup, затем update-grub, получаю сообщение о синтакcической ошибке.
Может, надо запускать update-grub2, а не update-grub?

А как формируется /etc/grub.d?
Как создать его корректный и новый?

Хотелось бы еще получить пункт меню Memtest. (С /etc/grub.d/43_memtest86+ его нет)

Файлы /etc/grub.d/backup:
(Нажмите, чтобы показать/скрыть)

ТС не появлялся на Форуме более полугода по состоянию на 22/07/2019 (последняя явка: 17/04/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 22 Июля 2019, 14:51:26 от zg_nico »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #1 : 22 Марта 2018, 14:44:40 »
Подскажите, как правильно привести в исходное состояние

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


Может, надо запускать update-grub2, а не update-grub?

update-grub и update-grub2 это символическая ссылка на команду:

grub-mkconfig -o /boot/grub/grub.cfg
поэтому не важно что "запускать".
Создай ссылку update-grub3 и запускай её, всё равно результат одинаковый :)

toZen

  • Гость
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #2 : 22 Марта 2018, 15:05:43 »
Ну удали полностью пакет груб, почисти каталоги и установи его снова из репозитория.
Только не перерзагружайся пока не установишь, я бы добавил.

Оффлайн TeleScope

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

Все равно в меню мусор.

Обнаружил, что его создает скрипт  /etc/grub.d/30_os-prober в /boot/grub/grub.cfg:

### BEGIN /etc/grub.d/30_os-prober ###

(скопировал в http://pastebin.ru/Udb0ZhbN/d/ )

Причем  /dev/sda5 - это / второй ОС

UPD:
Ее раздел /boot на /dev/sda4

Где на / на /dev/sda5 30_os-prober может находить этот мусор?
« Последнее редактирование: 22 Марта 2018, 21:32:20 от TeleScope »

Оффлайн ecc83

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

Оффлайн TeleScope

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

Несмотря на наличие
/boot/memtest86+_multiboot.bin
/boot/memtest86+.elf
/boot/memtest86+.bin
,

 пункт memtest86+ в меню загрузки GRUB не создается

Как его создавать автоматически?

Пользователь добавил сообщение 22 Марта 2018, 21:15:26:
Сколько ты систем запускаешь через груб?

2, Lubuntu и Ubuntu

Оффлайн ecc83

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

sudo apt-get install memtest86+
echo 'GRUB_DISABLE_OS_PROBER="true"' | sudo tee -a /etc/default/grub
Потом открываешь файл:

sudo nano /etc/grub.d/40_custom
И в нём прописываешь запуск Lubuntu типа такого:

menuentry 'Lubuntu 16.04' {
    insmod ext2
    search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxx
    linux /boot/vmlinuz-4.4.0-116-generic root=UUID=xxxxxxxxxxxxxxxxxx ro quiet vga=791
    initrd /boot/initrd.img-4.4.0-116-generic
}

Разумеется вместо ххххххххх укажешь свой UUID раздела с Lubuntu.

sudo update-grub
sudo reboot

Оффлайн TeleScope

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

echo 'GRUB_DISABLE_OS_PROBER="true"' | sudo tee -a /etc/default/grub


Создалась такая строка:
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_SAVEDEFAULT="trueGRUB_DISABLE_OS_PROBER=true"

Исправил в редакторе на
GRUB_DISABLE_OS_PROBER=true

Пробую далее

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #8 : 22 Марта 2018, 21:51:49 »
Исправил в редакторе на

Должно быть в кавычках, вот так:

GRUB_DISABLE_OS_PROBER="true"

Оффлайн TeleScope

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

/boot/grub/grub.cfg

Так как меню Grub было от 2-й системы (1-я Lubuntu, 2-я Ubuntu), скопировал туда
 sudo cp /boot/grub/grub.cfg /media/one/UBOOT/grub/


Перезагрузился, получил лаконичное меню.
Спасибо!

Но нет дополнительных параметров для 1-й системы и memtest



И откуда /etc/grub.d/30_os-prober берет на  /dev/sda5 ( / второй ОС) берет мусор?
Может, поудалять там в корне символические ссылки на образы ядер /boot второй системы?



Пользователь добавил сообщение 22 Марта 2018, 22:01:43:
Должно быть в кавычках, вот так:

Где-то читал, что GRUB2 уже понимает параметры без кавычек.
Судя, по созданному /boot/grub/grub.cfg без мусора, сработало.

Можно, как вариант, читал и пробовал, запретить выполнение  /etc/grub.d/30_os-probe
« Последнее редактирование: 22 Марта 2018, 22:02:01 от TeleScope »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #10 : 22 Марта 2018, 22:12:20 »
Можно, как вариант, читал и пробовал, запретить выполнение  /etc/grub.d/30_os-probe

Ты и так запретил строкой:

GRUB_DISABLE_OS_PROBER="true"
Теперь запусти grub-customizer и проверь там расширенные параметры.

Оффлайн TeleScope

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

ошибка: файл "vmlinuz-4.13.0-36-generic" не найден
ошибка: сначала вам нужно загрузить ядро

нажмите любую клавишу для продолжения

(У меня в /boot обеих ОС vmlinuz-4.13.0-36-generic )

Оффлайн ecc83

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

Ну может будешь мужиком и самостоятельно разрулишь? :)
Там же всё понятно написано, что не находит путь.
Проверь и исправь путь в файле /etc/grub.d/40_custom

Пример я тебе дал. "Не работать" оно может только из за твоей ошибки.

Оффлайн TeleScope

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #13 : 22 Марта 2018, 23:13:28 »
Разрулил сам.
Переустановил Grub
Закомментарил GRUB_DISABLE_OS_PROBER="true"
Обновил  /boot/grub/grub.cfg

Все равно для пунктов меню Ubuntu 17.10 (17.10) (на /dev/sda5) грузится Lubuntu, хотя для root указан ее UUID
Посмотрел внимательно - почему-то /etc/grub.d/30_os-probe подставил раздел
linux /vmlinuz-4.13.0-37-generic root=/dev/sda2,
а не
linux /vmlinuz-4.13.0-37-generic root=/dev/sda5
Изменил root=/dev/sda2 на root=/dev/sda5 - стала грузиться вторая система.

Спасибо за помощь!
Сделал не очень чисто, но результат достигнут.

Завтра еще посмотрю.

Неясно, почему нет memtest, несмотря на то, что memtest+ установил.
И откуда берет "мусор" /etc/grub.d/30_os-probe на /dev/sda5 (/ второй ОС)

Хотел спросить сейчас, где задается, из какого раздела/boot из  будет использоваться
/boot/grub/grub.cfg при загрузке?


Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: GRUB2: мусор в /etc/grub.d/ Как почистить?
« Ответ #14 : 22 Марта 2018, 23:28:38 »
Хотел спросить сейчас, где задается, из какого раздела/boot из  будет использоваться /boot/grub/grub.cfg при загрузке?

Когда выполняешь в терминале команду "update-grub", на самом деле ты запускаешь скрипт.
Его содержание можешь посмотреть командой:

cat /usr/sbin/update-grub
Разумеется нужно выполнять команду "update-grub" из основной системы, то есть та, которая грузится по умолчанию.
Вторая система, загрузку которой ты внёс в /etc/grub.d/40_custom можно оставить в покое и "update-grub" в ней не выполнять, потому что её груб в загрузке не участвует.

 

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