Fixing Linux kernel not found

Click For Summary
SUMMARY

The discussion centers on resolving issues with the Linux kernel version 5.2.0 on an Ubuntu 22.04.4 LTS server, where the user encountered missing modules and persistent loading of the older kernel despite upgrading to kernel version 5.15.101. The user discovered that the server operates as a Virtuozzo Container, which restricts kernel modifications and prevents the usual upgrade processes. The inability to access the GRUB menu and the potential for a network-based booting method (PXE) were also highlighted as complicating factors in troubleshooting the kernel issue.

PREREQUISITES
  • Understanding of Ubuntu 22.04 LTS and its kernel management
  • Familiarity with GRUB configuration and boot processes
  • Knowledge of Virtuozzo Containers and their virtualization model
  • Experience with remote server management and network booting (PXE)
NEXT STEPS
  • Research how to configure GRUB for kernel selection in Ubuntu
  • Learn about managing Virtuozzo Containers and their limitations
  • Explore PXE booting and its implications for kernel upgrades
  • Investigate kernel module management and troubleshooting in Linux
USEFUL FOR

System administrators, DevOps engineers, and anyone managing virtualized environments using Ubuntu and Virtuozzo Containers will benefit from this discussion.

jack action
Science Advisor
Insights Author
Messages
3,553
Reaction score
9,897
TL;DR
If the current kernel is not in the grub or the installed list of apt, where is it?
I have this remote server where I loaded the ISP-provided OS, namely Ubuntu 22.04.

The lsb_release -d shows "Ubuntu 22.04.4 LTS" and uname -r shows "5.2.0".

My problem arose when there seemed to be missing modules for kernel 5.2.0 in /lib/modules/5.2.0 for my needs. There is also no information about kernel 5.2.0 in the grub files or the /boot directory.

No problem, I'm upgrading to the latest kernel (image and headers) and the grub. I now have kernel 5.15.101 installed, also in the grub files and the /boot directory; even all the modules files are there. But there is still no sign of the 5.2.0 version in the new grub files.

Rebooting ... still 5.2.0 loading up. I tried to change GRUB_DEFAULT from '0' to '1' or even '2', and always version 5.2.0 loads up.

I cannot find where '5.2.0' is set to load. With apt there is nothing about this version, installed or available. If there is no mention of it in the grub, where is it coming from?

The most info I found was with cat / proc/version which returned "Linux version 5.2.0 (mockbuild @ builder9.eng.sw.ru) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Jul 12 12:00:44 MSK 2023".

Being accessed with a remote connection, I cannot access a grub menu to examine.
 
Computer science news on Phys.org
I wouldn't know for sure. How can I check and couldn't I upgrade the kernel with such an environment?
 
jack action said:
I wouldn't know for sure. How can I check and couldn't I upgrade the kernel with such an environment?
Run the 'df' command to see what is the / (normally the root) mount point.
My Linux workstations at the house all use remote boots from a central house server.
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16424744 0 16424744 0% /dev
tmpfs 3290748 1508 3289240 1% /run
10.1.1.2:/sdb/nfs1 429814784 336425984 93388800 79% /
tmpfs 5120 12 5108 1% /run/lock
tmpfs 9079160 2131540 6947620 24% /dev/shm
none 16453732 60740 16392992 1% /tmp
none 16453732 0 16453732 0% /var/tmp
none 16453732 0 16453732 0% /media
none 16453732 1720 16452012 1% /var/log

To upgrade the local network kernel with that setup you normally need 'root' access on the remote file and boot server. I use tftp with nfs combined with dhcp (keyed on the workstation MAC address) on the host server for remote booting.
 
[CODE title="df"]Filesystem 1K-blocks Used Available Use% Mounted on
/dev/ploop25095p1 51472864 4879680 44375016 10% /
none 4096 0 4096 0% /sys/fs/cgroup
tmpfs 1048576 0 1048576 0% /dev/shm
tmpfs 419432 196 419236 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1024 0 1024 0% /run/credentials/systemd-sysusers.service
none 1048576 0 1048576 0% /run/shm
tmpfs 209712 0 209712 0% /run/user/1000
[/CODE]

I have 'root' access on my VPS managed by a Virtuozzo Container, with the OS loaded from a Virtuozzo Template that I selected.

With other ISPs I have, I have similar setups and I usually upgrade the whole thing with sudo do-release-upgrade -d which upgrades from version 22 to 24 without any complication. With this one, it created problems I couldn't identify, and decided to stay with the original version 22. I then realized I couldn't modify the kernel parameters net.ipv4.* with sysctl like I usually do because I was missing modules.
 
  • Like
Likes   Reactions: nsaspook
As an update, the problem was that I was provided with a Virtuozzo Container instead of a pure VPS:
https://www.virtuozzo.com/hybrid-server/virtuozzo-containers/ said:
With Virtuozzo Containers, a single operating system kernel can support multiple isolated virtualized instances instead of just one. From an end user standpoint, these instances, called Containers, look and feel like a real server. This approach provides a common, secure virtualization layer that allocates a single set of system resources across all Containers. The result: a leaner, more efficient virtualization layer with bare-metal performance.

If you’re a service provider or SaaS ISV, this approach translates into higher ratios of virtual servers to physical servers, near-native server performance, and unique advantages for managing a virtual environment.
Hence why I couldn't modify the kernel.
 

Similar threads

Replies
2
Views
3K
Replies
10
Views
2K
Replies
2
Views
6K
  • · Replies 6 ·
Replies
6
Views
4K
Replies
16
Views
3K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
Replies
6
Views
3K