https://askubuntu.com/questions/599208/how-to-list-grubs-menuentries-in-command-line Изумительный пример линукс-вея.
Проблема - в grub2 более сложные конфиги и непонятно как сделать чтобы загружалось нужное ядро (в 1.99 и ранее был простой конфигурационный файл с простым списком, который можно было редактировать вручную).
Довольно быстро можно нагуглить, чтоб для того, чтобы задать нужный номер, теперь нужно не редактировать конфиг, а нужно просто указаеть его в параметре для grub-set-default.
Но если у вас сервер без ipmi или вдс без vnc, то кажется, что нет простого штатного способа получить список возможных ядер с их номерами, чтобы задать нужное.
И вот люди пишут разные скрипты, которые грепают конфиги и строят списки доступных ядер с номерами. Всё это в какой-то момент, вероятно, работало, но в текущий момент все решения по ссылке при построении списка высчитывают слегка разные номера для ядер. И некоторые из решений уже точно не считают корректно.
И вот в конце всего обсуждения человек заметил, что если у вас bash с автодополнением, то оказывается штатный скрипт умеет по двойному TAB показывать список возможных вариантов (хотя не показывает при этом варианты с windows):
I just found out that you can just use auto-complete (pressing tab twice) on commands like grub-reboot or grub-set-default and it'll give you a list of the available boot menu entries.