I am using Ubuntu 12.10. I compiled myself a new kernel and installed it. After installing, I updated grub. The problem happens here. When my computer reboots, it doesn't show me the GRUB Screen to choose old/new kernel or windows 7(the screen is black). It starts with new kernel only. How can I fix this? My pc has a graphic card: ASUS - Geforce GT430.
4 Answers
I don't know anything about compiling kernels, but it seems to me that Grub is set to be on hidden timeout. You should check the file /etc/default/grub
, e.g. by opening your editor:
sudo gedit /etc/default/grub
and see if these lines look the same as yours:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
The lines concerning GRUB_HIDDEN_TIMEOUT
and GRUB_TIMEOUT
should be the same. In case they are not, change them accordingly. The #
before GRUB_HIDDEN_TIMEOUT=0
makes sure hidden timeout isn't used and GRUB_TIMEOUT=10
means you get a 10 second delay before Grub boots to its default entry.
After you made changes to the Grub file and saved it, you have run:
sudo update-grub
To make sure the changes are applied. When you do this you should get the Grub menu back so you'll be able to choose the kernel or OS you want to boot again.
Try to change the GRUB_TIMEOUT value in order to force the grub menu :
sudo gedit /etc/default/grub
And change
GRUB_TIMEOUT=0
to
GRUB_TIMEOUT=5
Save and re-run update-grub
after i did all these steps i found this in the terminal
grub-mkconfig: You must run this as root
and that was all my actions
ubuntu@ubuntu:~$ sudo gedit /etc/default/grub
ubuntu@ubuntu:~$ update-grub
grub-mkconfig: You must run this as root
ubuntu@ubuntu:~$ sudo gedit /etc/default/grub
ubuntu@ubuntu:~$ sudo update-grub
/usr/sbin/grub-probe: error: failed to get canonical path of /cow.
ubuntu@ubuntu:~$ ^C
ubuntu@ubuntu:~$ sudo update-grub
/usr/sbin/grub-probe: error: failed to get canonical path of /cow.
ubuntu@ubuntu:~$ sudo gedit /etc/default/grub
ubuntu@ubuntu:~$ update-grub
grub-mkconfig: You must run this as root
The other thread's solution mentioned did not exactly match this users question but I did find the solution there.
This solved the problem for me:
Run: sudo update-grub
In my case, this found the new kernel but did not write out the menu.lst file. I'm fairly certain this is becuase I selected the "do not update" option when installing the new kernel and grub was not allowed to update the file even when i do my update-grub.
To solve that I moved my /boot/grub/menu.lst
to /boot/grub/menu.lst.old
(just to be save), then ran sudo update-grub
again which wrote the file and reflects the new kernel version I'd just installed.
Hope this helps...