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.
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_TIMEOUT should be the same. In case they are not, change them accordingly. The
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:
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.
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:
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.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...