Verifique se o pacote os-prober está instalado no Ubuntu com dpkg -l os-prober .
Se não estiver instalado, então:
sudo apt-get install os-prober
sudo update-grub
BTW, o Ubuntu 12.04 faz algumas coisas horríveis no menu grub com /etc/default/grub . Você pode querer editá-lo para comentar estas linhas:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
e adicione-os em seu lugar:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT=5
Isso impedirá que o menu grub fique oculto na inicialização e fará com que o que você escolher no menu seja o próximo padrão. Ele também permite que grub-set-default e grub-reboot funcionem (eles não funcionam quando GRUB_DEFAULT é codificado para 0).
Não se esqueça de executar sudo update-grub após editá-lo e, em seguida, sudo grub-set-default 0 para garantir que ele tenha um padrão normal.
Além disso, se você não gostar do submenu com o qual ele esconde kernels antigos, remenda /etc/grub.d/10_linux assim:
--- 10_linux.orig 2012-05-17 07:07:17.000000000 +0000
+++ 10_linux 2012-08-27 03:46:54.803088897 +0000
@@ -254,12 +254,12 @@
list='echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' ''
- if [ "$list" ] && ! $in_submenu; then
- echo "submenu \"Previous Linux versions\" {"
- in_submenu=:
- fi
done
-if $in_submenu; then
- echo "}"
-fi
e, novamente, execute sudo update-grub .