2

I'm working with a specific software package that is only compatible with a older linux kernel version. After installing this older version via the following command

$ sudo apt-get install linux-image-3.19.0-49-generic \
    linux-headers-3.19.0-49 linux-headers-3.19.0-49-generic

I rebooted, but wasn't able to get the GRUB GUI screen to open. Looking around online I came across this:

Rather than using a number to pick GRUB_DEFAULT, I used the following suggestion:

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.19.0-49-generic"

Notice that I created a backup before editing /etc/default/grub. On boot, this time the machine booted using the correct kernel but it went to what looks like a terminal but has no keyboard response. Seeing this, I decided to revert back to the original kernel but it is not listed on the GRUB GUI (it works for some reason now, or just may not have been pushing the key fast enough).

Instead all I have on the GUI is Ubuntu and Advanced options. I am therefore able to get into the grub prompt, ie:

grub>

I feel as though this should be a very straight forward fix, either to get the older kernel to boot correctly, or boot the original. Either works.

However, I have absolutely zero experience or knowledge with the GRUB command line. Any help would be greatly appreciated.

0

Personally, I would try to get it booting from the GRUB command line first, before you start to edit the grub.cfg file. Once you have it booting from the CLI, then you will know what the right settings are to put in the file ;-)

From the GRUB command line, firstly type insmod ext2 to install the ext2 filesystem module. Then, type ls, which will show you what partitions you have available and the designations that GRUB uses for those partitions (which are different to Linux).

Once you have that info, type:

root=<insert GRUB path to /boot partition>
linux <insert path to relevant vmlinuz file> root=<insert Linux path to root partition> ro <insert any other kernel boot parameters you want>
initrd <insert path to initrd file>
boot

and it should boot up with that kernel. For example, on my laptop, I would type:

root=(ahci0,gpt2)
linux /vmlinuz-4.13.1 root=/dev/sda4 ro
initrd /initrd.img-4.13.1
boot

Then, if you want to add it to the GRUB boot menu, you just need to add those commands to the grub.cfg file.

(note that I am assuming you are using an initrd, as you are using Ubuntu)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.