-2

Context:

I just created a new VM on Fusion Player using ubuntu-22.10-live-server-arm64.iso and it fails to boot after the installation completed successfully with the following error:

EFI stub: Booting Linux Kernel...
EFI stub: EFI_RNG_PROTOCOL unavailable
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services...

I noticed that the kernel loaded is Linux 5.19.0-31-generic.

On a previous machine that I had created back in January with the same iso, it worked fine for a couple of weeks ...but now I'm also having the same problem after various shutdown/restart sequences today on that VM... I found that on this older VM I had several kernel versions:

Linux 5.19.0-28-generic (from Jan 8th, 2023)
Linux 5.19.0-29-generic (from Feb 13th, 2023)
Linux 5.19.0-31-generic (from Feb 13th, 2023)

I noticed this VM would boot & work again after selecting in the boot configuration panel of GNU GRUB version 2.06 the oldest kernel from January 'Ubuntu, with Linux 5.19.0-28-generic'

Ubuntu, with Linux 5.19.0-31-generic
Ubuntu, with Linux 5.19.0-31-generic (recovery mode)
*Ubuntu, with Linux 5.19.0-28-generic
Ubuntu, with Linux 5.19.0-28-generic (recovery mode)

So, my questions are:

  • Q1) on the older VM, is there a way to "pin" the kernel version to a particular version like: 'Ubuntu, with Linux 5.19.0-28-generic' & thus prevent the OS from using the latest/greatest kernel version ?
  • Q2) likewise on the newer VM, I only have the last version of the kernel, how could I select at installation time an older version of the kernel ? As of now I've got only the latest:
Ubuntu, with Linux 5.19.0-31-generic
Ubuntu, with Linux 5.19.0-31-generic (recovery mode)

so I'd like to add

Ubuntu, with Linux 5.19.0-28-generic

and then pin it as well to avoid upgrades ?

But I need to be able to, at least, add it at installation time because as of now I'm not able to boot at all with the existing kernel... I tried using the 'Help' option at the end of the installation before rebooting but it says:

"Installer shell session activated

This shell version is running inside the installer environment. You will be returned to the installer when this shell is exited, for example by typing Control-D or 'exit'.

Be aware that this is an ephemeral environment. Changes to this environment will not survive a reboot. If the install has started, the installed system will be mounted at /target."

So I'm not sure if there is a way to download an older version of the kernel at this stage & configure grub to propose it in the selection of available kernels to boot on...

Thx in advance.

fckbo
  • 157
  • 3
  • 13
  • At least I found the answer to Q1, I think.. I did change in /etc/default/grub , the variable GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.19.0-28-generic" and then ran 'sudo update-grub'. Now at each reboot of my old VM the working version of the kernel, in this case 5.19.0-28-generic is selected. – fckbo Feb 14 '23 at 05:35

1 Answers1

2

actually spending some time to investigate more, I found answers for both questions above.

Q1) How to pin the kernel version to be used, as mentioned above already in the comment I did the following:

  • I did change in /etc/default/grub , the variable
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.19.0-28-generic"
  • and then ran 'sudo update-grub'.

Q2) I did re-install the VM but before starting the installation process, I did disconnect my Mac from my local area network. The installer did not download the last version of the kernel that seem to be buggy in my VMware fusion environment & instead got the kernel shipped with the iso image, which happen to be 5.19.0-21-generic, installed... and it works fine.

In addition, what I did was to download the last compiled version I could find here https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19.17/ and install it by downloading the .deb files & using 'sudo dpkg -I *.deb' command just to make sure that I could change the kernel versions if needed.

Anybody having a better answer, please let me know as I'm a total newbie on that matter.

Thx

fckbo
  • 157
  • 3
  • 13
  • To prevent 5.19.0-31 (bad kernel) from overwriting your GRUB config: 1) install Ubuntu 22.10 w/o network connection so you get kernel 5.19.0-21 (working), 2) install mainline and update kernel to 5.19.17 (also working) 3) apply updates. At step 3 the defective 5.19.0-31 kernel will be installed but the working 5.19.17 will be kept as GRUB default. – Theo Feb 18 '23 at 19:04