Есть ли способ получения списка названий "menuentries" GRUB?
Мне нужны результаты в формате, который grub-set-default
будет принимать. например.
"Ubuntu"
"Memory test (memtest86+)"
etc.
command-line
grub2
madneon
источник
источник
Ответы:
С помощью
awk
дает вам полный список всех пунктов меню в
grub.cfg
.источник
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk
. : \awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg
использовать дляgrub-set-default
Цветной снимок экрана (короткая версия)
Используйте колесико прокрутки мыши Home, End, PgUp, PgDn, ↑и ↓клавиши для навигации по меню.
Снимок экрана с текстом (длинная версия)
Сценарий bash использует
whiptail
вместоdialog
отображения меню. Одним из преимуществ является то, что вы можете скопировать изображение терминала в буфер обмена в виде текста и вставить его на этот сайт в виде текста. Другие преимущества включают в себя:dialog
не устанавливается по умолчанию в Ubuntu Server или Lubuntu.whiptail
включен по умолчанию.Вот текстовый снимок экрана:
Выделите запись и нажмите Enter
Используйте клавиши навигации, чтобы выделить параметр, и нажмите, Enterчтобы увидеть загруженные драйверы перед ядром
grub
и параметры загрузки, передаваемыеgrub
ядру при загрузке:grub-menu.sh
скрипт bashgrub-menu.sh
есть только один вариант настройки:Установите значение
true
(скрыть лишние записи) илиfalse
(перечислите все записи).Формат по умолчанию может быть переопределен при вызове скрипта с использованием:
или:
Код:
источник
Именно это раздражало меня больше года, поэтому я сделал быстрый и грязный сценарий для этого. Надеюсь, это поможет другим?
Это объединяет имена в очереди push / pop, но не индексацию меню, так что это могло бы быть лучше, но я зашел так далеко, как только мог.
Здесь вы можете увидеть скриншот из моей коробки, показывающий, что он работает
Как было предложено в комментарии от 2019/8, я упоминал выше, делая «временную загрузку». Эта идея была тем, что изначально запустило мой скрипт, и метод временной загрузки пришел из другого поста, и он выглядит примерно так
# vi /etc/default/grub
# sudo update-grub
# sudo grub-set-default 0
# sudo grub-reboot 4
Ссылка: https://ubuntuforums.org/showthread.php?t=1310463
источник
push
иpop
команд в своем ответе. Жаль, что я знал их, прежде чем я написал свой ответ.test
1. Установите для GRUB_DEFAULT значение GRUB_DEFAULT = сохранено (/ etc / default / grub) 2. Обновите конфигурацию grub в / boot #sudo update-grub 3. Установите для загрузки ОС по умолчанию (она будет загружаться каждый раз при перезагрузке компьютера) # sudo grub -set-default 0 4. Когда необходимо загрузить другую ОС (номер - это номер меню ОС, как в /boot/grub/grub.cfg, при следующей перезагрузке другие ОС будут загружаться только один раз - перезагрузка запускается вручную): sudo grub-reboot 4Это должна быть правильная "строка" ...
Последняя труба удаляет пробелы в начале каждой строки и исправляет последовательность номеров в соответствии с вводом номера grub. Пример вывода:
Если вы хотите увидеть все записи, а также продвинутые, вы можете использовать
но последовательность чисел не подходит для использования с grub-set-default.
источник
Я только что узнал, что вы можете просто использовать автозаполнение (
tab
двойное нажатие ) для таких команд, какgrub-reboot
или,grub-set-default
и он выдаст вам список доступных пунктов меню загрузки. Затем вы можете просто скопировать название, которое вы хотите буквально, вам не нужно использовать номер.К сожалению, по какой-то причине моя установка Windows 7 так не выглядит.
источник
Другой awk one-liner, который обрабатывает подменю:
Это может быть ошибочной мыслью, потому что \ t используется для идентификации записей подменю.
источник
В OpenSuSE grub2-Once предоставляет идентификатор меню, который затем можно использовать в других командах. Не так много помощи для пользователей Ubuntu.
источник