Eu uso essa linha de comando , que é apenas uma análise de /boot/grub/grub.cfg , para mostrar entradas numeradas , uma por linha:
sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
que resulta (não é o mesmo exemplo do gráfico anterior, desculpe):

Meumétodopreferidoéadicioná-locomoumaliasoufunção.Porexemplo,comoumafunçãoem~/bashrc:
#Listentriesnumbersforgrub-reboot:functionGRUB-ListMenu(){sed':again;$!N;$!bagain;:b;s/{[^{}]*}//g;tb'/boot/grub/grub.cfg|cut-c-60|grep-e"^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
}
Explicação :
- O comando
sedremove todas as linhas entre chaves ({e}), pois elas correspondem aos submenus suspensos . - O comando
cutdeixa apenas os primeiros 60 caracteres, para tornar os resultados mais legíveis para o usuário. - O comando
grepdeixa apenas as linhas correspondentes a entradas do menu real :menuentryesubmenu. - O comando
nlnumera cada linha (a partir de 0, é claro). - Existe um comando adicional
grep, não estritamente necessário, que simplesmente adiciona cores aos resultados ;-).
Conselhos sobre otimizações são bem-vindos.
Testado trabalhando no GRUB v2.02 ~ beta2-9ubuntu1 rodando em Ubuntu Desktop, Servidor, v12, v14, Kali e BackTrack. Feedbacks sobre o comportamento em outro Linux são encorajados (vou adicioná-los a este post).
