Простое выполнение grep 'menuentry' /boot/grub/grub.cfg
выводит дополнительные записи которые не связаны с фактическими версиями ядра или ОС. Например, в нем перечислены
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
. Я хотел бы предложить небольшое улучшение метода поиска в этом файле: используйте awk
$ awk '/menuentry/ && /class/ {count++; print count-1"****"$0 }' /boot/grub/grub.cfg
0****menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-86df21bf-d95f-435c-9292-273bdbcba056' {
1**** menuentry 'Ubuntu, with Linux 3.19.0-26-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.19.0-26-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056' {
2**** menuentry 'Ubuntu, with Linux 3.19.0-26-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.19.0-26-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056' {
3**** menuentry 'Ubuntu, with Linux 3.13.0-62-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-62-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056' {
4**** menuentry 'Ubuntu, with Linux 3.13.0-62-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-62-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056' {
С помощью приведенной ниже команды и ее вывода вы можете увидеть awk
соответствует фактической версии ОС и даст вам номер, который вы затем можете использовать в файле / etc / default / grub
.
В дополнение к редактированию файла / etc / default / grub
вручную, я предлагаю использовать sed
. В приведенной ниже команде замените X на соответствующий номер, полученный в приведенной выше команде awk:
sudo sed -i 's / GRUB_DEFAULT = 0 / GRUB_DEFAULT = X / g' / etc / default / grub; sudo update-grub